Implante cluster Kubernetes na AWS com Amazon EKS
Criando um cluster Kubernetes com Elastic Kubernetes Service
Neste artigo, aprenderemos como implantar um cluster Kubernetes na AWS com Amazon EKS e como instalar e configurar AWS CLI e Kubectl para interagir com o cluster EKS a partir da linha de comando no Linux.
Antes de implantar o cluster Kubernetes na nuvem AWS usando o Amazon Elastic Kubernetes Service, certifique-se de ter uma conta AWS. Se você não possui uma conta AWS, consulte nosso artigo Introdução à Amazon Web Services (AWS) para saber como criar uma.
1. Configure o cluster EKS (nó mestre)
Para criar um cluster EKS na AWS, você precisa ter uma função IAM criada em mãos.
1.1. Criar função IAM
Os clusters Kubernetes gerenciados pelo Amazon EKS fazem chamadas em seu nome para outros serviços da AWS para gerenciar os recursos que você utiliza com o serviço.
Você deve primeiro criar uma função do IAM com a seguinte política do IAM antes de poder construir clusters do Amazon EKS:
AmazonEKSClusterPolicy
Faça login em seu console AWS e pesquise 'IAM'. Selecione o serviço IAM para entrar no console IAM.
Pesquisar serviço IAM
Escolha Funções nas opções do lado esquerdo e clique em Criar função.
Criar função
Selecione serviços AWS e selecione 'EKS – Cluster' nas opções de casos de uso. Uma vez selecionado, clique em 'Avançar' para prosseguir.
Selecione entidade confiável para função
Certifique-se de que 'AmazonEKSClusterPolicy' seja adicionado, por padrão ele será adicionado conforme selecionamos EKS-Cluster nos casos de uso. Clique em Avançar para prosseguir.
Adicionar permissão à função
Na próxima etapa, defina o nome da função. Aqui, nomeamos a função como 'ostechnix_eks'. Revise todos os parâmetros e clique em ‘criar’ no final para criar a função.
Definir nome da função
Aqui não adicionamos nenhuma tag para esta função. Se estivermos lidando com múltiplos recursos, será útil ter tags para gerenciar, identificar e filtrar recursos.
Criar função IAM
Uma nova função chamada 'ostechnix_eks' acaba de ser criada.
Função IAM criada para cluster EKS
1.2. Criar cluster EKS
Vá para o Console AWS e pesquise com 'EKS'. Selecione 'Elastic Kubernetes Service' para entrar no console EKS.
Pesquisar serviço EKS
Na caixa suspensa 'Adicionar cluster', escolha a opção 'criar' cluster.
Adicionar novo cluster EKS
Você obterá a página ‘Configurar Cluster’, onde poderá nomear o cluster, selecionar a versão do Kubernetes e selecionar a função de serviço do cluster que criamos na etapa anterior.
Aqui, nomeamos o cluster como ‘ostechnix’ e selecionamos a versão 1.21 do Kubernetes.
Configurar cluster
Se você não encontrou a função, atualize as funções. Selecione a função e clique em 'próximo' para prosseguir.
Atualizar funções
Neste ‘Especificar rede’, você precisa configurar a rede. Aqui estamos prosseguindo com as opções padrão.
Selecione o VPC existente, VPC é Virtual Private Cloud onde você pode criar recursos AWS na rede virtual que você definiu. Continue com as sub-redes padrão disponíveis na VPC padrão.
Escolha IPv4 como a família de endereços IP do cluster. É o padrão.
Especifique detalhes de rede
Escolha 'Público' para acesso ao Cluster End Point, que permite apenas acesso público ao seu cluster. Se você escolher 'Privado', permitirá apenas acesso privado ao seu cluster. Aqui, prosseguimos com Público, que é o padrão.
Você pode prosseguir com os 'Complementos de rede' padrão e clicar em 'Avançar'.
Insira os detalhes do acesso ao endpoint e dos complementos de rede
Você verá a página 'Configurar registro', onde poderá selecionar quais tipos de registro deseja ativar. Por padrão, todos os tipos estão desabilitados. Clique em 'Avançar' para prosseguir.
Configurar detalhes de registro
Você receberá a página 'Revisar e criar'. Revise todos os detalhes que configuramos e clique em ‘Criar’ na parte inferior.
Criar cluster EKS
A criação do cluster estará em andamento. A criação levará alguns minutos.
Criação do cluster EKS em andamento
Um novo cluster EKS denominado 'ostechnix' é criado. Você pode verificar no AWS Console?Amazon EKS?Clusters.
Estado do cluster EKS
Em seguida, precisamos instalar e configurar AWS CLI e Kubectl para interagir com o cluster EKS a partir da linha de comando.
Para configurar credenciais da AWS CLI, você precisa criar credenciais de segurança no AWS IAM.
2. Crie credenciais de segurança
Faça login no console AWS e pesquise com o IAM. Selecione IAM para entrar no console do IAM.
Pesquisar serviço IAM
Selecione a opção 'Minhas credenciais de segurança' disponível à direita para criar e gerenciar suas credenciais de segurança.
Selecione a opção Minhas credenciais de segurança
Clique na caixa suspensa 'Chaves de acesso' e clique na opção 'Criar nova chave de acesso'.
Criar nova chave de acesso
Depois de clicar na opção ‘Criar nova chave de acesso’, a chave será criada. Baixe a chave para configurar o AWS CLI na máquina Linux. Você pode visualizar a chave marcando 'Mostrar chave de acesso'.
Criar chave de acesso
Nesta demonstração a chave é,
- ID da chave de acesso: AKIAV7XU2AIJBX4EYKUO
- Chave de acesso secreta: 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
3. Instale AWS CLI
AWS CLI é uma interface de linha de comando que reúne todos os serviços da AWS em um único terminal, permitindo operar vários serviços da AWS com uma única ferramenta.
Use o comando curl
abaixo para baixar o arquivo de instalação. Aqui, estamos usando 'CentOS Stream' para instalar e configurar AWS CLI.
[root@ostechnix ~]# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
Descompacte o arquivo do instalador usando o comando abaixo.
[root@ostechnix ~]# unzip awscliv2.zip
Instale o AWS CLI usando o comando abaixo.
[root@ostechnix ~]# ./aws/install
You can now run: /usr/local/bin/aws --version
Verifique a versão usando o comando mencionado acima.
[root@ostechnix ~]# /usr/local/bin/aws --version
aws-cli/2.4.17 Python/3.8.8 Linux/4.18.0-358.el8.x86_64 exe/x86_64.centos.8 prompt/off
Verifique a versão da AWS
4. Configurar AWS CLI
Use o comando abaixo para configurar a AWS CLI. Ele solicitará o ID da chave de acesso e a chave de acesso secreta que geramos na seção 2.
[root@ostechnix ~]# /usr/local/bin/aws configure
AWS Access Key ID [None]: AKIAV7XU2AIJBX4EYKUO
AWS Secret Access Key [None]: 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
Default region name [None]:
Default output format [None]:
[root@ostechnix ~]#
Configurar AWS CLI
5. Instale o Kubectl
O Kubernetes se comunica com o servidor API do cluster por meio do utilitário de linha de comando kubectl.
Use o comando curl abaixo para baixar o binário kubectl vendido do Amazon EKS do Amazon S3.
[root@ostechnix ~]# curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.21.2/2021-07-05/bin/linux/amd64/kubectl
Adicione permissão de execução ao binário usando o comando abaixo.
[root@ostechnix ~]# chmod +x ./kubectl
Copie este binário para a pasta em seu caminho e exporte o ` PATH
.
[root@ostechnix ~]# mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
Exporte o PATH para ~/.bashrc
:
[root@ostechnix ~]# echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
Kubectl está instalado, você pode verificar a versão usando o comando abaixo.
[root@ostechnix ~]# kubectl version --short --client
Client Version: v1.21.2-13+d2965f0db10712
Verifique a versão do Kubectl
6. Configurar o Kubectl
No momento, o kubectl não sabe onde o nó mestre EKS está localizado na AWS. Precisamos informar ao kubectl onde o servidor mestre está localizado, mencionando o nome da região e o nome do clusterr.
Use o comando abaixo para verificar o status do cluster EKS.
[root@ostechnix ~]# /usr/local/bin/aws eks --region ap-south-1 describe-cluster --name ostechnix --query cluster.status
"ACTIVE"
Verifique o status do cluster EKS
Atualize o arquivo kubeconfig para usar kubectl para interagir com o cluster EKS. Ele irá buscar todas as configurações do nó mestre para o arquivo kubeconfig.
[root@ostechnix ~]# /usr/local/bin/aws eks --region ap-south-1 update-kubeconfig --name ostechnix
Added new context arn:aws:eks:ap-south-1:411756528146:cluster/ostechnix to /root/.kube/config
Verifique o kubectl verificando o serviço usando o comando abaixo. Você pode garantir que o Kubectl seja capaz de se conectar ao cluster EKS.
[root@ostechnix ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 105m
Obtenha detalhes do serviço com o comando kubectl
Conclusão
Neste artigo, aprendemos como provisionar cluster Amazon EKS e como configurar AWS CLI e Kubectl para o cluster EKS na plataforma Linux.
Implantei com sucesso o cluster Kubernetes na nuvem AWS, e agora? Você pode se perguntar. Verifique nosso próximo guia para saber como adicionar grupos de nós e configurar os nós de trabalho no cluster AWS EKS.
- Como adicionar nós de trabalho ao cluster do Amazon EKS
Recurso:
- https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html