Ajudar a melhorar esta página
Quer contribuir para este guia do usuário? Escolha o link Editar esta página no GitHub, disponível no painel direito de cada página. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.
nota
Este tópico aborda como começar sem o Modo Automático do EKS. Ele usa grupos de nós gerenciados para realizar a implantação dos nós.
O Modo Automático do EKS automatiza tarefas de rotina de computação, armazenamento e redes de clusters. Saiba como começar a usar o Modo Automático do Amazon EKS. O modo automático do EKS é o método preferido para implantar nós.
Este guia ajuda você a criar todos os recursos necessários para começar a usar o Amazon Elastic Kubernetes Service (Amazon EKS) usando o AWS Management Console e a AWS CLI. Neste manual, você criará manualmente cada recurso. No final deste tutorial, você terá um cluster do Amazon EKS em execução, no qual poderá implantar as aplicações.
Os procedimentos deste guia fornecem visibilidade completa sobre como cada recurso é criado e como os recursos interagem entre si. Se você preferir que a maioria dos recursos seja criada automaticamente, use a CLI eksctl
para criar os nós e o cluster. Para ter mais informações, consulte Conceitos básicos do Amazon EKS: eksctl.
Pré-requisitos
Antes de iniciar este tutorial, você deve instalar e configurar as ferramentas a seguir e os recursos necessários para criar e gerenciar um cluster do Amazon EKS.
-
AWS CLI - Uma ferramenta de linha de comando para trabalhar com os serviços AWS, incluindo o Amazon EKS. Para obter mais informações, consulte Instalação no Guia do Usuário da Interface de Linha de Comando AWS. Depois de instalar a AWS CLI, recomendamos que você também a configure. Para saber mais, consulte Configuração rápida com aws configure, no Guia do usuário da AWS Command Line Interface. Observe que o AWS CLI v2 é necessário para usar a opção update-kubeconfig mostrada nesta página.
-
kubectl
: uma ferramenta de linha de comando para trabalhar com clusters do Kubernetes. Para ter mais informações, consulte Configurar o kubectl e o eksctl. -
Permissões do IAM necessárias: a entidade principal de segurança do IAM que você está usando deve ter permissões para trabalhar com perfis do IAM do Amazon EKS, perfis vinculadas a serviços, AWS CloudFormation, uma VPC e recursos relacionados. Para obter mais informações, consulte Ações e uso de perfis vinculadas a serviços no Guia do Usuário do IAM. Você deve concluir todas as etapas deste manual como o mesmo usuário. Execute o seguinte comando para verificar o usuário atual:
aws sts get-caller-identity
Convém concluir as etapas neste tópico em um shell Bash. Se não estiver utilizando um shell Bash, alguns comandos de script, como caracteres de continuação de linha e a forma como as variáveis são definidas e utilizadas, exigirão o ajuste do seu shell. Além disso, as regras de citação e de escape do seu shell podem ser diferentes. Para obter mais informações, consulte Uso de aspas com cadeias de caracteres na AWS CLI, no Guia do usuário da AWS Command Line Interface.
Etapa 1: Criar o cluster do Amazon EKS
Importante
Para começar da forma mais simples e rápida possível, este tópico inclui etapas para criar um cluster com configurações padrão. Antes de criar um cluster para uso em produção, recomendamos que você se familiarize com todas as configurações e implante um cluster com as configurações que atendam aos seus requisitos. Para ter mais informações, consulte Criar um cluster do Amazon EKS.. Algumas configurações poderão ser habilitadas apenas durante a criação do cluster.
-
Crie uma Amazon VPC com sub-redes públicas e privadas que atenda aos requisitos do Amazon EKS. Substitua
region-code
por qualquer região AWS com suporte ao Amazon EKS. Para obter uma lista das regiões da AWS, consulte Endpoints e cotas de serviço do Amazon EKS no guia Referência geral da AWS. É possível substituirmy-eks-vpc-stack
por qualquer nome de sua preferência.aws cloudformation create-stack \ --region
region-code
\ --stack-name my-eks-vpc-stack \ --template-url https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yamldica
Para obter uma lista de todos os recursos criados pelo comando anterior, acesse o console do AWS CloudFormation em https://console.aws.amazon.com/cloudformation/
. Escolha a pilha my-eks-vpc-stack
e depois a guia Resources (Recursos). -
Crie um perfil do IAM de cluster e anexe a ele a política gerenciada pelo IAM no Amazon EKS necessária. Os clusters do Kubernetes gerenciados pelo Amazon EKS fazem chamadas para outros serviços da AWS em seu nome para gerenciar os recursos que você usa com o serviço.
-
Copie o conteúdo a seguir em um arquivo chamado
eks-cluster-role-trust-policy.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Crie a função.
aws iam create-role \ --role-name myAmazonEKSClusterRole \ --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
-
Anexe a política de IAM gerenciada pelo Amazon EKS à função.
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \ --role-name myAmazonEKSClusterRole
-
-
Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters
. Certifique-se de que a região AWS mostrada no canto superior direito do console seja a região AWS na qual você deseja criar o cluster. Se não for o caso, selecione o menu suspenso ao lado do nome da região AWS e escolha a região AWS que você deseja usar.
-
Selecione Criar cluster. Caso não visualize essa opção, escolha Clusters no painel de navegação à esquerda.
-
Na página Configure cluster (Configurar cluster), faça o seguinte:
-
Selecione Configuração personalizada e desabilite Usar o modo automático do EKS. (Se você preferir um cluster no modo automático do EKS, consulte Criar um cluster do Modo Automático do EKS com o Console de Gerenciamento da AWS, em vez disso.)
-
Insira um Nome para o seu cluster, como
my-cluster
. O nome só pode conter caracteres alfanuméricos (sensíveis a maiúsculas e minúsculas) e hifens. Ele deve começar com um caractere alfanumérico e não pode ter mais de 100 caracteres. O nome deve ser exclusivo na região da AWS e na conta da AWS em que você está criando o cluster. -
Em Cluster Service Role (Função de serviço do cluster), escolha
myAmazonEKSClusterRole
. -
Deixe as configurações restantes com seus valores padrão e escolha Next (Próximo).
-
-
Na página Specify networking (Especificar redes), faça o seguinte:
-
Escolha o ID da VPC que você criou em uma etapa anterior na lista suspensa VPC. É algo como
vpc-00x0000x000x0x000
|my-eks-vpc-stack-VPC
. -
Deixe as configurações restantes com seus valores padrão e escolha Next (Próximo).
-
-
Na página Configurar observabilidade, escolha Próximo.
-
Na página Selecionar complementos, selecione Avançar.
Para obter mais informações sobre complementos, consulte Complementos do Amazon EKS.
-
Na página Definir as configurações dos complementos selecionados, escolha Avançar.
-
Na página Review and create (Revisar e criar), escolha Create (Criar).
À direita do nome do cluster, o status do cluster será Creating (Em criação) por vários minutos, até que o processo de provisionamento do cluster seja concluído. Não passe para a próxima etapa até que o status seja Active (Ativo).
nota
Talvez você receba um erro porque uma das zonas de disponibilidade em sua solicitação não tem capacidade suficiente para criar um cluster do Amazon EKS. Se isso acontecer, o resultado do erro conterá as zonas de disponibilidade que são compatíveis com o novo cluster. Tente criar o cluster com pelo menos duas sub-redes que estejam localizadas nas zonas de disponibilidade compatíveis de sua conta. Para ter mais informações, consulte Insufficient capacity (Capacidade insuficiente).
Etapa 2: Configurar o computador para se comunicar com seu cluster
Nesta seção, você cria um arquivo kubeconfig
para o cluster. As configurações neste arquivo ativam a opção CLI do kubectl
para se comunicar com o cluster.
Antes de continuar, verifique se a criação do cluster foi concluída com êxito na Etapa 1.
-
Crie um arquivo
kubeconfig
para o cluster. Substituaregion-code
pela região AWS na qual você criou seu cluster. Substituamy-cluster
pelo nome do cluster.aws eks update-kubeconfig --region
region-code
--namemy-cluster
Por padrão, um arquivo
~/.kube
é criado emconfig
ou o novo cluster é adicionado a um arquivoconfig
existente no~/.kube
. -
Teste a configuração.
kubectl get svc
nota
Se você receber qualquer erro de autorização ou de tipo de recurso, consulte Acesso negado ou não autorizado (kubectl) no tópico de solução de problemas.
Veja um exemplo de saída abaixo.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 1m
Etapa 3: criar nós
Importante
Para começar a usar da maneira mais simples e rápida possível, este tópico inclui etapas para criar nós utilizando, em sua maioria, configurações padrão. Antes de criar nós para uso em produção, recomendamos que você se familiarize com todas as configurações e implante nós com as configurações que atendam aos seus requisitos. Para ter mais informações, consulte Gerenciar recursos computacionais usando nós. Algumas configurações poderão ser habilitadas apenas durante a criação dos nós.
Este procedimento configura seu cluster para usar grupos de nós gerenciados para criar nós, especificando as sub-redes e perfil do IAM do nó que você criou nas etapas anteriores. Ele possibilita a execução de aplicações do Amazon Linux em instâncias do Amazon EC2.
Para aprender mais sobre os diferentes métodos de configuração de nós no EKS, consulte Gerenciar recursos computacionais usando nós. Depois que o cluster for implantado, você pode adicionar outros tipos de nós. Embora não seja abordado neste guia, também é possível adicionar nós autogerenciados do Windows e nós do Bottlerocket ao cluster.
Para criar seu grupo de nós gerenciados do Amazon EC2 do Linux
-
Crie uma função do IAM do nó e associe a política gerenciada do Amazon EKS IAM a ela. O daemon
kubelet
do nó do Amazon EKS chama as APIs da AWS em seu nome. Os nós recebem permissões para essas chamadas de API por meio de um perfil de instância do IAM e políticas associadas.-
Copie o conteúdo a seguir em um arquivo denominado
node-role-trust-policy.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Crie a função do IAM para o nó.
aws iam create-role \ --role-name myAmazonEKSNodeRole \ --assume-role-policy-document file://"node-role-trust-policy.json"
-
Anexe à função as políticas do IAM gerenciadas necessárias.
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy \ --role-name myAmazonEKSNodeRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly \ --role-name myAmazonEKSNodeRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy \ --role-name myAmazonEKSNodeRole
-
Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters
. -
Escolha o nome do cluster que você criou na Etapa 1: Criar o cluster do Amazon EKS, como
my-cluster
. -
Na página
my-cluster
, faça o seguinte: -
Escolha a guia Compute (Computação).
-
Escolha Add Node Group (Adicionar grupo de nós).
-
-
Na página Configure Node Group (Configurar grupo de nós), faça o seguinte:
-
Em Nome, digite um nome exclusivo para o grupo de nós gerenciados, como
my-nodegroup
. O nome do grupo de nós não pode exceder 63 caracteres. Deve começar com uma letra ou um dígito, mas pode incluir hifens e sublinhados para os demais caracteres. -
Em Node IAM role name (Nome da função do IAM de nós), escolha a função
myAmazonEKSNodeRole
que você criou em uma etapa anterior. Recomendamos que cada grupo de nós use sua própria função exclusiva do IAM. -
Escolha Próximo.
-
-
Na página Set compute and scaling configuration (Definir configurações de computação e escalabilidade), aceite os valores padrão e escolha Next (Próximo).
-
Na página Specify networking (Especificar redes), aceite os valores padrão e escolha Next (Próximo).
-
Na página Review and create (Revisar e criar), reveja a configuração do grupo de nós gerenciados e escolha Create (Criar).
-
Após alguns minutos, o Status em Node Group configuration(Configuração do grupo de nós) mudará de Creating (Em criação) para Active (Ativo). Não passe para a próxima etapa até que o status seja Active (Ativo).
Etapa 4: visualizar recursos
Você pode exibir os nós e as workloads do Kubernetes.
-
No painel de navegação à esquerda, escolha Clusters. Escolha o nome do cluster criado por você, por exemplo,
my-cluster
, na lista de Clusters. -
Na página
my-cluster
, escolha o seguinte:-
Guia Compute (Computação): você verá a lista Nodes (Nós) de nós que foram implantados para o cluster. Você pode escolher o nome de um nó para consultar mais informações sobre ele.
-
Guia Recursos: você verá todos os recursos da Kubernetes implantados por padrão em um cluster do Amazon EKS. Selecione qualquer tipo de recurso no console para obter mais informações sobre ele.
-
Etapa 5: excluir recursos
Após concluir o cluster e os nós criados para este tutorial, exclua os recursos que você criou. Se quiser realizar outras ações com esse cluster antes de excluir os recursos, consulte Próximas etapas.
-
Exclua qualquer perfil de grupo de nós que você tenha criado.
-
Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters
. -
No painel de navegação à esquerda, escolha Clusters. Na lista de clusters, escolha
my-cluster
. -
Escolha a guia Compute (Computação).
-
Se você criou um grupo de nós, escolha o grupo de nós
my-nodegroup
e, em seguida, escolha Delete (Excluir). Digitemy-nodegroup
e selecione Delete. -
Aguarde a exclusão dos perfis de grupos de nós antes de prosseguir.
-
-
Excluir o cluster.
-
No painel de navegação à esquerda, escolha Clusters. Na lista de clusters, escolha
my-cluster
. -
Escolha Delete Cluster (Excluir cluster).
-
Digite
my-cluster
e selecione Delete. Não continue até que o cluster seja excluído.
-
-
Exclua a pilha do VPC AWS CloudFormation que você criou.
-
Abra o console do CloudFormation em https://console.aws.amazon.com/cloudformation/
. -
Escolha a pilha
my-eks-vpc-stack
e, então, Delete (Excluir). -
Na caixa de diálogo de confirmação Excluir
my-eks-vpc-stack
, escolha Excluir pilha.
-
-
Exclua as funções do IAM criadas.
-
Abra o console do IAM, em https://console.aws.amazon.com/iam/
. -
No painel de navegação à esquerda, escolha Funções.
-
Selecione cada perfil que você criou na lista (incluindo
myAmazonEKSClusterRole
emyAmazonEKSNodeRole
). Escolha Delete (Excluir), insira o texto de confirmação solicitado e escolha Delete (Excluir).
-
Próximas etapas
Os seguintes tópicos de documentação ajudam a estender a funcionalidade do seu cluster:
-
A entidade principal do IAM que criou o cluster é a única entidade que pode fazer chamadas ao servidor da API do Kubernetes usando
kubectl
ou o AWS Management Console. Se quiser que outras entidades principais do IAM tenham acesso ao cluster, será necessário adicioná-los. Para ter mais informações, consulte Conceder aos usuários e perfis do IAM acesso às APIs do Kubernetes e Permissões obrigatórias. -
Implante uma aplicação de exemplo no cluster.
-
Antes de implantar um cluster para uso em produção, recomendamos conhecer todas as configurações de clusters e nós. Algumas configurações (como habilitar o acesso SSH aos nós do Amazon EC2) devem ser feitas no momento de criação do cluster.
-
Para aumentar a segurança do cluster, configure o plugin Amazon VPC Container Networking Interface para usar funções do IAM para contas de serviço.