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:
-
O EKS não permite clusters sem o acesso público ou privado habilitado.
-
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.
-
Atualizar um cluster para ter acesso privado somente ao endpoint da API Kubernetes significa que os comandos do Kubernetes, por padrão, (por exemplo
kubectl), e possivelmente o comandoeksctl delete clustereksctl utils write-kubeconfig,eksctl utils update-kube-proxydevem 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.extraCIDRso 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 podevpc.extraIPv6CIDRsacrescentar 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