Criar um cluster do Amazon EKS - Amazon EKS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criar um cluster do Amazon EKS

Este tópico descreve como criar um cluster do Amazon EKS. Se esta for a primeira vez em que você cria um cluster do Amazon EKS, é recomendável seguir um dos nossosConceitos básicos da Amazon EKSGuias ao invés. Elas fornecem instruções completas para criar um cluster do Amazon EKS com nós.

Importante

Quando um cluster do Amazon EKS é criado, a entidade do IAM (usuário ou função) do que cria o cluster é adicionada à tabela de autorização de RBAC do Kubernetes como o administrador (comsystem:mastersPermissões Inicialmente, somente o usuário do IAM pode fazer chamadas para o servidor da API do Kubernetes usandokubectl. Para obter mais informações, consulte Gerenciar usuários ou funções do IAM para o cluster. Se você usar o console para criar o cluster, deverá garantir que as mesmas credenciais de usuário do IAM estejam naAWSCadeia de credenciais do SDK quando você estiver executandokubectlem seu cluster.

É possível criar um cluster com oeksctl, oAWS Management Console, ou oAWS CLI.

eksctl

Prerequisite

eksctlVersão 0.54.0 ou posterior instalada. Para instalá-lo ou atualizar o, consulteO utilitário de linha de comando eksctl.

Crie um cluster com a versão mais recente do Kubernetes do Amazon EKS na sua Região padrão. Substituir o<example-values>(Incluir<>) com seus próprios valores. É possível substituir<1.20>com qualquerVersão compatível.

eksctl create cluster \ --name <my-cluster> \ --version <1.20> \ --with-oidc \ --without-nodegroup
dica

Para ver a maioria das opções que podem ser especificadas ao criar um cluster com eksctl, use o comando eksctl create cluster --help. Para ver todas as opções, você pode usar um arquivo de configuração. Para obter mais informações, consulte Uso dos arquivos de configuração e o esquema de arquivo de configuração na documentação do eksctl. Você pode encontrar exemplos de arquivos de configuração no GitHub.

Importante

Se você planeja implantar nós autogerenciados noAWS Outposts,AWS Wavelength, ouAWSLocal Zones após a implantação do cluster, você deve ter uma VPC existente que atenda aos requisitos do Amazon EKS e usar o--vpc-private-subnetscom o comando anterior. Os IDs de sub-rede especificados não podem ser osAWS Outposts,AWS Wavelength, ouAWSSub-redes locais. Para obter mais informações sobre como usar uma VPC existente, consulteUsar VPC existente: outra configuração personalizadanoeksctldocumentação.

Atenção

Se você criar um cluster usando um arquivo de configuração com a opção secretsEncryption, que requer uma chave existente do AWS Key Management Service, e se algum dia a chave usada for excluída, não haverá caminho para a recuperação do cluster. Se você habilitar a criptografia de envelope, os segredos do Kubernetes serão criptografados usando a chave mestra do cliente (CMK) selecionada. A CMK deve ser simétrica, criada na mesma região que o cluster e, se a CMK tiver sido criada em uma conta diferente, o usuário deverá ter acesso à CMK. Para obter mais informações, consulte Permitir que usuários de outras contas usem uma CMK no Guia do desenvolvedor do AWS Key Management Service. A criptografia de segredos do Kubernetes com uma CMK do AWS KMS requer o Kubernetes versão 1.13 ou posterior.

Por padrão, o comando create-key cria uma chave simétrica com uma política de chave que dá acesso ao administrador do usuário raiz da conta a ações e recursos do AWS KMS. Para obter mais informações, consulte Criação de chaves. Se você quiser reduzir o escopo das permissões, certifique-se de que as ações kms:DescribeKey e kms:CreateGrant são permitidas na política de chave para o principal que chamará a API create-cluster. O Amazon EKS não oferece suporte à condição de política de chavekms:GrantIsForAWSResource. A criação de um cluster não funcionará se essa ação estiver na declaração da política de chave.

O provisionamento de cluster leva alguns minutos. Durante a criação do cluster, você verá várias linhas de saída. A última linha de saída é semelhante ao exemplo de linha a seguir.

[✓] EKS cluster "<my-cluster>" in "<region-code>" region is ready

Depois que o cluster 1.18 ou posterior for criado, você poderá migrar o CNI da Amazon VPC, CoreDNS ekube-proxycomplementos que foram implantados com seu cluster para complementos do Amazon EKS. Para obter mais informações, consulte Suplementos do Amazon.

AWS Management Console

Prerequisites

Para criar seu cluster com o console

  1. Abra o console do Amazon EKS emhttps://console.aws.amazon.com/eks/home#/clusters.

  2. Selecione Create cluster (Criar cluster).

  3. Na página Configure cluster (Configurar cluster), preencha os seguintes campos:

    • Name (Nome)— Um nome exclusivo para o cluster.

    • Versão do Kubernetes— A versão do Kubernetes a ser usada para o cluster.

    • Função de serviço do cluster— Escolha a função de cluster do Amazon EKS para permitir que o plano de controle do Kubernetes gerencieAWSRecursos da em seu nome. Para obter mais informações, consulte Função do cluster do Amazon EKS.

    • Criptografia de segredos— (Opcional) Escolha habilitar a criptografia de envelope dos segredos do Kubernetes usando oAWS Key Management Service(AWS KMS). A CMK deve ser simétrica, criada na mesma região que o cluster, se a CMK foi criada em uma conta diferente, o usuário deverá ter acesso à CMK. Para obter mais informações, consulte Permitir que usuários de outras contas usem uma CMK no Guia do desenvolvedor do AWS Key Management Service.

      A criptografia de segredos do Kubernetes com uma CMK do AWS KMS requer o Kubernetes versão 1.13 ou posterior. Se nenhuma chave estiver listada, primeiro você deve criar uma. Para obter mais informações, consulte Criação de chaves.

      nota

      Por padrão, o comando create-key cria uma chave simétrica com uma política de chave que dá acesso ao administrador do usuário raiz da conta a ações e recursos do AWS KMS. Se você quiser reduzir o escopo das permissões, certifique-se de que as ações kms:DescribeKey e kms:CreateGrant são permitidas na política de chave para o principal que chamará a API create-cluster.

      O Amazon EKS não oferece suporte à condição de política de chavekms:GrantIsForAWSResource. A criação de um cluster não funcionará se essa ação estiver na declaração da política de chave.

      Atenção

      A exclusão da CMK colocará o cluster em um estado degradado permanentemente. Se alguma CMK usada para a criação de cluster estiver programada para exclusão, verifique se esta é a ação pretendida antes da exclusão. Uma vez que a chave é excluída, não há caminho para recuperação do cluster.

    • Tags— (Opcional) Adicione todas as tags ao cluster. Para obter mais informações, consulte Marcando seus recursos do Amazon EKS.

  4. Selecione Next (Próximo).

  5. Na página Specify networking (Especificar rede), selecione valores para os seguintes campos:

    • VPCSelecione uma VPC existente para usar no cluster. Se nenhum estiver listado, você precisará criar um primeiro. Para obter mais informações, consulte Como criar uma VPC para o cluster do Amazon EKS.

    • Sub-redes— Por padrão, as sub-redes disponíveis na VPC especificada no campo anterior são pré-selecionadas. Desmarque uma sub-rede na qual você não deseje hospedar recursos de cluster, como nós de operador ou load balancers. As sub-redes devem atender aos requisitos de um cluster do Amazon EKS. Para obter mais informações, consulte Considerações sobre a VPC do cluster.

      Importante
      • Se você selecionar sub-redes que foram criadas antes de 26 de março de 2020 usando uma dasAWS CloudFormationModelos de VPC, esteja ciente de uma alteração de configuração padrão que foi apresentada em 26 de março de 2020. Para obter mais informações, consulte Como criar uma VPC para o cluster do Amazon EKS.

      • Não selecione sub-redes noAWS Outposts,AWS WavelengthouAWSLocal Zones. Se você planeja implantar nós autogerenciados noAWS Outposts,AWS WavelengthouAWSAs sub-redes de Local Zones depois de implantar seu cluster e, em seguida, certifique-se de que você tenha, ou pode criar, sub-redes de Outposts avançadas na VPC selecionada.

      Grupos de segurança— OSecurityGroupsa partir do valorAWS CloudFormationque você gerou quando criou seuVPC. Esse grupo de segurança tem ControlPlaneSecurityGroup no nome da lista suspensa.

      Importante

      O nóAWS CloudFormationmodifica o grupo de segurança que você especificar aqui, entãoO 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.

    • (Opcional) EscolhaConfigurar Intervalo de endereços IP do Kubernetes Servicee especifique umaIntervalo IPv4 do serviçose quiser especificar de qual bloco CIDR o Kubernetes atribui endereços IP de serviço. O bloco CIDR deve atender aos seguintes requisitos:

      • Dentro de uma das seguintes faixas: 10.0.0.0/8, 172.16.0.0/12 ou 192.168.0.0/16.

      • Entre /24 e /12.

      • Não sobreponha a nenhum bloco CIDR especificado na VPC.

      Recomendamos especificar um bloco do CIDR que não se sobreponha a outras redes emparelhadas ou conectadas à sua VPC. Se você não habilitar esse, o Kubernetes atribuirá endereços IP de serviço dos blocos CIDR 10.100.0/16 ou 172.20.0.0/16.

      Importante

      Só é possível especificar um bloco CIDR personalizado quando ao criar um cluster e não esse valor não pode ser alterado após a criação do cluster.

    • para oAcesso ao endpoint do cluster— Escolha uma das seguintes opções:

      • Public— permite apenas o acesso público ao endpoint do cluster de servidor da API do Kubernetes. As solicitações de API do Kubernetes originadas de fora da VPC do cluster usarão o endpoint público. Por padrão, o acesso é permitido a partir de qualquer endereço IP de origem. Opcionalmente, é possível restringir o acesso a um ou mais intervalos de CIDR, como 192.168.0.0/16, por exemplo, selecionando Advanced settings (Configurações avançadas) e Add source (Adicionar origem).

      • Private— permite apenas o acesso privado ao endpoint do cluster de servidor da API do Kubernetes. As solicitações de API do Kubernetes originadas de dentro da VPC do cluster usarão o VPC endpoint privado.

        Importante

        Se você criou uma VPC sem acesso de saída à Internet, deverá habilitar o acesso privado.

      • Público e privado— Permite acesso público e privado.

      Para obter mais informações sobre as opções anteriores, consulte Modificar o acesso ao endpoint do cluster.

  6. Se você selecionou Kubernetes versão 1.17 ou anterior na página anterior, vá para a próxima etapa. Se você selecionou a versão 1.18 ou posterior, você pode aceitar os padrões naComplementos de redepara instalar a versão padrão doAWSVPC CNI,CoreDNS, ekube-proxyComplementos do Amazon EKS, ou você pode selecionar uma versão diferente. Se você não precisar da funcionalidade de nenhum dos complementos, poderá removê-los assim que o cluster for criado.

    Você só pode usar complementos do Amazon EKS com clusters 1.18 ou posteriores, pois os complementos do Amazon EKS exigem o recurso Apply Kubernetes do lado do servidor, que não estava disponível até o Kubernetes 1.18. Se você selecionou uma versão diferente do Kubernetes para o cluster, essa opção não será exibida.

    Importante

    OAWSO complemento CNI da VPC é configurado para usar as permissões do IAM atribuídas aoFunção do IAM do nó do Amazon. Depois que o cluster for criado, mas antes de implantar qualquer nó do Amazon EC2 no cluster, você deve garantir que oAmazonEKS_CNI_PolicyA política do IAM é anexada à função do nó do IAM ou a uma função diferente associada à conta de serviço do Kubernetes que o complemento é executado como. Recomendamos que você atribua a política a uma função do IAM diferente da função do nó IAM preenchendo as instruções emComo configurar o plug-in CNI da Amazon VPC para usar funções do IAM para contas de serviço. Depois que o cluster e a função do IAM forem criados, você poderáatualizar o complementoPara usar a função do IAM criada.

  7. Selecione Next (Próximo).

  8. Na página Configure logging (Configurar registro em log), também é possível escolher quais tipos de log você deseja habilitar. Por padrão, cada tipo de log está Disabled (Desabilitado). Para obter mais informações, consulte Registro em log do plano de controle do.

  9. Selecione Next (Próximo).

  10. Na página Review and create (Revisar e criar), revise as informações que você inseriu ou selecionou nas páginas anteriores. Selecione Edit (Editar) se precisar fazer alterações em uma das suas seleções. Quando estiver satisfeito com suas configurações, selecione Create (Criar). O campo Status mostra CREATING (CRIANDO) até que o processo de provisionamento do cluster esteja concluído.

    nota

    Você pode receber 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 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).

    O provisionamento de cluster leva alguns minutos.

  11. Siga os procedimentos emCriar um kubeconfig para o Amazon EKSpara habilitar a comunicação com seu novo cluster.

  12. (Opcional) Para usar alguns complementos do Amazon EKS ou para permitir que cargas de trabalho individuais do Kubernetes tenham permissões específicas do IAM, você precisa habilitar um provedor OpenID Connect (OIDC) para seu cluster. Para configurar um provedor OIDC do para o cluster, consulteCrie um provedor IAM OIDC para o seu cluster. Você só precisa habilitar um provedor OIDC para seu cluster uma vez. Para saber mais sobre os complementos do Amazon EKS, consulteSuplementos do Amazon. Para saber mais sobre a atribuição de permissões específicas do IAM a cargas de trabalho, consulteVisão geral técnica.

  13. Se você estiver indo para implantar nós do Amazon EC2 em seu cluster, então você deve anexar oAmazonEKS_CNI_PolicyPolítica gerenciada do IAM para sua função do IAM de cluster ou para uma função do IAM criada especificamente para o complemento CNI da Amazon VPC. Para obter mais informações sobre a criação da função e a configuração do complemento para usá-lo, consulteComo configurar o plug-in CNI da Amazon VPC para usar funções do IAM para contas de serviço.

