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.