Come posso risolvere i problemi con l'endpoint del server API del mio cluster Amazon EKS?

4 minuti di lettura
0

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.

Breve descrizione

In caso di problemi con l'endpoint del server API Kubernetes, completa i passaggi in una delle seguenti sezioni:

  • Non è possibile eseguire i comandikubectl sul cluster nuovo o esistente
  • Non è possibile eseguire i comandikubectl sul cluster dopo aver modificato l'accesso all'endpoint da pubblico a privato
  • Il cluster è bloccato nello stato Failed e non è possibile modificare l'impostazione di accesso all'endpoint da pubblica a privata

**Nota:**Per configurare l'accesso all'endpoint del server API Kubernetes, vedi Modifica dell'accesso agli endpoint del cluster.

Risoluzione

Non è possibile eseguire i comandi kubectl sul cluster nuovo o esistente

  1. Conferma che stai utilizzando i file kubeconfig corretti per connetterti al tuo cluster. Per ulteriori informazioni, consulta Organizzazione dell'accesso al cluster utilizzando i file kubeconfig (dal sito Web Kubernetes).

  2. Controlla ogni cluster per più contesti nei tuoi file kubeconfig.

Esempio di output:

kubectl config view -o jsonpath='{"Cluster name\tServer\n"}{range .clusters[*]}{.name}{"\t"}{.cluster.server}{"\n"}{end}'
Cluster name    Server
new200.us-east-2.eksctl.io       https://D8DC9092A7985668FF67C3D1C789A9F5.gr7.us-east-2.eks.amazonaws.com

Se i file kubeconfig esistenti non hanno i dettagli corretti del cluster, usa il seguente comando per crearne uno con i dettagli corretti:

aws eks update-kubeconfig --name cluster name --region region

Nota:Sostituisci il nome del cluster con il nome del cluster e la** regione** con la tua regione AWS.

  1. Usa il telnet sulla porta 443 per convalidare la connettività dell'endpoint del server API dal tuo dispositivo.

Esempio di output:

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 telnet non funziona, utilizza i seguenti passaggi per risolvere i problemi:

Controlla il resolver DNS

Se il server API non si risolve, c'è un problema con il resolver DNS.

Esegui il seguente comando dallo stesso dispositivo in cui i comandi kubectl non sono riusciti:

nslookup APISERVER endpoint

**Nota:**Sostituisci l’endpoint APISERVER con il tuo endpoint APISERVER.

Verifica se hai limitato l'accesso pubblico all'endpoint del server API

Se hai specificato blocchi CIDR per limitare l'accesso all'endpoint del server API pubblico, è consigliabile attivare anche l'accesso privato agli endpoint.

  1. Controlla il comportamento di accesso all'endpoint del server API. Vedere Modifica dell'accesso agli endpoint del cluster.

Non è possibile eseguire i comandi kubectl sul cluster dopo aver modificato l'accesso all'endpoint da pubblico a privato

  1. Conferma di utilizzare un host bastion o reti connesse, come VPC peer-to-peer, AWS Direct Connect o VPN, per accedere all'endpoint dell'API Amazon EKS.

**Nota:**In modalità di accesso privato, puoi accedere all'endpoint dell'API Amazon EKS solo dall'interno del VPC del cluster.

  1. Verifica se i gruppi di sicurezza o gli elenchi di controllo degli accessi alla rete stanno bloccando le chiamate API.

Se accedi al cluster tramite un cloud privato virtuale peer-to-peer, conferma che i gruppi di sicurezza del piano di controllo consentano l'accesso dal cloud privato virtuale peerizzato ai gruppi di sicurezza del piano di controllo sulla porta 443. Inoltre, verifica che i VPC peer abbiano la porta 53 aperta l'una all'altra. La porta 53 viene utilizzata per la risoluzione DNS.

Il cluster è bloccato nello stato Failed e non è possibile modificare l'impostazione di accesso all'endpoint da pubblica a privata

Il tuo cluster potrebbe essere nello stato Failed a causa di un problema di autorizzazioni con AWS Identity and Access Management (IAM).

  1. Verificare che il ruolo IAM dell'utente sia autorizzato a eseguire l’azione AssociateVPCWithHostedZone.

**Nota:**Se l'azione non è bloccata, controlla se l'account dell'utente ha le politiche di AWS Organizations che bloccano le chiamate API e causano il fallimento del cluster.

  1. Verifica che l'autorizzazione dell'utente IAM non sia bloccata implicitamente o esplicitamente a nessun livello superiore all'account.

**Nota:**L'autorizzazione utente IAM viene bloccata implicitamente se non è inclusa nell'informativa Consenti. È bloccato in modo esplicito se è incluso nell’informativa Rifiuta. L'autorizzazione è bloccata anche se l'amministratore dell'account allega l’informativa IAM AdministratorAccess con le autorizzazioni */* all'utente. Le autorizzazioni delle politiche di AWS Organizations hanno la precedenza sulle autorizzazioni per le entità IAM.


Informazioni correlate

Requisiti e considerazioni del gruppo di sicurezza Amazon EKS

Risoluzione DNS per cluster EKS che utilizzano endpoint privati

Amazon EKS consente restrizioni di accesso alla rete agli endpoint pubblici del cluster Kubernetes

Controllo degli accessi agli endpoint del cluster Amazon EKS

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa