Se você é um desenvolvedor, normalmente desejará implantar aplicativos em contêineres no Kubernetes. Mas a questão é, como? Que tal experimentar o AWS EKS CLI?
Neste tutorial, você aprenderá como configurar o AWS EKS CLI para criar um cluster Kubernetes, para que você possa focar no seu código em vez de gerenciar a infraestrutura.
Continue lendo e comece a criar seu cluster hoje mesmo!
Pré-requisito
Este tutorial será uma demonstração prática. Se você deseja acompanhar, certifique-se de ter um PC e uma conta AWS. Se você não tem uma conta AWS, uma conta gratuita está disponível.
Criando um Usuário Administrador
Antes de criar um cluster Kubernetes, você criará um usuário administrador. Um usuário administrador permite que você faça login no console AWS para configurar seu cluster. Inicie este tutorial criando um usuário com permissões de administrador através do Console AWS.
1. Faça login no seu Console AWS e acesse o painel do IAM.
Clique em Usuários (painel esquerdo) —> Adicionar usuários (canto superior direito) conforme mostrado abaixo para iniciar a adição de usuários.

2. Em seguida, forneça um nome de usuário no campo Nome de usuário, aqui é usado K8-Admin, marque a opção Chave de acesso – Acesso programático, e clique em Próximo: Permissões.
Você está selecionando a opção Chave de acesso – Acesso programático pois é acessível de forma programática. Como resultado, pode usar um aplicativo para se comunicar diretamente com a AWS sobre quais ações tomar.

3. Clique na opção Anexar diretamente políticas existentes, marque a política AdministratorAccess e clique em Próximo: Tags.
A política AdministratorAccess dá ao usuário (K8-Admin) acesso total à AWS, e mais como segue:
- Permite ao usuário usar CloudFormation
- Criar instâncias EC2 e registros CloudWatch
- Configurar balanceadores de carga elástica.

4. Clique em Próximo: Revisão para pular a adição de tags.

5. Por fim, revise os detalhes do usuário e clique em Criar usuário para finalizar a criação do usuário administrador.

Assim que a criação do usuário administrador estiver completa, você receberá uma mensagem de Sucesso na parte superior da tela, como a abaixo. Observe a ID da chave de acesso e a chave de acesso secreta pois você usará essas chaves para fazer login posteriormente.

Iniciando uma Instância EC2
Agora que você criou o K8-Admin, você pode criar sua primeira instância EC2. Você usará esta instância como seu nó principal, onde executará seus comandos para criar o cluster.
1. Navegue até o painel da sua EC2, clique em EC2, depois em Iniciar instâncias na parte mais à direita da página. Fazendo isso, seu navegador será redirecionado para uma página onde você pode escolher uma Amazon Machine Image (AMI) (passo dois).

2. Em seguida, clique em Selecionar ao lado (à direita) da Amazon Linux 2 AMI (HVM) na lista, como mostrado abaixo.
Amazon Linux 2 AMI (HVM) fornece o kernel Linux 5.10 ajustado para um desempenho ótimo da última geração de hardware. Esta AMI também possui muitos recursos necessários para clusters Kubernetes em nível de produção.

3. Mantenha o padrão (t2.micro) para o tipo de instância e clique em Próximo: Configurar detalhes da instância para configurar a instância.

4. Ative a opção Atribuir automaticamente IP público e clique em Próximo: Adicionar armazenamento. Esta opção garante que cada um dos seus contêineres possa acessar o IP público do seu nó principal do Kubernetes e suas instâncias EC2.

5. Mantenha o padrão (Root) na página Adicionar Armazenamento e clique em Avançar: Adicionar tags. O volume Root é necessário para ler e gravar dados de dentro da instância.

6. Pule a adição de tags e clique em Avançar: Configurar Grupo de Segurança.

7. Mantenha os padrões no grupo de segurança, como mostrado abaixo, e clique em Revisar e Lançar.

