Amazon EKS
Guia do usuário

Conceitos básicos do Amazon EKS

Este guia de conceitos básicos ajuda você a criar todos os recursos necessários para começar a usar o Amazon EKS.

Pré-requisitos do Amazon EKS

Antes de criar um cluster do Amazon EKS, você deve criar uma função do IAM que o Kubernetes pode assumir para criar recursos da AWS. Por exemplo, quando um load balancer é criado, o Kubernetes assume a função para criar um load balancer do Elastic Load Balancing em sua conta. Isso só precisa ser feito uma vez e pode ser usado para vários clusters do EKS.

Você também deve criar uma VPC e um grupo de segurança para uso do cluster. Embora a VPC e os security groups possam ser usados para vários clusters do EKS, recomendamos que você use uma VPC separada para cada cluster do EKS para fornecer melhor isolamento de rede.

Esta seção também ajuda você a instalar o binário do kubectl e configurá-lo para funcionar com o Amazon EKS.

Criar a função de serviço do Amazon EKS

Para criar uma função de serviço do Amazon EKS no console do IAM

  1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. Escolha Roles (Funções) e, em seguida, Create Role (Criar função).

  3. Selecione EKS na lista de serviços, Allows Amazon EKS to manage your clusters on your behalf (Permite que o Amazon EKS gerencie os clusters em seu nome) para seu caso de uso e Next: Permissions (Próximo: permissões).

  4. Escolha Next: Tags (Próximo: tags).

  5. (Opcional) Adicione metadados à função anexando tags como pares de chave-valor. Para obter mais informações sobre como usar tags no IAM, consulte Marcar entidades do IAM no Guia do usuário do IAM.

  6. Selecione Next: Review.

  7. Em Role name (Nome da função), digite um nome exclusivo para a função, como eksServiceRole e, em seguida, escolha Create role (Criar função).

Criar a VPC do cluster do Amazon EKS

Para criar a VPC do cluster

  1. Abra o console do AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  2. Na barra de navegação, selecione uma região que seja compatível com o Amazon EKS.

  3. Selecione Create stack.

  4. Em Choose a template (Escolher um modelo), selecione Specify an Amazon S3 template URL (Especificar o URL de um modelo do Amazon S3).

  5. Cole a seguinte URL na área de texto e selecione Next (Próximo):

    https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-02-11/amazon-eks-vpc-sample.yaml
  6. Na página Specify Details (Especificar detalhes), preencha os parâmetros conforme necessário e, em seguida, escolha Next (Próximo).

    • Stack name (Nome da pilha): escolha um nome de pilha para a pilha do AWS CloudFormation. Por exemplo, você pode chamá-la de eks-vpc.

    • VpcBlock: escolha um intervalo de CIDR para a VPC. Você pode manter o valor padrão.

    • Subnet01Block: escolha um intervalo de CIDR para a sub-rede 1. Você pode manter o valor padrão.

    • Subnet02Block: escolha um intervalo de CIDR para a sub-rede 2. Você pode manter o valor padrão.

    • Subnet03Block: escolha um intervalo de CIDR para a sub-rede 3. Você pode manter o valor padrão.

  7. (Opcional) Na página Options (Opções), marque os recursos da pilha. Escolha Next.

  8. Na página Revisão, selecione Criar.

  9. Quando a pilha estiver criada, selecione-a no console e escolha Outputs (Saídas).

  10. Registre o valor de SecurityGroups para o security group criado. Você precisará dele ao criar seu cluster do EKS. Esse security group é aplicado às interfaces de rede elástica entre contas que são criadas em suas sub-redes que permitem que o plano de controle do Amazon EKS se comunique com os nós de operador.

  11. Registre o VpcId para a VPC que foi criada. Você precisará disso ao executar o modelo do grupo de nós de operador.

  12. Registre os SubnetIds para as sub-redes que foram criadas. Você precisará disso ao criar seu cluster do EKS. Essas são as sub-redes nas quais os nós de operador são executados.

Instalar e configurar o kubectl para o Amazon EKS

