Connettere kubectl a un cluster EKS creando un file kubeconfig - Amazon EKS

Contribuisci a migliorare questa pagina

Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.

Connettere kubectl a un cluster EKS creando un file kubeconfig

In questo argomento viene creato un file kubeconfig per il cluster (o ne viene aggiornato uno esistente).

Lo strumento della linea di comando kubectl utilizza le informazioni di configurazione nei file kubeconfig per comunicare con il server API di un cluster. Per ulteriori informazioni, consulta la sezione Organizing Cluster Access Using kubeconfig Files nella documentazione di Kubernetes.

Amazon EKS utilizza il comando aws eks get-token con kubectl per l'autenticazione del cluster. Per impostazione predefinita, la AWS CLI utilizza le stesse credenziali che vengono restituite con il comando seguente:

aws sts get-caller-identity
  • Un cluster Amazon EKS esistente. Per implementarne uno, consulta Nozioni di base su Amazon EKS.

  • Lo strumento a riga di comando kubectl è installato sul dispositivo o su AWS CloudShell. La versione può essere uguale oppure immediatamente precedente o successiva alla versione di Kubernetes del cluster. Ad esempio, se la versione del cluster è 1.29, puoi usare kubectl versione 1.28, 1.29 o 1.30. Per installare o aggiornare kubectl, consulta Impostazione di kubectl e eksctl:

  • La versione 2.12.3 o successive oppure 1.27.160 o successive dell’Interfaccia a riga di comando AWS (AWS CLI) installata e configurata sul dispositivo o in AWS CloudShell. Per verificare la versione attuale, usa aws --version | cut -d / -f2 | cut -d ' ' -f1. I programmi di gestione dei pacchetti, come yum, apt-get o Homebrew per macOS, spesso sono aggiornati a versioni precedenti dell’AWS CLI. Per installare la versione più recente, consulta Installing e Quick configuration with aws configure nella Guida per l’utente dell’Interfaccia a riga di comando AWS. La versione della AWS CLI installata in AWS CloudShell potrebbe anche essere precedente di diverse versioni rispetto alla più recente. Per aggiornarla, consultare Installing AWS CLI to your home directory nella Guida per l’utente di AWS CloudShell.

  • Un ruolo o un utente IAM con l'autorizzazione a utilizzare l'azione API eks:DescribeCluster per il cluster che specifichi. Per ulteriori informazioni, consulta Esempi di policy basate su identità Amazon EKS. Se utilizzi un’identità del tuo provider OpenID Connectper accedere al cluster, consulta la sezione Using kubectl nella documentazione di Kubernetes per creare o aggiornare il file kube config.

Creazione automatica del file kubeconfig

  • La versione 2.12.3 o successive oppure 1.27.160 o successive dell’Interfaccia a riga di comando AWS (AWS CLI) installata e configurata sul dispositivo o in AWS CloudShell. Per verificare la versione attuale, usa aws --version | cut -d / -f2 | cut -d ' ' -f1. I programmi di gestione dei pacchetti, come yum, apt-get o Homebrew per macOS, spesso sono aggiornati a versioni precedenti dell’AWS CLI. Per installare la versione più recente, consulta Installing e Quick configuration with aws configure nella Guida per l’utente dell’Interfaccia a riga di comando AWS. La versione della AWS CLI installata in AWS CloudShell potrebbe anche essere precedente di diverse versioni rispetto alla più recente. Per aggiornarla, consultare Installing AWS CLI to your home directory nella Guida per l’utente di AWS CloudShell.

  • Autorizzazione a utilizzare l'operazione API eks:DescribeCluster per il cluster specificato. Per ulteriori informazioni, consulta Esempi di policy basate su identità Amazon EKS.

    1. Crea o aggiorna un file kubeconfig per il cluster. Sostituisci region-code con la regione AWS in cui si trova il cluster e sostituisci my-cluster con il nome del cluster.

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

      Per impostazione predefinita, il file di configurazione risultante viene creato nel percorso kubeconfig predefinito (.kube) nella home directory o unito a un file config esistente in quel percorso. È possibile specificare un altro percorso con l'opzione --kubeconfig.

      Puoi specificare un ARN del ruolo IAM con l'opzione --role-arn da utilizzare per l'autenticazione quando esegui comandi kubectl. In caso contrario, viene utilizzato il principale IAM nella AWS CLI di default o la catena di credenziali SDK. Puoi visualizzare l’identità SDK o AWS CLI predefinita eseguendo il comando aws sts get-caller-identity.

      Per tutte le opzioni disponibili, esegui il comando aws eks update-kubeconfig help o consulta la sezione update-kubeconfig nella Documentazione di riferimento ai comandi della AWS CLI.

    2. Prova la configurazione.

      kubectl get svc

      Di seguito viene riportato un output di esempio:

      NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 1m

      Se ricevi qualsiasi altro errore di tipo di risorsa o autorizzazione, consulta la sezione Accesso negato o non autorizzato (kubectl) nell'argomento relativo alla risoluzione dei problemi.