8. Revise os detalhes do lançamento da instância e clique em Lançar para lançar a instância. Um pop-up aparecerá onde você pode optar por selecionar um par de chaves existente ou criar um novo (passo nove).

9. No pop-up do diálogo, configure o par de chaves conforme abaixo:
- Selecione Criar um novo par de chaves na caixa suspensa.
- Escolha RSA como o Tipo de par de chaves.
- Forneça o nome do seu Par de chaves preferido. Mas para este tutorial, o nome do par de chaves é definido como meu-nvkp.
- Clique em Baixar Par de Chaves, depois Lançar Instâncias.

Sua instância pode levar um minuto ou dois para ser lançada completamente. Uma vez que sua instância esteja em execução, você verá ela listada em seu painel do EC2, como mostrado abaixo.

Configurando a Ferramenta AWS CLI
Agora que sua instância está em execução, é hora de configurar as ferramentas de linha de comando (CLI). O uso das ferramentas de CLI em conjunto com sua conta AWS é essencial para criar seu cluster Kubernetes.
1. No painel do EC2, marque a caixa para selecionar a instância, conforme mostrado abaixo. Clique em Conectar para iniciar a conexão com a instância.

2. Em seguida, clique no botão Conectar para se conectar à instância selecionada anteriormente no passo um.

Depois de conectar à sua instância EC2, seu navegador será redirecionado para o terminal interativo mostrado abaixo como sua sessão SSH temporária com sua instância EC2.
O terminal interativo permite que você se conecte à linha de comando e execute comandos administrativos em sua nova instância.

3. Execute o comando aws
abaixo para verificar a versão da sua CLI.
Como pode ser visto na saída abaixo, você está executando a versão 1.18.147 em sua instância Amazon Linux 2, que está desatualizada. É necessário baixar e instalar a AWS CLI na versão 2+ para garantir o acesso a todos os recursos do Kubernetes (passo três).

4. Agora, execute o comando curl
abaixo para baixar a ferramenta CLI v2+ e salvá-la em um arquivo zip chamado awscliv2.zip
.

5. Execute os comandos a seguir para descompactar o arquivo baixado e determinar onde a versão desatualizada da AWS CLI está instalada.
Como pode ser visto na saída abaixo, a AWS CLI desatualizada está instalada em /usr/bin/aws. É necessário atualizar este caminho com a versão mais recente.

6. Execute o comando abaixo para realizar o seguinte e – atualizar o caminho de instalação da AWS CLI na sua instância:
- Instale as ferramentas AWS CLI atualizadas na sua instância Amazon Linux 2 (
sudo ./aws/install
). - Configure o diretório (
--install-dir /usr/bin/aws-cli
) onde instalar as ferramentas CLI. Fazê-lo permite transferir a AWS CLI atualizada para outras instâncias sem reinstalar as ferramentas CLI. - Atualize (
--update
) o seu ambiente shell atual com o novo caminho para as ferramentas AWS CLI se houver um no seu ambiente atual.

7. Execute novamente o comando aws --version
abaixo para verificar se a AWS CLI atualizada está instalada corretamente.
A versão da AWS CLI instalada é 2.4.7, como mostrado abaixo, que é a última versão da AWS CLI 2.4.7 no momento da escrita.

8. Em seguida, execute o comando aws configure
para configurar sua instância com as novas ferramentas AWS CLI.
Insira os valores apropriados nos prompts conforme abaixo:
- Chave de acesso AWS [Nenhum] – Insira a Chave de Acesso AWS que você anotou na seção anterior “Criando seu Usuário Admin”.
- Chave de acesso secreta AWS [Nenhum] – Insira a Chave de Acesso Secreta que você anotou na seção anterior “Criando seu Usuário Admin”.
- Nome da região padrão [Nenhum] – Selecione uma região suportada, como us-east-1.
- Formato de saída padrão [Nenhum] – Insira json, pois o formato JSON é o padrão preferido para uso com Kubernetes.

Configurando a Ferramenta de Linha de Comando do Amazon EKS (eksctl)
Como seu objetivo é criar um cluster Kubernetes com a AWS EKS CLI, você também configurará a ferramenta de linha de comando Amazon EKS (eksctl). Essa ferramenta permite que você crie e gerencie clusters Kubernetes no Amazon EKS.
1. Instale a versão mais recente da ferramenta de linha de comando do Kubernetes (kubectl) em sua instância EC2. Essa ferramenta permite que você execute comandos em clusters Kubernetes.
2. Em seguida, execute o comando curl
abaixo para obter a versão mais recente do lançamento do eksctl
no GitHub para o seu diretório /tmp como um arquivo .tar.gz, e depois extraia o conteúdo do arquivo no diretório /tmp.
Execute os comandos abaixo para realizar o seguinte:
- Obtenha a versão mais recente do
eksctl
no GitHub (--location
) como um arquivo .tar.gz ("<https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$>(uname -s)_amd64.tar.gz"
) - Extraia o conteúdo do arquivo para o diretório /tmp (
tar xz -C /tmp
), enquanto a opção--silent
suprime a saída de progresso do comando. - Mova (
sudo mv
) o binário eksctl (/tmp/eksctl
) para o caminho onde você instalou a AWS CLI (/usr/bin
)
1. Por fim, execute o comando abaixo para confirmar que você instalou o eksctl
com sucesso.
A saída abaixo confirma que você instalou o eksctl com sucesso.

Se você é novo no eksctl
, pode executar o comando abaixo para obter uma lista de todos os comandos suportados pelo eksctl
e suas utilizações.

Provisionando seu Cluster EKS
Agora que você configurou o eksctl, pode provisionar seu primeiro Cluster EKS com os comandos do eksctl
.
Execute o comando eksctl
abaixo para criar seu primeiro cluster e realizar o seguinte:
- Crie um cluster Kubernetes de 3 nós chamado
dev
com um tipo de nó comot3.micro
e região comous-east-1
. - Defina um mínimo de um nó (
--nodes-min 1
) e um máximo de quatro nós (--nodes-max 4
) para este grupo de nós gerenciado pelo EKS. O grupo de nós é chamadostandard-workers
. - Crie um grupo de nós com o nome
standard-workers
e selecione um tipo de máquina para o grupo de nósstandard-workers
.

2. Vá para o seu painel do CloudFormation para ver as ações realizadas pelo comando. O comando eksctl create cluster
utiliza o CloudFormation para provisionar a infraestrutura em sua conta AWS.
Como você pode ver abaixo, uma pilha de CloudFormation chamada eksctl-dev-cluster está sendo criada. Esse processo pode levar 15 minutos ou mais para ser concluído.

3. Agora, acesse o painel do seu EKS e você verá um cluster chamado dev provisionado. Clique no hiperlink dev para acessar o painel do Cluster EKS dev.

Abaixo, você pode ver os detalhes do cluster EKS dev, como Nome do nó, Tipo de instância, Grupo de nós, e Status.

4. Mude para o painel do EC2 e você verá que quatro nós estão em execução, com três tendo o papel t3.micro em sua conta AWS (três nós trabalhadores e um nó mestre).

5. Por fim, execute o comando abaixo para atualizar sua configuração kubectl (update-kubeconfig
) com o endpoint do seu cluster, certificado e credenciais.

Implantando uma Aplicação no Cluster EKS
Você criou seu cluster EKS e confirmou que está funcionando perfeitamente. Mas agora, o cluster EKS está apenas sentado no canto. Para esta demonstração, você usará o cluster EKS implantando uma aplicação NGINX.
1. Execute o comando yum
abaixo para instalar
o git
aceitando todas as solicitações automaticamente (-y
) durante a instalação.

2. Em seguida, execute o comando git clone
abaixo para clonar os arquivos de configuração do repositório do GitHub para o seu diretório atual. Você usará esses arquivos para criar uma implantação do NGINX em seus pods e criar um balanceador de carga (ELB).