O Kubernetes usa um utilitário de linha de comando chamado kubectl para se comunicar com o servidor da API do cluster. Os clusters do Amazon EKS também precisam do AWS IAM Authenticator para Kubernetes para permitir a autenticação do IAM para seu cluster do Kubernetes. A partir do Kubernetes versão 1.10, você pode configurar o cliente do kubectl para funcionar com o Amazon EKS instalando o AWS IAM Authenticator para Kubernetes e modificando o arquivo de configuração do kubectl para usá-lo para autenticação.

Para instalar o kubectl para o Amazon EKS

  • Você tem várias opções para baixar e instalar kubectl para o seu sistema operacional.

    • O binário kubectl está disponível em muitos gerenciadores de pacotes de sistema operacional, e essa opção geralmente é muito mais fácil do que o processo de download e instalação manual. Você pode seguir as instruções para seu sistema operacional ou gerenciadores de pacotes específicos na Documentação do Kubernetes para instalar.

    • O Amazon EKS também fornece binários kubectl que você pode usar que são idênticos aos binários kubectl upstream com a mesma versão. Para instalar o binário fornecido pelo Amazon EKS para o seu sistema operacional, consulte Instalação do kubectl.

Para instalar o aws-iam-authenticator para o Amazon EKS

  1. Baixe o binário aws-iam-authenticator fornecido pelo Amazon EKS no Amazon S3:

    Use o comando a seguir para fazer download do binário substituindo a URL correta para a plataforma. O exemplo a seguir é para clientes do macOS.

    curl -o aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/1.12.7/2019-03-27/bin/darwin/amd64/aws-iam-authenticator

    Como alternativa, você pode fazer download dos binários no projeto Autenticador do AWS IAM para Kubernetes no GitHub. Os binários são idênticos aos binários dos quais você pode fazer download pelo Amazon S3 acima.

  2. (Opcional) Verifique o binário baixado com a soma de SHA-256 fornecido no mesmo prefixo do bucket, substituindo o URL correto para sua plataforma.

    1. Faça download da soma de SHA-256 para seu sistema. O exemplo a seguir é para fazer download da soma de SHA-256 para clientes do macOS.

      curl -o aws-iam-authenticator.sha256 https://amazon-eks.s3-us-west-2.amazonaws.com/1.12.7/2019-03-27/bin/darwin/amd64/aws-iam-authenticator.sha256
    2. Verifique a soma de SHA-256 para o binário obtido por download. O comando de exemplo openssl a seguir foi testado para clientes do macOS e do Ubuntu. Seu sistema operacional pode usar um comando ou uma sintaxe diferente para verificar somas de SHA-256. Consulte a documentação de seu sistema operacional se necessário.

      openssl sha1 -sha256 aws-iam-authenticator
    3. Compare a soma da SHA-256 gerada na saída do comando em relação a seu arquivo aws-iam-authenticator.sha256 obtido por download. Os dois devem corresponder.

  3. Aplique permissões de execução ao binário.

    chmod +x ./aws-iam-authenticator
  4. Copie o binário em uma pasta em seu $PATH. Recomendamos criar um $HOME/bin/aws-iam-authenticator e garantir que $HOME/bin venha primeiro em seu $PATH.

    mkdir $HOME/bin && cp ./aws-iam-authenticator $HOME/bin/aws-iam-authenticator && export PATH=$HOME/bin:$PATH
  5. Adicione $HOME/bin à variável de ambiente PATH.

    • Para shells do Bash no macOS:

      echo 'export PATH=$HOME/bin:$PATH' >> ~/.bash_profile
    • Para shells do Bash no Linux:

      echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
  6. Teste se o binário do aws-iam-authenticator funciona.

    aws-iam-authenticator help

(Opcional) Fazer download e instalar a AWS CLI mais recente

Embora a AWS CLI não seja explicitamente necessária para usar o Amazon EKS, o comando update-kubeconfig simplifica muito o processo de criação do kubeconfig. Para usar a AWS CLI com o Amazon EKS, você deve ter pelo menos a versão 1.16.73 da AWS CLI instalada. Para instalar ou atualizar a AWS CLI, consulte Instalar a Interface de linha de comando da AWS no Guia do usuário do AWS Command Line Interface.

Importante

Gerenciadores de pacotes como yum, apt-get ou Homebrew para macOS geralmente estão por trás de várias versões da AWS CLI. Para verificar se você tem a versão mais recente, consulte Instalar a interface de linha de comando da AWS no Guia do usuário do AWS Command Line Interface.

