Criar um cluster do Amazon EKS
Este tópico dá uma visão geral das opções disponíveis e descreve o que deve ser considerado ao criar um cluster do Amazon EKS. Se esta for a primeira vez que você cria um cluster do Amazon EKS, é recomendável seguir nossos guias Conceitos básicos do Amazon EKS. Esses guias ajudam a criar um cluster simples e padrão sem expandir para todas as opções que estão disponíveis.
Pré-requisitos
-
Uma VPC e sub-redes existentes que atendem aos requisitos do Amazon EKS. Antes de implantar um cluster para uso em ambientes de produção, convém ter uma compreensão integral dos requisitos da VPC e da sub-rede. Se não tiver uma VPC e sub-redes, você poderá criá-las utilizando um modelo AWS CloudFormation fornecido pelo Amazon EKS.
A ferramenta da linha de comando
kubectl
instalada no seu computador ou no AWS CloudShell. A versão pode ser idêntica ou até uma versão secundária anterior ou posterior à versão Kubernetes do seu cluster. Por exemplo, se a versão do cluster for1.21
, você poderá usar okubectl
versão,1.20
,1.21
ou1.22
com ele. Para instalar ou atualizar okubectl
, consulte Instalar ou atualizar o kubectl.-
A versão
2.7.13
ou superior ou a versão1.25.25
ou superior da AWS CLI instalada e configurada em seu computador ou no AWS CloudShell. Para obter mais informações, consulte Instalar, atualizar e desinstalar a AWS CLI e Configuração rápida com aaws configure
no Guia do usuário da AWS Command Line Interface. -
Um usuário ou perfil do IAM com permissões para
create
edescribe
um cluster do Amazon EKS. Para obter mais informações, consulte Ações, recursos e chaves de condição para o Amazon EKS.
Quando um cluster do Amazon EKS é criado, a entidade (usuário ou perfil) do IAM que cria o cluster é adicionada permanentemente à tabela de autorização RBAC do Kubernetes como o administrador. Esta entidade tem permissões system:masters
. A identidade desta entidade não fica visível na configuração do seu cluster. Por isso, é importante observar a entidade que criou o cluster e garantir que ela nunca tenha sido excluída. Inicialmente, somente a entidade do IAM que criou o servidor pode fazer chamadas para o servidor de API do Kubernetes usando kubectl
. Se usar o console para criar o cluster, você deverá verificar se as mesmas credenciais do IAM estão na cadeia de credenciais do AWS SDK quando executar os comandos kubectl
no cluster. Depois de criar o seu cluster, você poderá conceder acesso a ele para outras entidades do IAM.
Para criar um cluster do Amazon EK.
Se já tiver um perfil do IAM de cluster ou se for criar seu cluster com
eksctl
, você poderá ignorar essa etapa. Por padrão,eksctl
cria um perfil para você.Para criar um perfil do IAM de cluster do Amazon EKS
-
Execute o seguinte comando para criar um arquivo JSON de política de confiança do IAM.
cat >
eks-cluster-role-trust-policy.json
<<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF -
Crie o perfil do IAM do cluster do Amazon EKS. Se necessário, prefixe
eks-cluster-role-trust-policy.json
com o caminho no computador no qual você gravou o arquivo na etapa anterior. O comando associa a política de confiança criada na etapa anterior à função. Para criar um perfil do IAM, a entidade do IAM (usuário ou perfil) que está criando o perfil deve receber a seguinte ação do IAM (permissão):iam:CreateRole
.aws iam create-role --role-name
AmazonEKSClusterRole
--assume-role-policy-document file://"eks-cluster-role-trust-policy.json
" -
Anexe a política gerenciada do Amazon EKS denominada
AmazonEKSClusterPolicy
à função. Para anexar uma política do IAM a uma entidade do IAM (usuário ou perfil), a entidade do IAM que está anexando a política deve receber uma das seguintes ações do IAM (permissões): iam:AttachUserPolicy
ouiam:AttachRolePolicy
.aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy --role-name
AmazonEKSClusterRole
-
-
Crie um cluster do Amazon EKS.
É possível criar um cluster usando
eksctl
, o AWS Management Console ou a AWS CLI. -
Se você criou seu cluster usando
eksctl
, pode ignorar esta etapa. Isso ocorre porqueeksctl
já concluiu essa etapa para você. Habilite okubectl
para se comunicar com o cluster adicionando um novo contexto ao arquivokubectl
config
. Para obter mais informações sobre como criar e atualizar o arquivo, consulte Criar um kubeconfig para o Amazon EKS.aws eks update-kubeconfig --region
region-code
--namemy-cluster
O exemplo de saída é o seguinte.
Added new context arn:aws:eks:
region-code
:111122223333
:cluster/my-cluster
to/home/username/
.kube/config -
Confirme a comunicação com o cluster, executando o seguinte comando.
kubectl get svc
O exemplo de saída é o seguinte.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 28h
(Recomenado) Para usar alguns complementos do Amazon EKS ou para permitir que workloads individuais do Kubernetes tenham permissões específicas do AWS Identity and Access Management (IAM), crie um provedor OpenID Connect (OIDC) do IAM para o cluster. Para obter instruções sobre como criar um provedor de identidade OIDC do IAM para o cluster, consulte Criar um provedor de identidade OIDC do IAM para o cluster. Você só precisa criar um provedor OIDC do IAM para o cluster uma vez. Para saber mais sobre os complementos do Amazon EKS, consulte Complementos do Amazon EKS. Para saber mais sobre a atribuição de permissões específicas do IAM às workloads, consulte Visão geral técnica de perfis do IAM para contas de serviço.
(Recomendado) Configure o cluster para o plugin Amazon VPC CNI plugin for Kubernetes antes de implantar nós do Amazon EC2 no cluster. Por padrão, o plugin foi instalado com o seu cluster. Quando nós do Amazon EC2 são adicionados ao cluster, o plugin é implantado automaticamente em cada nó do Amazon EC2 que você adicionar. O plugin requer a anexação de uma das seguintes políticas do IAM a um perfil do IAM:
-
Política do IAM gerenciada
AmazonEKS_CNI_Policy
: se o cluster utilizar a família IPv4
-
Uma política do IAM cria por você: se o cluster utilizar a família
IPv6
O perfil do IAM ao qual a política é anexada pode ser o perfil do IAM do nó ou um perfil dedicado utilizado apenas para o plugin. Convém anexar a política a esse perfil. Para obter mais informações sobre como criar a função, consulte Configurar o Amazon VPC CNI plugin for Kubernetes para usar perfis do IAM para contas de serviço ou Função do IAM em nós do Amazon EKS.
-
Se você implantou seu cluster usando o AWS Management Console, pode ignorar esta etapa. O AWS Management Console implanta os complementos Amazon VPC CNI plugin for Kubernetes, CoreDNS e
kube-proxy
do Amazon EKS por padrão.(Opcional) Se você implantar seu cluster utilizando
eksctl
ou a AWS CLI, os complementos Amazon VPC CNI plugin for Kubernetes, CoreDNS ekube-proxy
autogerenciados serão implantados. É possível migrar os complementos autogerenciados Amazon VPC CNI plugin for Kubernetes, CoreDNS ekube-proxy
, que são implantados com seu cluster, para complementos do Amazon EKS. Para mais informações, consulte Complementos do Amazon EKS.
Próximas etapas recomendadas:
-
Conceda acesso para entidades do IAM ao cluster. Se quiser que as entidades visualizem os recursos do Kubernetes no console do Amazon EKS, conceda a elas Permissões obrigatórias.
-
Habilite o endpoint privado para o cluster se quiser que nós e usuários acessem seu cluster de dentro da sua VPC.