Conceitos básicos do Amazon EKS - AWS Management Console e AWS CLI
Este manual ajuda a criar todos os recursos necessários para começar a usar o Amazon Elastic Kubernetes Service (Amazon EKS) com o AWS Management Console e o 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 obter 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. Este guia exige que você use a versão 2.4.9 ou superior, ou a versão 1.22.30 ou superior. Para obter mais informações, consulte Installing, updating, and uninstalling the AWS CLI (Instalar, atualizar e desinstalar a ) no Manual do usuário da AWS Command Line Interface. Depois de instalar a AWS CLI, recomendamos que você também a configure. Para obter mais informações, consulte Quick configuration with
aws configure
(Configuração rápida com ) no Manual do usuário do AWS Command Line Interface. -
kubectl
– Uma ferramenta de linha de comando para trabalhar com clusters do Kubernetes. Este guia requer que você use a versão 1.21 ou superior. Para obter mais informações, consulte Instalação do kubectl. -
Permissões obrigatórias do IAM: o principal de segurança do IAM que você está usando deve ter permissões para trabalhar com funções do Amazon EKS IAM e funções vinculadas ao serviço, o AWS CloudFormation e uma VPC com recursos relacionados. Para obter mais informações, consulte Ações, recursos e chaves de condição do Amazon Elastic Kubernetes Service e Usar funções vinculadas a serviço no Guia do usuário do IAM. Você deve concluir todas as etapas deste manual como o mesmo usuário.
Etapa 1: Criar o cluster do Amazon EKS
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 obter mais informações, consulte . Criar um cluster do Amazon EKS. Algumas configurações poderão ser habilitadas apenas durante a criação do cluster.
Para criar um 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 da AWS com suporte ao Amazon EKS. Para obter uma lista das Região da AWS, consulte Endpoints e cotas 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-namemy-eks-vpc-stack
\ --template-url https://amazon-eks.s3.us-west-2.amazonaws.com/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yamldica Para obter uma lista de todos os recursos que o comando anterior cria, abra 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 uma função do IAM de cluster e associe a política gerenciada do Amazon EKS IAM a ela. Os clusters do Kubernetes gerenciados pelo Amazon EKS fazem chamadas a 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 denominado
.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://"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
. Verifique se a Região da AWS exibida no canto superior direito do seu console é a Região da AWS em que você deseja criar o cluster. Se não for, escolha a lista suspensa ao lado do nome da Região da AWS e, em seguida, a Região da AWS que deseja usar.
-
Escolha Add cluster (Adicionar cluster) e, em seguida, Create (Criar). Caso não visualize essa opção, escolha Clusters do Amazon EKS no painel de navegação à esquerda.
-
Na página Configure cluster (Configurar cluster), faça o seguinte:
-
Insira um nome para o seu cluster, como
my-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 Configure logging (Configurar registro em log), escolha Next (Próximo).
-
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 obter 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.
Para configurar o computador para se comunicar com o cluster
-
Crie um arquivo
kubeconfig
para o cluster. Substituaregion-code
pela Região da AWS em que você criou o cluster emy-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) na seção de solução de problemas.
Resultado
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
Para começar da forma mais simples e rápida possível, este tópico inclui etapas para criar nós com 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 obter mais informações, consulte . Nós do Amazon EKS. Algumas configurações poderão ser habilitadas apenas durante a criação dos nós.
Você pode criar um cluster com um dos seguintes tipos de nós. Para saber mais sobre cada tipo, consulte Nós do Amazon EKS. Depois que o cluster for implantado, você pode adicionar outros tipos de nós.
-
Fargate – Linux: escolha este tipo de nó se quiser executar aplicações do Linux no AWS Fargate. O Fargate é um mecanismo de computação sem servidor que permite a implantação de pods do Kubernetes sem gerenciar instâncias do Amazon EC2.
-
Nós gerenciados – Linux: escolha este tipo de nó se quiser executar aplicações do Amazon Linux em instâncias do Amazon EC2. Embora não seja abordado neste guia, também é possível usar os nós Autogerenciado do Windows e Bottlerocket para o cluster.
Etapa 4: visualizar recursos
Você pode exibir os nós e as workloads do Kubernetes.
Para visualizar nós e workloads
-
No painel de navegação à esquerda, escolha Clusters do Amazon EKS. Escolha o nome do cluster criado por você, por exemplo,
my-cluster
, na lista de Clusters. -
Na página
my-cluster
, faça o seguinte:-
Na guia Overview (Visão geral), você verá a lista de Nós que foram implantados para o cluster. Você pode escolher o nome de um nó para consultar mais informações sobre ele. Para obter mais informações sobre o que você vê aqui, consulte Previsualizar os nós.
-
Na guia Workloads do cluster, você verá uma lista das workloads que são implantadas por padrão em um cluster do Amazon EKS. Você pode escolher o nome de uma workload para consultar mais informações sobre ela. Para obter mais informações sobre o que você vê aqui, consulte Visualizar workloads. Se você criou nós Fargate, somente coredns tem um status.
-
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.
Para excluir os recursos que você criou neste guia
-
Exclua todos os grupos de nós ou perfis do Fargate que criou.
-
Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters
. -
No painel de navegação à esquerda, escolha Clusters do Amazon EKS. Na lista de clusters, escolha
my-cluster
. -
Escolha a guia Configuration (Configurações) e, em seguida, 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). Insira
e escolha Delete (Excluir).my-nodegroup
-
Escolha-o para cada perfil do Fargate criado por você e, então, escolha Delete (Excluir). Insira o nome do perfil e, então, escolha Delete (Excluir).
nota Ao excluir um segundo perfil do Fargate, talvez seja necessário esperar a conclusão de exclusão do primeiro.
-
Não continue até que o grupo de nós ou perfis do Fargate estejam excluído(s).
-
-
Exclua o cluster.
-
No painel de navegação à esquerda, escolha Clusters do Amazon EKS. Na lista de clusters, escolha
my-cluster
. -
Escolha Delete Cluster (Excluir cluster).
-
Insira
e escolha Delete (Excluir). Não continue até que o cluster seja excluído.my-cluster
-
-
Exclua a pilha do AWS CloudFormation da VPC criada.
-
Abra o console do AWS 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 Delete
my-eks-vpc-stack
(Excluir o my-eks-vpc-stack), escolha Delete stack (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 Roles.
-
Na lista, selecione cada função criada (
myAmazonEKSClusterRole
, assim comomyAmazonEKSFargatePodExecutionRole
oumyAmazonEKSNodeRole
). 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 do IAM (usuário ou função) que criou o cluster é o único usuário do IAM que pode realizar chamadas ao servidor da API do Kubernetes usando
kubectl
. Se quiser que outros usuários tenham acesso ao cluster, consulte Habilitar o acesso de usuário e função do IAM ao cluster.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.