Acesso ao cluster - Guia do usuário do Eksctl

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Acesso ao cluster

Gerenciando o acesso aos endpoints do servidor da API Kubernetes

Por padrão, um cluster EKS expõe o servidor da API Kubernetes publicamente, mas não diretamente das sub-redes da VPC (public=true, private=false). O tráfego destinado ao servidor da API de dentro da VPC deve primeiro sair das redes VPC (mas não da rede da Amazon) e depois entrar novamente para acessar o servidor da API.

O acesso ao endpoint do servidor da API Kubernetes para um cluster pode ser configurado para acesso público e privado ao criar o cluster usando o arquivo de configuração do cluster. Exemplo abaixo:

vpc: clusterEndpoints: publicAccess: <true|false> privateAccess: <true|false>

Há algumas ressalvas adicionais ao configurar o acesso ao endpoint da API Kubernetes:

  1. O EKS não permite clusters sem o acesso público ou privado habilitado.

  2. O EKS permite criar uma configuração que permite que somente o acesso privado seja habilitado, mas o eksctl não a suporta durante a criação do cluster, pois impede que o eksctl seja capaz de unir os nós de trabalho ao cluster.

  3. Atualizar um cluster para ter acesso privado somente ao endpoint da API Kubernetes significa que os comandos do Kubernetes, por padrão, (por exemplokubectl), e possivelmente o comando eksctl delete clustereksctl utils write-kubeconfig, eksctl utils update-kube-proxy devem ser executados na VPC do cluster.

    • Isso requer algumas mudanças em vários recursos da AWS. Para obter mais informações, consulte Endpoint do servidor da API de cluster.

    • Você pode fornecer vpc.extraCIDRs o que acrescentará intervalos CIDR adicionais ao ControlPlaneSecurityGroup, permitindo que sub-redes fora da VPC cheguem ao endpoint da API kubernetes. Da mesma forma, você também pode vpc.extraIPv6CIDRs acrescentar intervalos de IPv6 CIDR.

Veja a seguir um exemplo de como configurar o acesso ao endpoint da API Kubernetes usando o subcomando: utils

eksctl utils update-cluster-vpc-config --cluster=<clustername> --private-access=true --public-access=false

Para atualizar a configuração usando um ClusterConfig arquivo, use:

eksctl utils update-cluster-vpc-config -f config.yaml --approve

Observe que, se você não passar um sinalizador, ele manterá o valor atual. Quando estiver satisfeito com as alterações propostas, adicione a approve sinalização para fazer a alteração no cluster em execução.

Restringindo o acesso ao endpoint da API pública EKS Kubernetes

A criação padrão de um cluster EKS expõe publicamente o servidor da API Kubernetes.

Esse recurso se aplica somente ao endpoint público. As opções de configuração de acesso ao endpoint do servidor da API não serão alteradas, e você ainda terá a opção de desativar o endpoint público para que seu cluster não seja acessível pela Internet. (Fonte: https://github.com/aws/ containers-roadmap/issues/108 #issuecomment -552766489)

Para restringir o acesso ao endpoint público da API a um conjunto de CIDRs ao criar um cluster, defina o publicAccessCIDRs campo:

vpc: publicAccessCIDRs: ["1.1.1.1/32", "2.2.2.0/24"]

Para atualizar as restrições em um cluster existente, use:

eksctl utils update-cluster-vpc-config --cluster=<cluster> 1.1.1.1/32,2.2.2.0/24

Para atualizar as restrições usando um ClusterConfig arquivo, defina o novo CIDRs em vpc.publicAccessCIDRs e execute:

eksctl utils update-cluster-vpc-config -f config.yaml
Importante

Se a configuração publicAccessCIDRs e a criação de grupos de nós privateAccess devem ser definidas como true ou os “nós” IPs devem ser adicionados à lista. publicAccessCIDRs

Se os nós não conseguirem acessar o endpoint da API do cluster devido ao acesso restrito, a criação do cluster falhará context deadline exceeded porque os nós não conseguirão acessar o endpoint público e não conseguirem ingressar no cluster.

Para atualizar o acesso ao endpoint do servidor de API e o acesso público CIDRs para um cluster em um único comando, execute:

eksctl utils update-cluster-vpc-config --cluster=<cluster> --public-access=true --private-access=true --public-access-cidrs=1.1.1.1/32,2.2.2.0/24

Para atualizar a configuração usando um arquivo de configuração:

vpc: clusterEndpoints: publicAccess: <true|false> privateAccess: <true|false> publicAccessCIDRs: ["1.1.1.1/32"]
eksctl utils update-cluster-vpc-config --cluster=<cluster> -f config.yaml