Questa pagina fornisce le istruzioni per installare lo strumento a riga di comando kubectl
utilizzato per gestire e accedere ai cluster Google Kubernetes Engine (GKE). La configurazione di kubectl
è necessaria se esegui più cluster in Google Cloud.
Imparerai quanto segue:
- Come funziona
kubectl
. - Come installare
kubectl
e le dipendenze richieste. - Come impostare un cluster predefinito per
kubectl
. - Come eseguire comandi
kubectl
su 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 documentazione di Google Cloud , consulta Ruoli utente e attività comuni di GKE Enterprise.
Prima di leggere questa pagina, assicurati di avere familiarità con Kubernetes kubectl
.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializzala. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo
gcloud components update
.
- Assicurati di avere un cluster Autopilot o Standard esistente. Per creare un nuovo cluster, consulta 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 kubectl
Verifica che
kubectl
sia installato controllando se è presente 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 main
Se il repository
cloud-sdk
non è elencato, installa gcloud CLI.Installa il componente
kubectl
:apt-get update apt-get install -y kubectl
Verifica che
kubectl
sia installato controllando che abbia 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,205
Installa il componente
kubectl
:yum install -y kubectl
Verifica che
kubectl
sia installato controllando se è presente l'ultima versione:kubectl version --client
Installare i plug-in richiesti
kubectl
e altri client Kubernetes richiedono un plug-in di autenticazione,
gke-gcloud-auth-plugin
, che utilizza il framework dei
plug-in delle credenziali client-go per
fornire token di autenticazione per comunicare con i cluster GKE.
Prima del rilascio di Kubernetes versione 1.26, gcloud CLI inizierà
a richiedere l'installazione del programma 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 visualizzano un messaggio di errore se il plug-in non è installato.
Prima di iniziare, controlla 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 programma binario gke-gcloud-auth-plugin
:
gcloud components install gke-gcloud-auth-plugin
apt
Installa il programma binario gke-gcloud-auth-plugin
:
apt-get install google-cloud-sdk-gke-gcloud-auth-plugin
yum
Installa il programma binario gke-gcloud-auth-plugin
:
yum install google-cloud-sdk-gke-gcloud-auth-plugin
Verifica l'installazione del binario gke-gcloud-auth-plugin
:
Controlla la versione del binario
gke-gcloud-auth-plugin
:gke-gcloud-auth-plugin --version
Aggiorna la configurazione di
kubectl
per utilizzare il plug-in: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 posizione di Compute Engine del control plane del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.
Verifica la configurazione eseguendo questo comando:
kubectl get namespaces
L'output è simile al seguente:
NAME STATUS AGE default Active 51d kube-node-lease Active 51d kube-public Active 51d kube-system Active 51d
Per ulteriori informazioni su questo plug-in, consulta la 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 chiamati contesti. Ogni
contesto contiene un cluster Kubernetes, un utente e uno spazio dei nomi
predefinito facoltativo. kubectl
si riferisce ai contesti durante l'esecuzione dei comandi.
(Facoltativo) Puoi configurare kubectl
utilizzando le seguenti attività:
- Scegli il cluster con cui comunica
kubectl
. - Imposta il cluster predefinito per
kubectl
impostando il contesto corrente nel filekubeconfig
. - Esegui i comandi
kubectl
su un cluster specifico utilizzando il flag--cluster
.
Visualizza kubeconfig
Per visualizzare kubeconfig
del tuo ambiente, esegui questo comando:
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 comandi kubectl
al suo interno nell'ambiente corrente. In caso contrario, devi memorizzare
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 quel 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 corrente cambia in base a 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 questo comando:
kubectl config current-context
Memorizza le informazioni sul cluster per kubectl
Quando crei un cluster utilizzando la console Google Cloud 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 proprio computer, il suo kubeconfig
viene aggiornato, ma il tuo no. La voce kubeconfig
contiene:
- Le tue credenziali come mostrato in
gcloud auth list
oppure - 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 questo comando:
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 posizione di Compute Engine del control plane 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 altri servizi per comunicare con il control plane 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 utilizzare l'endpoint canonico per impostazione predefinita, esegui il comando
get-credentials
. Per un maggiore controllo sull'endpoint utilizzato dakubectl
, utilizza il flag--internal-ip
o--dns-endpoint
. Per aggiornare il filekubeconfig
in modo da utilizzare l'indirizzo IP interno, esegui il comando seguente:
gcloud container clusters get-credentials CLUSTER_NAME --internal-ip
Per aggiornare il file kubeconfig
in modo da utilizzare l'indirizzo DNS, esegui questo comando:
gcloud container clusters get-credentials CLUSTER_NAME --dns-endpoint
Sostituisci CLUSTER_NAME
con il nome del cluster.
Per impostazione predefinita, l'esecuzione di get-credentials
utilizza l'indirizzo IP specificato nel campo endpoint
.
Impostare un cluster predefinito per i comandi kubectl
Se in precedenza hai generato una voce kubeconfig per i cluster, puoi cambiare
il contesto corrente per kubectl
con quello del cluster eseguendo il seguente
comando:
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 posizione di Compute Engine del control plane 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 cambiare il contesto attuale
da my-new-cluster
a my-cluster
, esegui questo comando:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Esegui singoli comandi kubectl
su un cluster specifico
Puoi eseguire singoli comandi kubectl
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 corrente, esegui questo comando:
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.
- Autenticati ai servizi Google Cloud dai carichi di lavoro GKE.
- Leggi la scheda di riferimento
kubectl
. - Risolvi i problemi relativi allo 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 addebiti per l'esecuzione, il test e il deployment dei workload.
Prova GKE gratuitamente