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
-
Os clusters locais somente são compatíveis com racks do Outpost. Um único cluster local pode ser executado em vários racks físicos do Outpost que incluem um único Outpost lógico. Um único cluster local não pode ser executado em vários Outposts lógicos.
-
O ambiente de gerenciamento do Kubernetes é executado em uma conta de serviço gerenciada pela AWS no outpost. Não é possível acessar as instâncias do ambiente de gerenciamento, visualizá-las no console do Amazon EC2 nem executar workloads nessas instâncias.
-
O ambiente de gerenciamento é executado em seis instâncias do EC2 (três
etcd+ três servidores de API) em uma topologia de etcd externa. Para ver os requisitos de capacidade, consulte Selecione os tipos de instância e o posicionamento dos clusters locais do Amazon EKS no AWS Outposts configurado com o armazenamento de instância do EC2. -
O plug-in de CNI da Amazon VPC para Kubernetes, o kube-proxy e o CoreDNS são instalados automaticamente nos clusters locais. Para obter a lista completa de complementos validados, consulte Complementos do Amazon EKS para clusters locais no AWS Outposts configurado com o armazenamento de instância do EC2.
-
O Amazon EKS faz backups periódicos do
etcd. Se oetcdperder quórum, o Amazon EKS recuperará o estado do cluster a partir do snapshot mais recente.
Pré-requisitos
-
Um rack do outpost existente, configurado com armazenamento de instância do EC2, com capacidade virtualizada suficiente para as instâncias do ambiente de gerenciamento. Consulte Selecione os tipos de instância e o posicionamento dos clusters locais do Amazon EKS no AWS Outposts configurado com o armazenamento de instância do EC2.
-
Uma VPC e as sub-redes que atendam aos requisitos descritos em Criar uma VPC e sub-redes para clusters locais do Amazon EKS no AWS Outposts configurado com armazenamento de instância do EC2.
-
A ferramenta da linha de comando
kubectlestá instalada no seu computador ou no AWS CloudShell. A versão pode ser a mesma ou até uma versão secundária anterior ou posterior à versão do Kubernetes do cluster. Para instalar ou atualizar okubectl, consulte Configurar o kubectl e o eksctl. -
A AWS CLI versão
2.35.3instalada e configurada em seu dispositivo ou no AWS CloudShell. Para verificar sua versão atual, useaws --version. Para instalar ou atualizar, consulte Instalar a AWS CLI. -
Uma entidade principal do IAM (usuário ou perfil) com permissões para criar e descrever um cluster do Amazon EKS. Para obter mais informações, consulte Criar um cluster local do Kubernetes em um Outpost e Listar ou descrever todos os clusters.
-
Um perfil do IAM para o cluster com as seguintes políticas gerenciadas pela AWS anexadas: AmazonEKSClusterPolicy e AmazonEKSServicePolicy. A política de confiança do perfil que permite que a entidade principal do serviço
eks.amazonaws.comassuma o perfil.
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:
-
Você deve informar as sub-redes da zona de disponibilidade na qual o outpost está hospedado. A solicitação falhará se você informar sub-redes de várias zonas de disponibilidade.
-
Defina
endpointPrivateAccesscomotrue. Opcionalmente, é possível habilitar umendpointPublicAccess. -
Você deve informar os valores de
outpostConfig, incluindooutpostArns,controlPlaneInstanceTypeeetcdInstanceType. Opcionalmente, você pode especificar a configuração de posicionamento. Consulte Selecione os tipos de instância e o posicionamento dos clusters locais do Amazon EKS no AWS Outposts configurado com o armazenamento de instância do EC2.
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
-
Abra o console do Amazon EKS
. -
Selecione Criar cluster.
-
Em Local do ambiente de gerenciamento do Kubernetes, escolha AWS Outposts.
-
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:
hostourackpara o ambiente de gerenciamento e posicionamento doetcd.
-
-
Configure a rede: VPC, sub-redes e grupos de segurança. Habilite acesso privado ao endpoint.
-
Configure a observabilidade: registro em log do ambiente de gerenciamento.
-
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 em sua descrição.cluster-name
Implantar nós de processamento
Implante nós de processamento no cluster local usando grupos de nós autogerenciados.
-
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 -
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_LINUXComo alternativa, se estiver usando o
aws-authConfigMap 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. -
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.