Questa pagina fornisce istruzioni per installare lo strumento a riga di comando kubectl utilizzato per gestire e accedere ai cluster Google Kubernetes Engine (GKE). La kubectl
configurazione è obbligatoria se esegui più cluster in Google Cloud.
Scoprirai quanto segue:
- Come funziona
kubectl. - Come installare
kubectle le eventuali dipendenze richieste. - Come impostare un cluster predefinito per
kubectl. - Come eseguire i comandi
kubectlsu un cluster specifico.
Questa pagina è rivolta ad amministratori IT, operatori e sviluppatori che configurano, monitorano e gestiscono l'infrastruttura cloud, inclusi il provisioning e la configurazione delle risorse cloud. Per saperne di più sui ruoli comuni e sulle attività di esempio a cui si fa riferimento nella Google Cloud documentazione, consulta Ruoli e attività comuni degli utenti GKE.
Prima di leggere questa pagina, assicurati di conoscere Kubernetes kubectl.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Abilita l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo il
gcloud components updatecomando. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
- Assicurati di avere un cluster Autopilot o Standard esistente. Per creare un nuovo cluster, vedi Crea un cluster Autopilot.
Installa kubectl
Puoi installare kubectl utilizzando Google Cloud CLI o un gestore di pacchetti esterno, come apt o yum.
gcloud
Installa il componente
kubectl:gcloud components install kubectlVerifica che
kubectlsia installato controllando se ha l'ultima versione:kubectl version --client
apt
Verifica di avere il repository
cloud-sdk:grep -rhE ^deb /etc/apt/sources.list* | grep "cloud-sdk"L'output è simile al seguente:
deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk mainSe il repository
cloud-sdknon è elencato, installa gcloud CLI.Installa il componente
kubectl:apt-get update apt-get install -y kubectlVerifica che
kubectlsia installato controllando se ha l'ultima versione:kubectl version --client
yum
Verifica di avere il repository
cloud-sdk:yum repolist | grep "google-cloud-sdk"L'output è simile al seguente:
google-cloud-sdk Google Cloud SDK 2,205Installa il componente
kubectl:yum install -y kubectlVerifica che
kubectlsia installato controllando se ha l'ultima versione:kubectl version --client
Installa i plug-in richiesti
kubectl e altri client Kubernetes richiedono un plug-in di autenticazione,
gke-gcloud-auth-plugin, che utilizza il
framework Client-go Credential Plugins per
fornire token di autenticazione per comunicare con i cluster GKE.
Prima del rilascio della versione 1.26 di Kubernetes, gcloud CLI inizierà a richiedere l'installazione del file binario gke-gcloud-auth-plugin. Se il plug-in non è installato, le installazioni esistenti di kubectl o di altri client Kubernetes personalizzati smettono di funzionare.
Devi installare questo plug-in per utilizzare kubectl e altri client per interagire con GKE.
I client esistenti mostrano un messaggio di errore se il plug-in non è installato.
Prima di iniziare, verifica se il plug-in è già installato:
gke-gcloud-auth-plugin --version
Se l'output mostra le informazioni sulla versione, salta questa sezione.
Puoi installare il plug-in di autenticazione utilizzando gcloud CLI o un gestore di pacchetti esterno come apt o yum.
gcloud
Installa il file binario gke-gcloud-auth-plugin:
gcloud components install gke-gcloud-auth-plugin
apt
Installa il file binario gke-gcloud-auth-plugin:
apt-get install google-cloud-sdk-gke-gcloud-auth-pluginyum
Installa il file binario gke-gcloud-auth-plugin:
yum install google-cloud-sdk-gke-gcloud-auth-pluginVerifica l'installazione binaria gke-gcloud-auth-plugin:
Controlla la versione del programma binario
gke-gcloud-auth-plugin:gke-gcloud-auth-plugin --versionAggiorna la configurazione di
kubectlper utilizzare il plug-in:gcloud container clusters get-credentials CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATIONSostituisci quanto segue:
CLUSTER_NAME: il nome del tuo cluster.CONTROL_PLANE_LOCATION: la località di Compute Engine del piano di controllo del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.
Verifica la configurazione eseguendo il comando seguente:
kubectl get namespacesL'output è simile al seguente:
NAME STATUS AGE default Active 51d kube-node-lease Active 51d kube-public Active 51d kube-system Active 51d
Per saperne di più su questo plug-in, consulta il KEP di Kubernetes.
Interagisci con kubectl
Kubernetes utilizza un file YAML denominato
kubeconfig
per archiviare le informazioni di autenticazione del cluster per kubectl. Per impostazione predefinita, il file viene salvato in $HOME/.kube/config.
kubeconfig contiene un gruppo di parametri di accesso denominati contesti. Ogni contesto contiene un cluster Kubernetes, un utente e uno spazio dei nomi predefinito facoltativo. kubectl fa riferimento ai contesti durante l'esecuzione dei comandi.
Facoltativamente, puoi configurare kubectl utilizzando le seguenti attività:
- Scegli il cluster con cui comunica
kubectl. - Imposta il cluster predefinito per
kubectlimpostando il contesto attuale nel filekubeconfig. - Esegui i comandi
kubectlsu un cluster specifico utilizzando il flag--cluster.
Visualizza kubeconfig
Per visualizzare kubeconfig del tuo ambiente, esegui il comando seguente:
kubectl config view
Il comando restituisce un elenco di tutti i cluster per i quali sono state generate voci kubeconfig. Se è elencato un cluster GKE, puoi eseguire i comandi kubectl su di esso nell'ambiente attuale. In caso contrario, devi archiviare
le informazioni del cluster per kubectl.
Visualizza il contesto attuale per kubectl
Il contesto attuale è il cluster attualmente predefinito per kubectl. Tutti i comandi kubectl vengono eseguiti su questo cluster.
Quando crei un cluster utilizzando gcloud container clusters create-auto, viene aggiunta automaticamente una voce al file kubeconfig nel tuo ambiente e il contesto attuale cambia in quel cluster. Ad esempio:
gcloud container clusters create-auto my-cluster
Creating my-cluster...done
Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-cluster
Per visualizzare il contesto attuale per kubectl, esegui il comando seguente:
kubectl config current-context
Archivia le informazioni del cluster per kubectl
Quando crei un cluster utilizzando la Google Cloud console o gcloud CLI da un
altro computer, il file kubeconfig del tuo ambiente non viene aggiornato.
Inoltre, se un membro del team di progetto utilizza gcloud CLI per creare un cluster dal suo computer, il suo kubeconfig viene aggiornato, ma il tuo no. La voce kubeconfig contiene:
- Le tue credenziali come mostrato in
gcloud auth listoppure - Le credenziali predefinite dell'applicazione, se configurate.
Per generare un contesto kubeconfig nel tuo ambiente, assicurati di disporre dell'autorizzazione container.clusters.get. Il ruolo IAM con privilegi minimi che fornisce questa autorizzazione è container.clusterViewer.
Per generare un contesto kubeconfig per un cluster specifico, esegui il comando seguente:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Sostituisci quanto segue:
CLUSTER_NAME: il nome del tuo cluster.CONTROL_PLANE_LOCATION: la località di Compute Engine del piano di controllo del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.
Genera una voce kubeconfig utilizzando l'indirizzo IP interno di un cluster
Tutti i cluster hanno più indirizzi endpoint, ognuno con caratteristiche diverse. Uno di questi endpoint funge da endpoint canonico utilizzato da kubectl e da altri servizi per comunicare con il piano di controllo del cluster.
GKE seleziona automaticamente l'endpoint in base al seguente ordine:
- L'indirizzo IP esterno (se hai abilitato l'endpoint esterno)
- L'indirizzo IP interno
- L'indirizzo DNS (se l'accesso IP è disabilitato)
Per generare una voce kubeconfig per un cluster, esegui uno dei seguenti comandi:
Per utilizzare l'endpoint canonico per impostazione predefinita, esegui il
gcloud container clusters get-credentialscomando. Questo comando utilizza l'indirizzo IP nel campoendpointdella configurazione del cluster.Per utilizzare l'endpoint basato su IP interno per il cluster, esegui il comando seguente:
gcloud container clusters get-credentials CLUSTER_NAME \ --internal-ipSostituisci
CLUSTER_NAMEcon il nome del tuo cluster.Per utilizzare l'endpoint basato su DNS per il cluster, esegui il comando seguente:
gcloud container clusters get-credentials CLUSTER_NAME \ --dns-endpoint
I contenuti del file di configurazione generato variano in base all'endpoint utilizzato per connetterti al cluster:
- Endpoint basato su DNS: poiché il servizio Google Front End (GFE) che
ospita l'endpoint basato su DNS presenta il certificato firmato da un'
autorità di certificazione (CA) pubblica, la voce
kubeconfigomette ilcertificate-authority-datacampo. - Endpoint basati su IP: poiché il server API presenta un certificato che è
firmato dalla CA radice del cluster, la voce
kubeconfiginclude il campocertificate-authority-data. Questo campo contiene il certificato pubblico con codifica base64 della CA radice del cluster, che i client possono utilizzare per convalidare il certificato del server API.
Per saperne di più su questi certificati, consulta Sicurezza del trasporto per le connessioni del piano di controllo.
Imposta un cluster predefinito per i comandi kubectl
Se hai già generato una voce kubeconfig per i cluster, puoi passare il contesto attuale per kubectl a quel cluster eseguendo il comando seguente:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Sostituisci quanto segue:
CLUSTER_NAME: il nome del tuo cluster.CONTROL_PLANE_LOCATION: la località di Compute Engine del piano di controllo del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.
Ad esempio, considera un progetto con due cluster, my-cluster e my-new-cluster. Il contesto attuale è my-new-cluster, ma vuoi eseguire tutti i comandi kubectl su my-cluster. Per passare il contesto attuale da my-new-cluster a my-cluster, esegui il comando seguente:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Esegui singoli comandi kubectl su un cluster specifico
Puoi eseguire singoli kubectl comandi su un cluster specifico utilizzando
--cluster=CLUSTER_NAME.
Ad esempio, considera un ambiente con due cluster, my-cluster e my-new-cluster, in cui il contesto attuale è my-cluster. Vuoi eseguire il deployment di un'applicazione in my-new-cluster, ma non vuoi modificare il contesto attuale. Per eseguire il deployment dell'applicazione in my-new-cluster senza modificare il contesto attuale, esegui il comando seguente:
kubectl run my-app --image us-docker.pkg.dev/my-project/my-repo/my-app:1.0 --cluster my-new-cluster
Passaggi successivi
- Scopri come autorizzare l'accesso alle risorse nei cluster GKE.
- Esegui l'autenticazione ai Google Cloud servizi dai workload GKE.
- Leggi il
kubectlfoglio illustrativo. - Risolvi i problemi dello strumento a riga di comando
kubectl.
Provalo
Se non conosci Google Cloud, crea un account per valutare le prestazioni di GKE in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
Prova GKE senza costi