Configurazione dell'accesso ai cluster per kubectl

Questa pagina spiega come configurare l'accesso ai cluster per lo strumento a riga di comando kubectl per GKE su AWS.

Panoramica

Per accedere a GKE su AWS, devi configurare kubectl. Puoi impostare un cluster predefinito per kubectl impostando il contesto attuale nel file kubeconfig di Kubernetes. Inoltre, puoi eseguire i comandi kubectl su un cluster specifico utilizzando il flag --cluster.

Per maggiori informazioni su kubeconfig e sugli endpoint dei cluster, consulta Informazioni su Kubeconfig.

Prima di iniziare

Se utilizzi il gateway di connessione per l'accesso kubectl, devi concedere agli utenti amministratori che non sono proprietari del progetto i ruoli IAM descritti in Utilizzare kubectl con identità da gcloud CLI.

Controlla il file kubeconfig attuale

In questa sezione viene spiegato come controllare il tuo attuale kubeconfig.

Visualizza contesti kubeconfig

Per visualizzare kubeconfig del tuo ambiente e tutti i contesti che contiene, esegui questo comando:

kubectl config view

Il comando restituisce un elenco di tutti i cluster per cui sono state generate le voci kubeconfig. Se è presente un cluster GKE su AWS, puoi eseguirvi i comandi kubectl nel tuo ambiente attuale. In caso contrario, devi generare una voce kubeconfig per il cluster.

Visualizza il contesto attuale per kubectl

Per visualizzare il contesto attuale utilizzato dallo strumento a riga di comando kubectl, esegui questo comando:

kubectl config current-context

kubectl restituisce il nome del contesto corrente.

Genera una voce kubeconfig

Per eseguire i comandi kubectl sui cluster GKE, devi generare una voce kubeconfig. Il modo in cui generare un kubeconfig dipende da come vuoi connetterti al cluster. Ti consigliamo di utilizzare Connetti gateway. Se vuoi connetterti tramite un endpoint privato, devi disporre di una connessione e del routing all'endpoint del piano di controllo in AWS Virtual Private Cloud. Il kube-apiserver del cluster fa parte del piano di controllo. Per inviare richieste direttamente all'endpoint privato, potresti dover ampliare le regole firewall. Per ulteriori informazioni sulla connessione al piano di controllo, consulta Gruppi di sicurezza AWS.

Connect Gateway

gcloud container aws clusters get-credentials CLUSTER_NAME \
  --location GOOGLE_CLOUD_LOCATION

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster
  • GOOGLE_CLOUD_LOCATION: la regione o la zona di Google Cloud in cui sono gestiti GKE su AWS

Endpoint privato

Per connetterti all'endpoint privato, è necessaria la connettività al piano di controllo del cluster. Consulta Connettersi al piano di controllo del cluster.

gcloud container aws clusters get-credentials CLUSTER_NAME \
  --location GOOGLE_CLOUD_LOCATION \
  --private-endpoint

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster
  • GOOGLE_CLOUD_LOCATION: la regione o la zona di Google Cloud in cui sono gestiti GKE su AWS

Lavora con più cluster

Questa sezione descrive come utilizzare kubectl con più cluster GKE.

Imposta un cluster predefinito per i comandi kubectl

Puoi cambiare il contesto attuale di kubectl con quel cluster eseguendo:

gcloud container aws clusters get-credentials CLUSTER_NAME \
  --location GOOGLE_CLOUD_LOCATION \

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster
  • GOOGLE_CLOUD_LOCATION: la regione o la zona di Google Cloud in cui sono gestiti GKE su AWS

Ad esempio, considera un progetto con due cluster, cluster-1 e cluster-2. Il contesto attuale è cluster-2. Per cambiare il contesto corrente da cluster-2 a cluster-1, esegui questo comando:

gcloud container aws clusters get-credentials cluster-1 \
  --location GOOGLE_CLOUD_LOCATION

Eseguire singoli comandi kubectl su un cluster specifico

Puoi eseguire singoli comandi kubectl su un cluster specifico passando il nome del cluster come visualizzato in kubeconfig come argomento al flag --cluster.

Ad esempio, considera un ambiente con due cluster, cluster-1 e cluster-2, in cui il contesto attuale è cluster-1. Non vuoi cambiare il contesto corrente. Per ottenere un elenco di oggetti pod su cluster-2 senza modificare il contesto attuale, esegui questo comando:

kubectl get pod --cluster cluster-2