AWS CLI

Prerequisites

Para criar o cluster com a AWS CLI

  1. Crie o cluster usando o comando a seguir. Substitua o Nome de recurso da Amazon (ARN) da função do IAM do cluster do Amazon EKS que você criou noFunção do cluster do Amazon EKSE os IDs da sub-rede e do grupo de segurança para a VPC que você criou emComo criar uma VPC para o cluster do Amazon EKS. Substituir<my-cluster>(Incluir<>) com o nome do cluster e<region-code>com umRegião compatível. É possível substituir<1.20>com qualquerVersão compatível.

    para osubnetIds, não especifique sub-redes noAWS Outposts,AWS WavelengthouAWSLocal Zones. Se você planeja implantar nós autogerenciados noAWS Outposts,AWS WavelengthouAWSSub-redes de Local Zones depois de implantar seu cluster e, em seguida, certifique-se de que você tenha, ou pode criar, sub-redes de Outposts avançadas na VPC especificada.

    aws eks create-cluster \ --region <region-code> \ --name <my-cluster> \ --kubernetes-version <1.20> \ --role-arn <arn:aws:iam::111122223333:role/eks-service-role-AWSServiceRoleForAmazonEKS-EXAMPLEBKZRQR> \ --resources-vpc-config subnetIds=<subnet-a9189fe2>,<subnet-50432629>,securityGroupIds=<sg-f5c54184>
    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 Exemplos de políticas do Amazon EKS com base.

    Resultado:

    { "cluster": { "name": "<my-cluster>", "arn": "arn:aws:eks:<region-code>:<111122223333>:cluster/<my-cluster>", "createdAt": <1527785885.159>, "version": "<1.20>", "roleArn": "arn:aws:iam::<111122223333>:role/eks-service-role-AWSServiceRoleForAmazonEKS-<AFNL4H8HB71F>", "resourcesVpcConfig": { "subnetIds": [ "<subnet-a9189fe2>", "<subnet-50432629>" ], "securityGroupIds": [ "<sg-f5c54184>" ], "vpcId": "<vpc-a54041dc>", "endpointPublicAccess": true, "endpointPrivateAccess": false }, "status": "CREATING", "certificateAuthority": {} } }
    nota

    Você pode receber 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 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).

    Para criptografar os segredos do Kubernetes com uma chave mestra do cliente (CMK) do AWS Key Management Service (AWS KMS), primeiro crie uma CMK usando a operação create-key.

    MY_KEY_ARN=$(aws kms create-key --query KeyMetadata.Arn —-output text)
    nota

    Por padrão, o comando create-key cria uma chave simétrica com uma política de chave que dá acesso ao administrador do usuário raiz da conta a ações e recursos do AWS KMS. Se você quiser reduzir o escopo das permissões, certifique-se de que as ações kms:DescribeKey e kms:CreateGrant são permitidas na política de chave para o principal que chamará a API create-cluster.

    O Amazon EKS não oferece suporte à condição de política de chavekms:GrantIsForAWSResource. A criação de um cluster não funcionará se essa ação estiver na declaração da política de chave.

    Adicione o parâmetro --encryption-config ao comando aws eks create-cluster. A criptografia de segredos do Kubernetes só pode ser habilitada quando o cluster é criado.

    --encryption-config '[{"resources":["secrets"],"provider":{"keyArn":"<$MY_KEY_ARN>"}}]'

    O membro keyArn pode conter o alias ou o ARN da CMK. A CMK deve ser simétrica, criada na mesma região que o cluster e, se a CMK tiver sido criada em uma conta diferente, o usuário deverá ter acesso à CMK. Para obter mais informações, consulte Permitir que usuários de outras contas usem uma CMK no Guia do desenvolvedor do AWS Key Management Service. A criptografia de segredos do Kubernetes com uma CMK do AWS KMS requer o Kubernetes versão 1.13 ou posterior.

    Atenção

    A exclusão da CMK colocará o cluster em um estado degradado permanentemente. Se alguma CMK usada para a criação de cluster estiver programada para exclusão, verifique se esta é a ação pretendida antes da exclusão. Uma vez que a chave é excluída, não há caminho para recuperação do cluster.

  2. O provisionamento de cluster leva alguns 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 describe-cluster \ --region <region-code> \ --name <my-cluster> \ --query "cluster.status"
  3. Quando o provisionamento do cluster for concluído, recupere os valores de endpoint e certificateAuthority.data com os seguintes comandos. É necessário adicionar esses valores à configuração do kubectl para que você possa se comunicar com o cluster.

    1. Recupere o endpoint.

      aws eks --region <region-code> describe-cluster --name <my-cluster> --query "cluster.endpoint" --output text
    2. Recupere o certificateAuthority.data.

      aws eks --region <region-code> describe-cluster --name <my-cluster> --query "cluster.certificateAuthority.data" --output text
  4. Siga os procedimentos emCriar um kubeconfig para o Amazon EKSpara habilitar a comunicação com seu novo cluster.

  5. (Opcional) Para usar complementos do Amazon EKS ou para permitir que cargas de trabalho individuais do Kubernetes tenham permissões específicas do IAM, você precisa habilitar um provedor OpenID Connect (OIDC) para seu cluster. Para configurar um provedor OIDC do para o cluster, consulteCrie um provedor IAM OIDC para o seu cluster. Você só precisa habilitar um provedor OIDC para seu cluster uma vez. Para saber mais sobre os complementos do Amazon EKS, consulteSuplementos do Amazon. Para saber mais sobre a atribuição de permissões específicas do IAM a cargas de trabalho, consulteVisão geral técnica.

  6. Se você estiver indo para implantar nós do Amazon EC2 em seu cluster, então você deve anexar oAmazonEKS_CNI_PolicyPolítica gerenciada do IAM para sua função do IAM de cluster ou para uma função do IAM criada especificamente para o complemento CNI da Amazon VPC. Para obter mais informações sobre a criação da função e a configuração do complemento para usá-lo, consulteComo configurar o plug-in CNI da Amazon VPC para usar funções do IAM para contas de serviço.

  7. (Opcional) Se você criou um cluster 1.18 ou posterior, poderá migrar o CNI da Amazon VPC, CoreDNS ekube-proxycomplementos que foram implantados com seu cluster para complementos do Amazon EKS. Para obter mais informações, consulte Suplementos do Amazon.