Como posso fazer os meus nós de processamento ingressarem no meu cluster do Amazon EKS?
Meus nós de processamento não ingressam no meu cluster do Amazon Elastic Kubernetes Service (Amazon EKS). Quero solucionar esse problema.
Resolução
Para fazer com que seus nós de processamento ingressem no seu cluster do Amazon EKS, conclua as etapas a seguir.
**Importante:**As etapas a seguir não incluem configurações necessárias para registrar nós de processamento em ambientes nos quais os seguintes critérios não são atendidos:
- Na nuvem privada virtual (VPC) do seu cluster, o parâmetro de configuração domain-name-servers está definido como AmazonProvidedDNS. Para obter mais informações, consulte os conjuntos de opções de DHCP no Amazon Virtual Private Cloud (Amazon VPC).
- Você está usando uma imagem de máquina da Amazon (AMI) Linux otimizada para o Amazon EKS para iniciar seus nós de processamento. A imagem AMI Linux otimizada para Amazon EKS fornece todas as configurações necessárias, incluindo um script de bootstrap /etc/eks/bootstrap.sh, para registrar nós de processamento no seu cluster.
Usar o runbook de automação do Systems Manager para identificar problemas comuns
Use o runbook AWSSupport-TroubleshootEKSWorkerNode para localizar problemas comuns que impedem que os nós de processamento ingressem no seu cluster.
Importante: para garantir que a automação funcione corretamente, o AWS Systems Manager deve estar em execução e seus nós de processamento devem ter permissão para acessar o Systems Manager. Para conceder permissão de acesso ao AWS Systems Manager, anexe a política AmazonSSMManagedInstanceCore ao perfil do AWS Identity and Access Management (IAM). Esse pefil do IAM corresponde ao seu perfil de instância do Amazon Elastic Compute Cloud (Amazon EC2). Essa é a configuração padrão para grupos de nós gerenciados pelo Amazon EKS que você cria por meio de eksctl.
Use o seguinte formato para o nome do seu cluster: [-a-zA-Z0-9]{1,100}$.
Conclua as etapas a seguir:
- Abra o runbook.
- Verifique se a região da AWS no Console de Gerenciamento da AWS está definida como a mesma região do seu cluster.
Observação: consulte a seção Document details (Detalhes do documento) do runbook para mais informações sobre o runbook. - Na seção Input parameters (Parâmetros de entrada), especifique o nome do seu cluster no campo ClusterName e o ID da instância do Amazon EC2 no campo WorkerID.
- (Opcional) No campo AutomationAssumeRole, especifique o perfil do IAM para permitir que o Systems Manager realize ações. Se você não o especificar, as permissões do IAM da sua entidade atual do IAM serão usadas para realizar as ações no runbook.
- Selecione Executar.
- Consulte a seção Saídas para ver porque seu nó de processamento não está ingressando no cluster e conhecer as etapas que você pode seguir para resolver isso.
Confirmar se você tem suporte de DNS para sua Amazon VPC
Confirme se a Amazon VPC do seu cluster do EKS tem as opções DNS hostnames (Nomes de hosts DNS) e DNS resolution (Resolução de DNS) ativadas.
Para verificar esses atributos e ativá-los, conclua as seguintes etapas:
- Abra o console da Amazon VPC.
- No painel de navegação, escolha Your VPCs (Suas VPCs).
- Selecione a VPC que você deseja editar.
- Na guia Details (Detalhes), verifique se as opções Nomes de hosts DNS e Resolução de DNS estão ativadas.
- Se não estiverem ativadas, selecione Enable (Habilitar) para ambos os atributos.
- Escolha Save changes (Salvar alterações).
Para mais informações, consulte Exibir e atualizar atributos DNS para sua VPC.
Confirmar se os nós de processamento do seu perfil de instância têm as permissões corretas
Anexe as seguintes políticas gerenciadas pela AWS ao perfil associado aos nós de processamento do seu perfil de instância:
- AmazonEKSWorkerNodePolicy
- AmazonEKS_CNI_Policy
- AmazonEC2ContainerRegistryReadOnly
Para anexar políticas a perfis, consulte Adding IAM identity permissions (console) (Adicionar permissões de identidade do IAM (console)).
Configurar os dados do usuário para seus nós de processamento
Observação: se você usar o AWS CloudFormation para iniciar seus nós de processamento, não precisará configurar os dados do usuário para esses nós. Em vez disso, siga as instruções para iniciar nós autogerenciados do Amazon Linux no Console de Gerenciamento da AWS.
Se você iniciar seus nós de processamento usando grupos de nós gerenciados, não precisará configurar dados de usuários com as AMIs do Amazon Linux otimizadas para o Amazon EKS. Você deverá configurar os dados do usuário somente se usar AMIs personalizadas para iniciar seus nós de processamento por meio de grupos de nós gerenciados.
Se estiver usando grupos de nós gerenciados pela Amazon com o modelo de lançamento personalizado, especifique os dados corretos do usuário nesse modelo de lançamento. Se o cluster do Amazon EKS for um cluster totalmente privado que usa endpoints de VPC para fazer conexões, especifique o seguinte nos dados do usuário:
- certificate-authority
- api-server-endpoint
- Endereço IP do cluster DNS
Se necessário, forneça dados do usuário para transmitir argumentos ao arquivo bootstrap.sh incluído com uma AMI Linux/Bottlerocket otimizada para o Amazon EKS.
Para configurar dados de usuários para seus nós de processamento, especifique esses dados ao iniciar suas instâncias do Amazon EC2.
Por exemplo, se você usa uma ferramenta de terceiros, como o Terraform, atualize o campo User data (Dados do usuário) para iniciar seus nós de processamento do EKS:
#!/bin/bash set -o xtrace /etc/eks/bootstrap.sh ${ClusterName} ${BootstrapArguments}
Importante:
- substitua ${ClusterName} pelo nome do seu cluster do EKS.
- Substitua ${BootstrapArguments} por valores adicionais de bootstrap ou deixe essa propriedade em branco.
Verificar se a rede está configurada corretamente para as suas sub-redes da Amazon VPC
- Se você usa um gateway de internet, certifique-se de que ele esteja conectado à tabela de rotas corretamente sem redirecionar para uma rota nula.
- Se você usa um gateway NAT, certifique-se de que ele esteja configurado corretamente em uma sub-rede pública. Além disso, verifique se a tabela de rotas não contém uma rota nula.
- Se você usa endpoints privados de VPC para um cluster totalmente privado, certifique-se de ter os seguintes endpoints:
com.amazonaws.region.ec2 (endpoint de interface)
com.amazonaws.region.ecr.api (endpoint de interface)
com.amazonaws.region.ecr.dkr (endpoint de interface)
com.amazonaws.region.s3 (endpoint de gateway)
com.amazonaws.region.sts (endpoint de interface) - Os pods que você configura com perfis do IAM para contas de serviço adquirem credenciais de uma chamada de API do AWS Security Token Service (AWS STS). Se não houver acesso externo à Internet, você deverá criar e usar um endpoint de VPC do AWS STS na sua VPC.
- O grupo de segurança do endpoint de VPC deve ter uma regra de entrada que permita o tráfego da porta 443. Para obter mais informações, consulte Controle o tráfego para seus recursos da AWS usando grupos de segurança.
- Certifique-se de que a política anexada ao endpoint da VPC tenha as permissões necessárias.
Observação: se você estiver usando qualquer outro serviço da AWS, deverá criar esses endpoints. Para analisar alguns serviços e endpoints comumente usados, consulte Implantar clusters privados com acesso limitado à Internet. Além disso, você pode criar um serviço de endpoint com base no seu caso de uso.
Verifique se os seus nós de processamento e o seu cluster do EKS estão na mesma VPC da Amazon
Conclua as etapas a seguir:
- Abra o console do Amazon EKS.
- Escolha Clusters e depois selecione seu cluster.
- Na seção Redes, identifique as sub-redes associadas ao seu cluster.
Observação: você pode configurar diferentes sub-redes nas quais iniciar seus nós de processamento. Essas sub-redes devem existir na mesma Amazon VPC e estar devidamente marcadas. O Amazon EKS gerencia etiquetas automaticamente somente para sub-redes que você configura durante a criação do cluster. Portanto, certifique-se de marcar as sub-redes adequadamente.
Para mais informações, consulte Subnet requirements and considerations (Requisitos e considerações de sub-redes).
Atualizar o ConfigMap aws-auth com o NodeInstanceRole dos seus nós de processamento
Verifique se o ConfigMap aws-auth está configurado corretamente com a função do IAM do seu nó de processamento e não com o perfil da instância.
Para verificar o arquivo ConfigMap aws-auth, execute o seguinte comando:
kubectl describe configmap -n kube-system aws-auth
Se o ConfigMap aws-auth não estiver configurado corretamente, você verá o seguinte erro:
571 reflector.go:153] k8s.io/kubernetes/pkg/kubelet/kubelet.go:458 : Failed to list *v1.Node: Unauthorized
Atenda aos requisitos de grupo de segurança de seus nós de processamento
Confirme se o grupo de segurança e o grupo de segurança de nós de processamento do seu ambiente de gerenciamento estão definidos com configurações que são as práticas recomendadas para tráfego de entrada e saída. Além disso, confirme se as suas regras personalizadas de ACL de rede estão configuradas para permitir tráfego de e para 0.0.0.0/0 para as portas 80, 443 e 1025-65535.
Definir as etiquetas para seus nós de processamento
Para a propriedade Tag dos seus nós de processamento, defina Key como kubernetes.io/cluster/clusterName e Value como owned.
Para mais informações, consulte VPC requirements and considerations (Requisitos e considerações de VPCs).
Confirme se os seus nós de processamento podem acessar o endpoint do servidor de APIs do seu cluster do EKS
Verifique se você pode iniciar nó de processamento em uma sub-rede associada a uma tabela de rotas. A tabela de rotas deve rotear para o endpoint da API por meio de um gateway de NAT ou Internet.
Se você iniciar seus nós de processamento em uma rede privada restrita, confirme se esses nós podem acessar o endpoint do servidor de APIs do EKS.
Se você iniciar nós de processamento com uma Amazon VPC que usa um DNS personalizado em vez de um AmazonProvidedDNS, talvez eles não resolvam o endpoint. Um endpoint não resolvido acontece quando o acesso público ao endpoint é desativado e somente o acesso privado é ativado. Para mais informações, consulte Turning on DNS resolution for Amazon EKS cluster endpoints (Ativar a resolução de DNS para endpoints de cluster do Amazon EKS).
Confirmar se o perfil de cluster está configurado corretamente para o seu cluster
Seu cluster deve ter o perfil de cluster com a permissão mínima AmazonEKSClusterPolicy. Além disso, a relação de confiança do seu cluster deve permitir o serviço eks.amazonaws.com para sts:AssumeRole, conforme mostra o exemplo a seguir:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Para mais informações, consulte perfil do IAM do cluster do Amazon EKS.
Confirmar se os endpoints regionais do STS estão ativados
Se o cluster estiver em uma região com suporte para endpoints do STS, ative o endpoint regional do STS para autenticar o kubelet. O kubelet pode então criar o objeto de nó.
Verifique se a AMI está configurada para funcionar com o EKS e inclui os componentes necessários
Se a AMI usada para nós de processamento não for a AMI do Amazon Linux otimizada para o Amazon EKS, confirme se os seguintes componentes do Kubernetes estão em estado ativo:
- kubelet
- AWS IAM Authenticator
- Docker (Amazon EKS versão 1.23 e anteriores)
- containerd
Conectar-se à sua instância de nó de processamento do EKS com SSH e verificar os logs de agente kubelet
O agente kubelet está configurado como um serviço systemd.
Para validar seus logs do kubelet, execute o seguinte comando:
journalctl -f -u kubelet
Para resolver qualquer problema, consulte o guia de solução de problemas do Amazon EKS para conhecer os erros comuns.
Use o script do coletor de logs do Amazon EKS para solucionar erros
Você pode usar os arquivos de log e os logs do sistema operacional para solucionar os problemas no seu Amazon EKS.
Use o SSH para se conectar ao nó de processamento problemático e execute o seguinte script:
curl -O https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/log-collector-script/linux/eks-log-collector.sh sudo bash eks-log-collector.sh
Informações relacionadas
Como solucionar falhas na criação de grupos de nós gerenciados do Amazon EKS?
Vídeos relacionados


Conteúdo relevante
- feita há um mêslg...
- Resposta aceitafeita há 2 meseslg...
- feita há 14 diaslg...
- feita há 4 meseslg...
- feita há um mêslg...
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 6 meses
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há um ano