3. Execute os seguintes comandos para entrar no diretório ata-elk
e criar (kubectl apply
) um serviço para o NGINX (./nginx-svc.yaml
).

4. Em seguida, execute o comando kubectl get service
para verificar o status do seu serviço NGINX.
Como você pode ver abaixo, o tipo de serviço é um balanceador de carga, e o Kubernetes criou um serviço (nginx-svc), que é a sua implantação do NGINX. Você também pode ver o nome do host DNS externo do balanceador de carga criado pelo EKS na coluna IP EXTERNO.
Anote o nome do host DNS externo do balanceador de carga, pois você precisará dele mais tarde para testar o balanceador de carga.

5. Execute o comando kubectl
abaixo para implantar os pods do NGINX.

6. Execute os seguintes comandos kubectl get
para verificar o status do seu deployment
NGINX e do seu pod
NGINX.
Como você pode ver na saída abaixo, existem três pods do seu deployment, e todos estão em execução.

7. Em seguida, execute o comando kubectl get node
para verificar o status dos seus nós de trabalho.

8. Agora, execute o comando curl
abaixo para testar seu balanceador de carga. Substitua <LOAD_BALANCER_DNS_HOSTNAME>
pelo nome DNS que você anotou anteriormente (passo cinco).
Você verá a página de boas-vindas do NGINX do serviço NGINX criado pelo EKS, conforme mostrado abaixo. A saída abaixo confirma que seu balanceador de carga está funcionando corretamente e que você pode acessar seus pods NGINX.

9. Por fim, para verificação adicional, copie e cole o nome DNS do balanceador de carga em uma nova aba do navegador.
Você também obterá uma página de boas-vindas do NGINX, o que indica que seu aplicativo está funcionando.

Testando o Controle do Kubernetes Altamente Disponível
Agora que você tem um cluster em execução, você testará se o plano de controle do Kubernetes está altamente disponível. O tempo de atividade do seu aplicativo depende dessa funcionalidade. Se o plano de controle não funcionar, seus aplicativos ficarão inativos e não poderão atender aos usuários.
Com o recurso de controle do Kubernetes altamente disponível, você aumenta a disponibilidade do seu aplicativo. Você testará esse recurso interrompendo seus nós de trabalho do EKS e verá se o Kubernetes traz novos nós para substituir os que falharam.
1. No seu painel EC2, pare todas as instâncias de nó de trabalho do EKS, conforme mostrado abaixo.

2. Em seguida, execute o seguinte comando para verificar o status do nó de trabalho.
Você obterá uma mistura de status, como Pendente, Executando e Encerrando. Por quê? Porque ao tentar parar todos os nós de trabalho, o Kubernetes detecta a falha e rapidamente inicia outro nó.

3. Agora execute o comando kubectl get pod
para testar o recurso de controle do Kubernetes altamente disponível.
Você pode ver na saída que existem três novos pods (identificados pela idade) no estado Executando. Esses novos pods indicam que o recurso de controle do Kubernetes altamente disponível está funcionando conforme o esperado.

4. Execute o comando kubectl get service
abaixo para listar todos os serviços disponíveis.
Você pode ver abaixo que o Kubernetes criou um novo serviço, e o nome do DNS do balanceador de carga é diferente agora. kubectl get service

5. Por fim, copie e cole o nome do DNS do balanceador de carga em seu navegador. Você obterá a página de boas-vindas do NGINX, assim como fez na última etapa da seção “Implantando um Aplicativo no Cluster EKS”.
Conclusão
Ao longo deste tutorial, você aprendeu como criar um cluster EKS, implantar um serviço NGINX a partir do seu contêiner e testar a funcionalidade do plano de controle altamente disponível.
Neste ponto, você deve ter uma boa compreensão de como criar clusters EKS em seu ambiente AWS.
O que vem a seguir para você? Talvez aprender a implantar um aplicativo NodeJS usando Docker e K8s na AWS?