Você pode verificar a versão da AWS CLI com o comando a seguir:

aws --version

nota

A versão do Python do sistema deve ser o Python 3 ou o Python 2.7.9 ou superior. Caso contrário, você receberá erros de hostname doesn't match com chamadas da AWS CLI para o Amazon EKS. Para obter mais informações, consulte O que são os erros de "o nome do host não corresponde"? nas Perguntas frequentes sobre solicitações do Python.

Etapa 1: Criar o cluster do Amazon EKS

Agora você pode criar o cluster do Amazon EKS.

Importante

Quando um cluster do Amazon EKS é criado, a entidade (usuário ou função) do IAM que cria o cluster é adicionada à tabela de autorização de RBAC do Kubernetes como o administrador (com permissões system:master. Inicialmente, somente o usuário do IAM pode fazer chamadas para o servidor da API do Kubernetes usando kubectl. Para obter mais informações, consulte Gerenciamento de usuários ou funções do IAM para seu cluster. Além disso, o Autenticador IAM da AWS para Kubernetes usa o AWS SDK para Go para autenticação no cluster do Amazon EKS. Se usar o console para criar o cluster, você deverá verificar se as mesmas credenciais de usuário do IAM estão na cadeia de credenciais do SDK da AWS ao executar os comandos kubectl no cluster.

Se instalar e configurar a AWS CLI, você poderá configurar as credenciais do IAM para o usuário. Elas também funcionam para o Autenticador IAM da AWS para Kubernetes. Se a AWS CLI estiver configurada corretamente para o usuário, o Autenticador IAM da AWS para Kubernetes também poderá encontrar essas credenciais. Para obter mais informações, consulte Configurar a no .

Para criar o cluster com o console

  1. Open the Amazon EKS console at https://console.aws.amazon.com/eks/home#/clusters.

  2. Escolha Create cluster.

    nota

    Se o usuário do IAM não tiver privilégios administrativos, você deverá adicionar permissões explicitamente para que esse usuário chame as operações da API do Amazon EKS. Para obter mais informações, consulte Criar políticas do IAM no Amazon EKS.

  3. Na página Create cluster (Criar cluster), preencha os seguintes campos e selecione Create (Criar):

    • Cluster name (Nome do cluster): um nome exclusivo para o cluster.

    • Kubernetes version (Versão do Kubernetes): a versão do Kubernetes a ser usada para o cluster. Por padrão, a versão mais recente disponível é selecionada.

    • Role ARN (ARN da função): selecione a função do IAM criada com Criar a função de serviço do Amazon EKS.

    • VPC: a VPC que você criou com Criar a VPC do cluster do Amazon EKS. Você pode encontrar o nome da VPC na lista suspensa.

    • Subnets (Sub-redes): os valores de SubnetIds (separados por vírgula) na saída do AWS CloudFormation que você gerou com Criar a VPC do cluster do Amazon EKS. Por padrão, as sub-redes disponíveis na VPC acima estão pré-selecionadas.

    • Security Groups (Grupos de segurança): o valor de SecurityGroups na saída do AWS CloudFormation que você gerou com Criar a VPC do cluster do Amazon EKS. Esse security group tem ControlPlaneSecurityGroup no nome da lista suspensa.

      Importante

      O modelo do AWS CloudFormation de nó de operador modifica o grupo de segurança especificado por você aqui. Por isso, o Amazon EKS recomenda que você use um grupo de segurança dedicado para cada plano de controle de cluster (um por cluster). Se esse grupo de segurança for compartilhado com outros recursos, você poderá bloquear ou interromper as conexões a esses recursos.

    • Endpoint private access (Acesso privado ao endpoint): escolha se deseja habilitar ou desabilitar o acesso privado ao endpoint para o servidor de API do Kubernetes do cluster. Se você habilitar o acesso privado, as solicitações de API do Kubernetes originadas da VPC do cluster usarão o VPC endpoint privado. Para obter mais informações, consulte Controle de acesso ao endpoint do cluster do Amazon EKS.

    • Endpoint public access (Acesso público ao endpoint): escolha se deseja habilitar ou desabilitar o acesso público ao endpoint para o servidor da API do Kubernetes do cluster. Se você desabilitar o acesso público, o servidor de API do Kubernetes do cluster somente poderá receber solicitações de dentro da VPC do cluster. Para obter mais informações, consulte Controle de acesso ao endpoint do cluster do Amazon EKS.

    • Logging (Registro em log) – para cada tipo de log individual, escolha se o tipo de log deve ser Enabled (Habilitado) ou Disabled (Desabilitado). Por padrão, cada tipo de log está Disabled (Desabilitado). Para obter mais informações, consulte Registro em log do plano de controle do Amazon EKS

    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, a saída do erro conterá as zonas de disponibilidade que são compatíveis com o novo cluster. Tente criar novamente o cluster com pelo menos duas sub-redes que estejam localizadas nas zonas de disponibilidade compatíveis com a sua conta. Para obter mais informações, consulte Capacidade insuficiente.

  4. Na página Clusters, selecione o nome do cluster recém-criado para visualizar as informações do cluster.

  5. O campo Status mostra CREATING (CRIANDO) até que o processo de provisionamento do cluster esteja concluído. O provisionamento do cluster normalmente leva entre 10 e 15 minutos.

Para criar o cluster com a AWS CLI

  1. Crie o cluster usando o comando a seguir. Substitua o nome do cluster, o Amazon Resource Name (ARN) da função de serviço do Amazon EKS que você criou em Criar a função de serviço do Amazon EKS e os IDs da sub-rede e do grupo de segurança para a VPC que você criou em Criar a VPC do cluster do Amazon EKS.

    aws eks --region region create-cluster --name devel --role-arn arn:aws:iam::111122223333:role/eks-service-role-AWSServiceRoleForAmazonEKS-EXAMPLEBKZRQR --resources-vpc-config subnetIds=subnet-a9189fe2,subnet-50432629,securityGroupIds=sg-f5c54184

    Importante

    Se receber um erro de sintaxe semelhante ao erro a seguir, talvez você esteja usando uma versão de visualização da AWS CLI do Amazon EKS. A sintaxe de muitos comandos do mudou desde o lançamento do serviço público. Atualize sua versão da AWS CLI para a mais recente disponível e exclua o diretório de modelo de serviço personalizado em ~/.aws/models/eks.

    aws: erro: argumento — o nome do cluster é obrigatório.

    nota

    Se o usuário do IAM não tiver privilégios administrativos, você deverá adicionar permissões explicitamente para que esse usuário chame as operações da API do Amazon EKS. Para obter mais informações, consulte Criar políticas do IAM no Amazon EKS.

    Resultado:

    { "cluster": { "name": "devel", "arn": "arn:aws:eks:us-west-2:111122223333:cluster/devel", "createdAt": 1527785885.159, "version": "1.10", "roleArn": "arn:aws:iam::111122223333:role/eks-service-role-AWSServiceRoleForAmazonEKS-AFNL4H8HB71F", "resourcesVpcConfig": { "subnetIds": [ "subnet-a9189fe2", "subnet-50432629" ], "securityGroupIds": [ "sg-f5c54184" ], "vpcId": "vpc-a54041dc" }, "status": "CREATING", "certificateAuthority": {} } }
  2. O provisionamento do cluster normalmente leva entre 10 e 15 minutos. Você pode consultar o status do cluster com o comando a seguir. Quando o status do cluster for ACTIVE, você poderá continuar.

    aws eks --region region describe-cluster --name devel --query cluster.status

Etapa 2: criar um arquivo kubeconfig

Nesta seção, você cria um arquivo kubeconfig para o cluster com o comando update-kubeconfig da AWS CLI. Se você não deseja instalar a AWS CLI ou se você prefere criar ou atualizar o kubeconfig manualmente, consulte Criar um kubeconfig para o Amazon EKS.

Para criar o arquivo kubeconfig com a AWS CLI

  1. Verifique se você tem pelo menos a versão 1.16.73 da AWS CLI instalada. Para instalar ou atualizar a AWS CLI, consulte Instalar a Interface de linha de comando da AWS no Guia do usuário do AWS Command Line Interface.

    nota

    A versão do Python do sistema deve ser o Python 3 ou o Python 2.7.9 ou superior. Caso contrário, você receberá erros de hostname doesn't match com chamadas da AWS CLI para o Amazon EKS. Para obter mais informações, consulte O que são os erros de "o nome do host não corresponde"? nas Perguntas frequentes sobre solicitações do Python.

    Você pode verificar a versão da AWS CLI com o comando a seguir:

    aws --version

    Importante

    Gerenciadores de pacotes como yum, apt-get ou Homebrew para macOS geralmente estão por trás de várias versões da AWS CLI. Para verificar se você tem a versão mais recente, consulte Instalar a interface de linha de comando da AWS no Guia do usuário do AWS Command Line Interface.

  2. Use o comando update-kubeconfig da AWS CLI para criar ou atualizar o kubeconfig para seu cluster.

    • Por padrão, o arquivo de configuração resultante é criado no caminho kubeconfig padrão (.kube/config) em seu diretório inicial ou mesclado com um kubeconfig existente nesse local. Você pode especificar outro caminho com a opção --kubeconfig.

    • Você pode especificar um ARN de função do IAM com a opção --role-arn para uso para autenticação quando você emitir comandos kubectl. Caso contrário, a entidade do IAM na AWS CLI ou na cadeia de credenciais padrão do SDK é usada. Você pode visualizar sua identidade padrão da AWS CLI ou do SDK executando o comando aws sts get-caller-identity.

    • Para obter mais informações, consulte a página de ajuda com o comando aws eks update-kubeconfig help ou consulte update-kubeconfig no AWS CLI Command Reference.

    aws eks --region region update-kubeconfig --name cluster_name
  3. Teste a configuração.

    kubectl get svc

    nota

    Se você receber o erro "aws-iam-authenticator": executable file not found in $PATH, o kubectl não está configurado para o Amazon EKS. Para obter mais informações, consulte Instalação do aws-iam-authenticator.

    Se você receber qualquer outro erro de autorização ou de tipo de recurso, consulte Não autorizado ou acesso negado (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: Iniciar e configurar os nós de operador do Amazon EKS

Agora que a VPC e o plano de controle do Kubernetes estão criados, você pode iniciar e configurar os nós de operador.

Importante

Os nós de operador do Amazon EKS são instâncias padrão do Amazon EC2, e você é cobrado por eles com base nos preços normais de instâncias sob demanda do Amazon EC2. Para obter mais informações, consulte a Definição de preço do Amazon EC2.

Para iniciar os nós de operador

  1. Aguarde até que o status do cluster seja exibido como ACTIVE. Se você executar os nós de operador antes do cluster estar ativo, ocorrerá uma falha nos nós de operador ao serem registrados com o cluster, e você terá que executá-los novamente.

  2. Abra o console do AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  3. Na barra de navegação, selecione uma região que seja compatível com o Amazon EKS.

  4. Selecione Create stack.

  5. Em Choose a template (Escolher um modelo), selecione Specify an Amazon S3 template URL (Especificar o URL de um modelo do Amazon S3).

  6. Cole a seguinte URL na área de texto e selecione Next (Próximo):

    https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-02-11/amazon-eks-nodegroup.yaml
  7. Na página Specify Details (Especificar detalhes), preencha os seguintes parâmetros conforme necessário e, em seguida, escolha Next (Próximo).

    • Stack name (Nome da pilha): escolha um nome de pilha para a pilha do AWS CloudFormation. Por exemplo, você pode chamá-la <cluster-name>-worker-nodes.

    • ClusterName: insira o nome que você usou ao criar o cluster do Amazon EKS.

      Importante

      Esse nome deve corresponder exatamente ao nome usado em Etapa 1: Criar o cluster do Amazon EKS; caso contrário, o operador de nós não poderá ingressar no cluster.

    • ClusterControlPlaneSecurityGroup: escolha o valor de SecurityGroups na saída do AWS CloudFormation que você gerou com Criar a VPC do cluster do Amazon EKS.

    • NodeGroupName: insira um nome para o grupo de nós. Esse nome pode ser usado posteriormente para identificar o grupo de nós do Auto Scaling que é criado para os nós de operador.

    • NodeAutoScalingGroupMinSize: digite o número mínimo de nós para o qual o grupo de Auto Scaling de nós de operador pode ser dimensionado.

    • NodeAutoScalingGroupDesiredCapacity: insira o número desejado de nós para o qual dimensionar quando a pilha for criada.

    • NodeAutoScalingGroupMaxSize: digite o número máximo de nós para o qual o grupo de Auto Scaling de nós de operador pode ser dimensionado.

    • NodeInstanceType: escolha um tipo de instância para os nós de operador.

      Importante

      Alguns tipos de instância podem não estar disponíveis em todas as regiões.

    • NodeImageId: insira o ID da AMI atual do nó de operador do Amazon EKS em sua região. Os IDs de AMI para a AMI otimizada para o Amazon EKS mais recente (com ou sem suporte para o GPU ) são exibidos na tabela a seguir.

      nota

      A AMI otimizada para o Amazon EKS com suporte à GPU só oferece suporte aos tipos de instância P2 e P3. Não se esqueça de especificar esses tipos de instância no modelo de AWS CloudFormation do nó do operador. Ao usar a AMI otimizada para o Amazon EKS com suporte à GPU, você concorda com o Contrato de licença do usuário final (EULA) da NVIDIA.

      Região AMI otimizada para o Amazon EKS com suporte da GPU
      Oeste dos EUA (Oregon) (us-west-2)
      Leste dos EUA (Norte da Virgínia) (us-east-1)
      Leste dos EUA (Ohio) (us-east-2)
      UE (Irlanda) (eu-west-1)

      nota

      A AMI do nó de operador do Amazon EKS é baseada no Amazon Linux 2. Você pode rastrear os eventos de segurança e de privacidade do Amazon Linux 2 no Centro de segurança do Amazon Linux ou inscrever-se no RSS feed associado. Os eventos de segurança e privacidade incluem uma visão geral do problema, quais pacotes são afetadas e como atualizar suas instâncias para corrigir o problema.

    • KeyName: insira o nome de um par de chaves SSH do Amazon EC2 que você pode usar para se conectar usando SSH em seus nós de operador depois de iniciados. Se você ainda não tem um par de chaves do Amazon EC2, é possível criar um no Console de gerenciamento da AWS. Para obter mais informações, consulte Pares deAmazon EC2 chaves do no Guia do usuário do Amazon EC2 para instâncias do Linux.

      nota

      Se você não fornecer um par de chaves aqui, ocorrerá uma falha na criação da pilha do AWS CloudFormation.

    • BootstrapArguments: especifique argumentos opcionais para passar para o script de bootstrap do nó de operador, como argumentos kubelet adicionais. Para obter mais informações, visualize as informações de uso do script de bootstrap em https://github.com/awslabs/amazon-eks-ami/blob/master/files/bootstrap.sh

    • VpcId: digite o ID da VPC que você criou em Criar a VPC do cluster do Amazon EKS.

    • Subnets (Sub-redes): escolha as sub-redes que você criou em Criar a VPC do cluster do Amazon EKS.

  8. Na página Options (Opções), você pode optar por marcar seus recursos de pilha. Escolha Next.

  9. Na página Review (Revisão), revise as informações, confirme se a pilha pode criar recursos do IAM e, em seguida, selecione Create (Criar).

  10. Quando a criação da pilha for concluída, selecione-a no console e escolha a guia Outputs (Saídas).

  11. Registre o valor de NodeInstanceRole para o grupo de nós criado. Você precisará dele ao configurar os nós de operador do Amazon EKS.

Para habilitar os nós de operador para ingressarem no cluster

  1. Faça download, edite e aplique o mapa de configuração do autenticador da AWS:

    1. Faça download do mapa de configuração com o seguinte comando:

      curl -o aws-auth-cm.yaml https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-02-11/aws-auth-cm.yaml
    2. Abra o arquivo com seu editor de texto favorito. Substitua o trecho do <ARN da função de instância (não do perfil de instância)> pelo valor de NodeInstanceRole que você registrou no procedimento anterior e salve o arquivo.

      Importante

      Não modifique outras linhas nesse arquivo.

      apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - rolearn: <ARN of instance role (not instance profile)> username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes
    3. Aplique a configuração. Esse comando pode levar alguns minutos para ser concluído.

      kubectl apply -f aws-auth-cm.yaml

      nota

      Se você receber o erro "aws-iam-authenticator": executable file not found in $PATH, o kubectl não está configurado para o Amazon EKS. Para obter mais informações, consulte Instalação do aws-iam-authenticator.

      Se você receber qualquer outro erro de autorização ou de tipo de recurso, consulte Não autorizado ou acesso negado (kubectl) na seção de solução de problemas.

  2. Observe o status de seus nós e aguarde até que eles atinjam o status Ready.

    kubectl get nodes --watch
  3. (Somente operadores de GPU) Se você escolheu um tipo de instância P3 ou P2 e a AMI otimizada para o Amazon EKScom suporte a GPU, você deve aplicar o plug-in de dispositivo NVIDIA para Kubernetes como um daemon definido no seu cluster com o comando a seguir.

    nota

    Se o cluster estiver executando uma versão do Kubernetes diferente da 1.12, substitua a versão do cluster no URL a seguir.

    kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v1.12/nvidia-device-plugin.yml

Etapa 4: Iniciar um aplicativo de livro de convidados

Nesta seção, você cria um aplicativo de livro de convidados de exemplo para testar o novo cluster.

nota

Para obter mais informações sobre como configurar o exemplo de livro de convidados, visite https://github.com/kubernetes/examples/blob/master/guestbook-go/README.md na documentação do Kubernetes.

Para criar o aplicativo de livro de convidados

  1. Crie o controlador de replicação mestre do Redis.

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/examples/master/guestbook-go/redis-master-controller.json

    nota

    Se você receber o erro "aws-iam-authenticator": executable file not found in $PATH, o kubectl não está configurado para o Amazon EKS. Para obter mais informações, consulte Instalação do aws-iam-authenticator.

    Se você receber qualquer outro erro de autorização ou de tipo de recurso, consulte Não autorizado ou acesso negado (kubectl) na seção de solução de problemas.

    Resultado:

    replicationcontroller "redis-master" created
  2. Crie o serviço mestre do Redis.

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/examples/master/guestbook-go/redis-master-service.json

    Resultado:

    service "redis-master" created
  3. Crie o controlador de replicação escravo do Redis.

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/examples/master/guestbook-go/redis-slave-controller.json

    Resultado:

    replicationcontroller "redis-slave" created
  4. Crie o serviço escravo do Redis.

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/examples/master/guestbook-go/redis-slave-service.json

    Resultado:

    service "redis-slave" created
  5. Crie o controlador de replicação do livro de convidados.

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/examples/master/guestbook-go/guestbook-controller.json

    Resultado:

    replicationcontroller "guestbook" created
  6. Crie o serviço de livro de convidados.

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/examples/master/guestbook-go/guestbook-service.json

    Resultado:

    service "guestbook" created
  7. Consulte os serviços no cluster e aguarde até que a coluna External IP (IP externo) do serviço guestbook seja preenchida.

    nota

    Pode levar vários minutos para que o endereço IP fique disponível.

    kubectl get services -o wide
  8. Quando o endereço IP externo estiver disponível, aponte um navegador da web para esse endereço na porta 3000 para visualizar seu livro de convidados. Por exemplo, http://a7a95c2b9e69711e7b1a3022fdcfdf2e-1985673473.us-west-2.elb.amazonaws.com:3000

    nota

    Pode levar alguns minutos para que o DNS propague e para que o livro de convidados seja mostrado.

    
                        Livro de convidados

    Importante

    Se você não puder se conectar ao endereço IP externo com seu navegador, verifique se o firewall corporativo não está bloqueando as portas que não são padrão, como a 3000. Você pode tentar alternar para uma rede convidada para verificar.

Etapa 5: Limpeza dos objetos do livro de convidados

Ao concluir o teste de seu aplicativo de livro de convidados, você deve limpar os recursos que criou para ele. O comando a seguir exclui todos os serviços e controladores de replicação do aplicativo de livro de convidados:

kubectl delete rc/redis-master rc/redis-slave rc/guestbook svc/redis-master svc/redis-slave svc/guestbook

nota

Se você receber o erro "aws-iam-authenticator": executable file not found in $PATH, o kubectl não está configurado para o Amazon EKS. Para obter mais informações, consulte Instalação do aws-iam-authenticator.

Se você receber qualquer outro erro de autorização ou de tipo de recurso, consulte Não autorizado ou acesso negado (kubectl) na seção de solução de problemas.

Se terminou de usar o cluster do Amazon EKS, você deve excluí-lo e seus recursos, para que não haja cobranças adicionais. Para obter mais informações, consulte Exclusão de um cluster.