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 clusterGOOGLE_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 clusterGOOGLE_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 clusterGOOGLE_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