View a markdown version of this page

Implemente um cluster local do Amazon EKS no AWS Outposts configurado com o armazenamento de instância do EC2 - Amazon EKS

Ajudar a melhorar esta página

Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.

Implemente um cluster local do Amazon EKS no AWS Outposts configurado com o armazenamento de instância do EC2

Este tópico fornece instruções para implantar um cluster local do Amazon EKS no AWS Outposts configurado com o armazenamento de instância do EC2.

nota

Se o outpost estiver configurado com o Amazon EBS em vez do armazenamento de instância do EC2, a arquitetura descrita neste tópico não estará disponível para ele. Os outposts configurados com o EBS continuarão a usar a implementação de clusters locais existente. Para obter mais informações, consulte Implantar um cluster do Amazon EKS em AWS Outposts.

Se você estiver interessado em criar um cluster local em um outpost baseado no EBS usando a arquitetura de clusters locais atualizada, entre em contato com a equipe da sua conta da AWS.

Importante

Pré-requisitos

nota

Quando você cria um cluster local, a entidade principal do IAM que cria o cluster é adicionada permanentemente à tabela de autorização de RBAC do Kubernetes como o administrador com as permissões de system:masters. Certifique-se de nunca excluir essa entidade principal.

Criar um cluster local

Você pode criar um cluster local usando o Console de gerenciamento da AWS, a AWS CLI, a API do Amazon EKS ou o AWS CloudFormation.

Ao criar o cluster, observe o seguinte:

AWS CLI

aws eks create-cluster \ --name my-cluster \ --role-arn arn:aws:iam::111122223333:role/myEKSClusterRole \ --kubernetes-version 1.36 \ --resources-vpc-config subnetIds=subnet-ExampleID1,endpointPrivateAccess=true,endpointPublicAccess=true \ --logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":true}]}' \ --access-config authenticationMode=API_AND_CONFIG_MAP,bootstrapClusterCreatorAdminPermissions=true \ --outpost-config outpostArns=arn:aws:outposts:region-code:111122223333:outpost/op-uniqueid,controlPlaneInstanceType=m5.large,controlPlanePlacement={spreadLevel=host},etcdInstanceType=m5.large,etcdPlacement={spreadLevel=host}

Console de gerenciamento da AWS

  1. Abra o console do Amazon EKS.

  2. Selecione Criar cluster.

  3. Em Local do ambiente de gerenciamento do Kubernetes, escolha AWS Outposts.

  4. Configure o seguinte:

    • Nome: um nome para o cluster.

    • Versão do Kubernetes: a versão a ser usada.

    • Perfil de serviço do cluster: o perfil do IAM com AmazonEKSClusterPolicy e AmazonEKSServicePolicy.

    • ID do outpost: o outpost lógico no qual implantar.

    • Tipo de instância do ambiente de gerenciamento: o tipo de instância do servidor de API, do agendador e do gerenciador de controladores do Kubernetes.

    • Tipo de instância do etcd: o tipo de instância do etcd.

    • Nível de distribuição: host ou rack para o ambiente de gerenciamento e posicionamento do etcd.

  5. Configure a rede: VPC, sub-redes e grupos de segurança. Habilite acesso privado ao endpoint.

  6. Configure a observabilidade: registro em log do ambiente de gerenciamento.

  7. Revise e crie.

CreateClusterAPI

{ "name": "my-cluster", "roleArn": "arn:aws:iam::111122223333:role/myEKSClusterRole", "version": "1.36", "resourcesVpcConfig": { "subnetIds": ["subnet-ExampleID1"], "endpointPublicAccess": true, "endpointPrivateAccess": true }, "logging": { "clusterLogging": [{ "types": ["api", "audit", "authenticator", "controllerManager", "scheduler"], "enabled": true }] }, "accessConfig": { "authenticationMode": "API_AND_CONFIG_MAP", "bootstrapClusterCreatorAdminPermissions": true }, "outpostConfig": { "outpostArns": ["arn:aws:outposts:region-code:111122223333:outpost/op-uniqueid"], "controlPlaneInstanceType": "m5.large", "controlPlanePlacement": { "spreadLevel": "host" }, "etcdInstanceType": "m5.large", "etcdPlacement": { "spreadLevel": "host" } } }

Os parâmetros controlPlaneInstanceType e etcdInstanceType são obrigatórios quando você cria um cluster local em outposts configurados com o armazenamento de instância do EC2. Os parâmetros controlPlanePlacement e etcdPlacement são opcionais. Se não forem especificados, nenhuma estratégia de distribuição de posicionamento será aplicada.

nota

outpostConfig é uma propriedade somente criação. Para alterar o tipo de instância do ambiente de gerenciamento, o tipo de instância do etcd, o posicionamento ou o outpost, crie um novo cluster.

Conectar ao cluster

Configure o kubectl para se comunicar com o cluster:

aws eks update-kubeconfig --region region-code --name my-cluster
nota

Se você criou o cluster usando versões da AWS CLI anteriores à 2.35.3, atualize a kubeconfig para especificar o --cluster-name (em vez do --cluster-id) nos argumentos exec

O endpoint do servidor de API do Kubernetes do cluster local é hospedado no Amazon Route 53. O endpoint é resolvido para os endereços IP privados das interfaces de rede elástica (ENIs) entre contas que o Amazon EKS cria nas sub-redes. Essas ENIs têm endereços IP privados fixos que não se alteram durante o ciclo de vida do cluster.

Quando você cria um cluster, o Amazon EKS cria três interfaces de rede elástica nas sub-redes especificadas. Essas interfaces permitem a comunicação entre seu cluster e sua VPC. Cada interface de rede criada pelo Amazon EKS tem o texto Amazon EKS cluster-name em sua descrição.

Implantar nós de processamento

Implante nós de processamento no cluster local usando grupos de nós autogerenciados.

  1. Implante o modelo de nó de processamento do AWS CloudFormation ou crie instâncias individuais do EC2 no outpost.

    curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2025-11-24/amazon-eks-outpost-nodegroup.yaml
  2. Conceda ao perfil de instância do nó acesso ao cluster. Crie uma entrada de acesso para o perfil do IAM do nó:

    aws eks create-access-entry \ --cluster-name my-cluster \ --principal-arn arn:aws:iam::111122223333:role/myNodeRole \ --type EC2_LINUX

    Como alternativa, se estiver usando o aws-auth ConfigMap para autenticação, adicione o perfil de instância do nó ao ConfigMap. Consulte Conceder aos usuários e perfis do IAM acesso às APIs do Kubernetes.

  3. Verifique se os nós estão no estado de Ready:

    kubectl get nodes

Recursos internos

Quando você cria um cluster local, o Amazon EKS instala automaticamente as versões autogerenciadas dos seguintes complementos no namespace do kube-system: coredns, kube-proxy e aws-node (CNI da VPC). Como opção, você pode instalar as versões gerenciadas desses complementos usando a API de complementos do Amazon EKS. Para obter mais informações, consulte Complementos do Amazon EKS para clusters locais no AWS Outposts configurado com o armazenamento de instância do EC2.

O Amazon EKS também cria interfaces de rede elástica (ENIs) entre contas em suas sub-redes para comunicação entre os clusters e a VPC. Não exclua essas interfaces de rede. Se uma ENI entre contas for excluída ou se seu endereço IP mudar, todos os nós e todos os administradores que usam acesso estático baseado em IP deverão ser atualizados manualmente.