Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Come posso risolvere i problemi di connettività con l'endpoint del server API del cluster Amazon EKS?
Non riesco a eseguire i comandi kubectl. Inoltre, ho modificato l'impostazione di accesso agli endpoint da pubblica a privata sul mio cluster Amazon Elastic Kubernetes Service (Amazon EKS). Ora, il mio cluster è bloccato nello stato Failed.
Risoluzione
Nota: per configurare l'accesso all'endpoint del server API Kubernetes, consulta Modifica dell'accesso all'endpoint del cluster.
Risolvi gli errori dei comandi kubectl su un cluster nuovo o esistente
Verifica che il file kubeconfig si connetta al cluster
Completa i seguenti passaggi:
-
Verifica di aver utilizzato il file kubeconfig corretto per connetterti al cluster. Per ulteriori informazioni, consulta Organizing cluster access using kubeconfig files (Come organizzare l'accesso al cluster utilizzando i file kubeconfig) sul sito web Kubernetes.
-
Esegui questo comando per elencare i contesti del cluster nel file kubeconfig:
kubectl config view -o jsonpath='{"Cluster name\tServer\n"}{range .clusters[*]}{.name}{"\t"}{.cluster.server}{"\n"}{end}'Esempio di output:
Cluster name Server "example-cluster-name" https://"example-cluster-endpoint".eks.amazonaws.com -
Verifica che i nomi dei cluster e gli endpoint nel file kubeconfig siano corretti. Se il nome o l'endpoint di un cluster non è corretto, esegui questo comando per aggiornare il contesto del cluster nel file kubeconfig:
aws eks update-kubeconfig --name example-cluster-name --region example-regionNota: sostituisci example-cluster-name con il nome del cluster che stai aggiornando e example-region con la tua Regione AWS.
-
Sul dispositivo, esegui questo comando telnet sulla porta 443 per verificare la connettività dell'endpoint del server API:
telnet example-server-endpoint 443Nota: sostituisci example-server-endpoint con l'endpoint del tuo server API.
Nel seguente esempio di output, la porta 433 può collegarsi all'endpoint del server D8DC9092A7985668FF67C3D1C789A9F5.gr7.us-east-2.eks.amazonaws.com:$ echo exit | telnet D8DC9092A7985668FF67C3D1C789A9F5.gr7.us-east-2.eks.amazonaws.com 443 Trying 18.224.160.210... Connected to D8DC9092A7985668FF67C3D1C789A9F5.gr7.us-east-2.eks.amazonaws.com. Escape character is '^]'. Connection closed by foreign host.
Se il dispositivo non riesce a connettersi all'endpoint del server API tramite la porta 433, completa i passaggi di risoluzione nelle seguenti sezioni.
Controllo del risolutore DNS
Esegui questo comando dallo stesso dispositivo in cui i comandi kubectl hanno avuto esito negativo:
nslookup example-server-endpoint
Nota: sostituisci example-server-endpoint con l'endpoint del tuo server API.
Verifica se hai limitato l'accesso pubblico all'endpoint del server API
Esegui una di queste azioni in base alle esigenze:
- Se hai limitato l'accesso all'endpoint del server API pubblico con blocchi CIDR, verifica che l'indirizzo IP del computer client rientri negli intervalli CIDR consentiti.
- Se richiedi l'accesso dall'esterno di Amazon Virtual Private Cloud (Amazon VPC), utilizza un endpoint pubblico con restrizioni CIDR.
Assicurati che la combinazione di accesso dell'endpoint del server API soddisfi i requisiti di accesso.
Nota: è consigliabile impostare l'endpoint del server API su privato e configurare AWS VPN per l'accesso esterno. Per ulteriori informazioni, consulta Accesso a un server API solo privato.
Risolvi gli errori del comando kubectl su un cluster dopo che l'accesso all'endpoint è passato da pubblico a privato
Esegui queste azioni:
- Accertati di utilizzare un host bastione o reti connesse per accedere all'endpoint dell'API Amazon EKS. Le reti connesse includono VPC in peering, AWS Direct Connect e VPN.
Nota: in modalità di accesso privato, puoi accedere all'endpoint dell'API Amazon EKS solo dall'interno del VPC o delle reti connesse del cluster. - Verifica se i gruppi di sicurezza o le liste di controllo degli accessi alla rete (ACL) bloccano le richieste al server API Kubernetes.
Nota: se utilizzi un VPC in peering, verifica che i gruppi di sicurezza del piano di controllo (control-plane) consentano l'accesso dal VPC peered sulla porta 443.
Risolvi i problemi relativi a un cluster bloccato nello stato Non riuscito quando non puoi modificare l'impostazione di accesso all'endpoint da pubblico a privato
Se è presente un problema di autorizzazioni con AWS Identity and Access Management (AWS IAM), il cluster passa allo stato Non riuscito.
Verifica che il ruolo IAM che utilizzi sia autorizzato a eseguire l'azione AssociateVPCWithHostedZone.
Se l'azione non è bloccata, controlla se l'account AWS ha policy di controllo dei servizi (SCP) di AWS Organizations che bloccano le chiamate API.Verifica che nessun diniego implicito o esplicito blocchi le autorizzazioni dell'utente IAM a livello di organizzazione o account. Le istruzioni Deny bloccano le autorizzazioni anche quando l'amministratore dell'account collega la policy IAM AdministratorAccess con le autorizzazioni */* all'utente. Le SCP di AWS Organizations sovrascrivono le autorizzazioni per le entità IAM.
- Argomenti
- Containers
- Lingua
- Italiano
