Informazioni su Kubeconfig

File di configurazione di Kubernetes

Kubernetes utilizza un file YAML denominato kubeconfig per archiviare le informazioni di autenticazione del cluster per kubectl. kubeconfig contiene un elenco di contesti a cui kubectl fa riferimento quando si eseguono comandi. Per impostazione predefinita, il file viene salvato in $HOME/.kube/config.

Un contesto è un gruppo di parametri di accesso. Ogni contesto contiene un cluster Kubernetes, un utente e uno spazio dei nomi. Il contesto attuale è il cluster attualmente predefinito per kubectl: tutti i comandi kubectl vengono eseguiti su quel cluster.

Dopo aver creato un cluster, segui Genera una voce kubeconfig per aggiungere il contesto del cluster alla tua kubeconfig locale.

Endpoint privati

Tutti i cluster hanno un endpoint canonico. L'endpoint espone il server API Kubernetes che kubectl e altri servizi utilizzano per comunicare con il piano di controllo del cluster sulla porta TCP 443. Su AWS, questo endpoint è un nome DNS risolvibile solo all'interno del cluster, ad esempio gke-abcdefghijk-cp-ffabcdef123456.elb.us-west-1.amazonaws.com. Questo endpoint non è accessibile sulla rete internet pubblica. Puoi ottenere l'indirizzo dell'endpoint del cluster privato dal campo endpoint nell'output del comando gcloud container aws clusters describe.

Connetti endpoint gateway

Per impostazione predefinita, il comando gcloud container aws clusters get-credentials genera un kubeconfig che utilizza il Connetti gateway. Con questo kubeconfig, kubectl utilizza Connect, che inoltra in modo sicuro il traffico all'endpoint privato per tuo conto. Quando utilizzi il gateway di Connect, l'endpoint ha il seguente aspetto: https://connectgateway.googleapis.com/v1/projects/PROJECT_NUMBER/memberships/CLUSTER_NAME, dove PROJECT_NUMBER è il numero di progetto e CLUSTER_NAME è il nome del cluster.

Se hai accesso all'endpoint privato del cluster tramite il VPC, puoi connetterti direttamente all'endpoint privato. Per generare un kubeconfig utilizzando l'endpoint privato, utilizza il comando gcloud container aws clusters get-credentials --private-endpoint.

Informazioni sull'autenticazione per kubectl

Tutti i GKE su AWS sono configurati per accettare le identità degli utenti e degli account di servizio Google Cloud, convalidando le credenziali presentate da kubectl e recuperando l'indirizzo email associato all'identità dell'utente o dell'account di servizio. Di conseguenza, le credenziali di questi account devono includere l'ambito OAuth userinfo.email per poter eseguire correttamente l'autenticazione.

Quando utilizzi gcloud per configurare kubeconfig del tuo ambiente per un cluster nuovo o esistente, gcloud fornisce a kubectl le stesse credenziali utilizzate da gcloud stesso. Ad esempio, se utilizzi gcloud auth login, le tue credenziali personali vengono fornite a kubectl, incluso l'ambito userinfo.email. Ciò consente a GKE su AWS di autenticare il client kubectl.

Una volta autenticati, gli utenti o gli account di servizio Google Cloud devono anche essere autorizzati a eseguire qualsiasi azione su GKE su AWS. L'amministratore del cluster è responsabile della configurazione del controllo degli accessi basato su ruoli appropriato per configurare l'autorizzazione.