Installa kubectl e configura l'accesso al cluster


In questa pagina viene spiegato come installare e configurare lo strumento a riga di comando kubectl.

Questa pagina è rivolta ad amministratori IT, operatori e sviluppatori che configurano, monitorano e gestiscono l'infrastruttura cloud, nonché eseguono il provisioning e la configurazione delle risorse cloud. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud, consulta Ruoli e attività utente comuni di GKE Enterprise.

Panoramica

kubectl è uno strumento a riga di comando che puoi usare per interagire con GKE cluster. Per utilizzare kubectl con GKE, devi installare lo strumento e configurarlo per comunicare con i tuoi cluster. Se è necessaria un'ulteriore configurazione di kubectl di eseguire più cluster in Google Cloud.

In questa pagina vengono visualizzate le seguenti informazioni:

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:

  • Attiva l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installa e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente eseguendo gcloud components update.

Installa kubectl

Puoi installare kubectl utilizzando Google Cloud CLI o un gestore di pacchetti esterno come apt o yum.

gcloud

  1. Installa il componente kubectl:

    gcloud components install kubectl
    
  2. Verifica che kubectl sia installato controllando che sia aggiornata all'ultima versione:

    kubectl version --client
    

apt

  1. 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
    
  2. Se il repository cloud-sdk non è in elenco, installa gcloud CLI.

  3. Installa il componente kubectl:

    apt-get update
    apt-get install -y kubectl
  4. Verifica che kubectl sia installato controllando che sia installata la versione più recente:

    kubectl version --client

slurp

  1. 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
    
  2. Installa il componente kubectl:

    yum install -y kubectl
  3. Verifica che kubectl sia installato controllando che sia aggiornata all'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 avvia per richiedere l'installazione del programma binario gke-gcloud-auth-plugin. Se non è installato, le installazioni esistenti di kubectl o di altri client Kubernetes personalizzati smetteranno di funzionare.

Devi installare questo plug-in per utilizzare kubectl e altri client per interagire con GKE. Se il plug-in non è installato, i client esistenti visualizzano un messaggio di errore.

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 l'interfaccia a riga di comando gcloud 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

slurp

Installa il programma binario gke-gcloud-auth-plugin:

  yum install google-cloud-sdk-gke-gcloud-auth-plugin

Verifica l'installazione del file binario gke-gcloud-auth-plugin:

  1. Controlla la versione binaria di gke-gcloud-auth-plugin:

    gke-gcloud-auth-plugin --version
    
  2. Aggiorna la configurazione di kubectl per utilizzare il plug-in:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --region=COMPUTE_REGION
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del tuo cluster.
    • COMPUTE_REGION: il Compute Engine region per il tuo cluster. Per cluster di zona, usa --zone=COMPUTE_ZONE.
  3. Verifica la configurazione:

    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 sul motivo per cui questo plug-in è obbligatorio, consulta il KEP di Kubernetes.

Interagisci con kubectl

Kubernetes usa un file YAML 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 modello un cluster, un utente e uno spazio dei nomi predefinito facoltativo. kubectl si riferisce ai contesti quando vengono eseguiti i comandi.

Di seguito sono riportate le attività che puoi completare per configurare kubectl:

  • Scegli il cluster con cui comunica kubectl.
  • Imposta un cluster predefinito per kubectl impostando il contesto attuale in il file kubeconfig.
  • Esegui i comandi kubectl su un cluster specifico utilizzando il flag --cluster.

Visualizza kubeconfig

Per visualizzare kubeconfig del tuo ambiente, esegui il seguente comando:

kubectl config view

Il comando restituisce un elenco di tutti i cluster per i quali le voci kubeconfig sono sono stati generati. Se è elencato un cluster GKE, puoi eseguire kubectl dei comandi nel tuo ambiente attuale. In caso contrario, devi memorizzare le informazioni sul cluster per kubectl.

Visualizza il contesto attuale per kubectl

Il contesto corrente è il cluster attualmente predefinito per kubectl. Tutti i comandi kubectl vengono eseguiti sul 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 passa 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 corrente per kubectl, esegui il seguente 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 computer diverso, il file kubeconfig del tuo ambiente non viene aggiornato. Inoltre, se un membro del team di progetto utilizza gcloud CLI per creare un cluster da il suo computer, il suo kubeconfig è aggiornato, mentre il tuo no. kubeconfig contiene:

Per generare un contesto kubeconfig nel tuo ambiente, assicurati di disporre dell'autorizzazione container.clusters.get. Il ruolo IAM con i privilegi minimi che fornisce questa autorizzazione è container.clusterViewer.

Per generare un contesto kubeconfig per un cluster specifico, esegui il comando seguente comando:

gcloud container clusters get-credentials CLUSTER_NAME \
    --region=CLUSTER_REGION

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo cluster.
  • COMPUTE_REGION: la regione Compute Engine per il cluster. Per i cluster di zona, utilizza --zone=COMPUTE_ZONE.

Genera una voce kubeconfig utilizzando l'indirizzo IP interno di un cluster privato

Tutti i cluster hanno un endpoint canonico. L'endpoint espone il server API Kubernetes utilizzato da kubectl e altri servizi per comunicare con il tuo control plane del cluster.

I cluster privati hanno due indirizzi IP endpoint distinti: privateEndpoint, che è un indirizzo IP interno, e publicEndpoint, che è un indirizzo IP esterno. Il campo endpoint si riferisce all'indirizzo IP esterno, a meno che l'accesso pubblico all'endpoint non sia disabilitato, nel qual caso verrà utilizzato l'indirizzo IP privato.

Per i cluster privati, se preferisci utilizzare l'indirizzo IP interno come esegui questo comando:

gcloud container clusters get-credentials CLUSTER_NAME --internal-ip

Sostituisci CLUSTER_NAME con il nome del tuo 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 hai già generato una voce kubeconfig per i cluster, puoi cambiare il contesto corrente per kubectl in quel cluster eseguendo il seguente comando:

gcloud container clusters get-credentials CLUSTER_NAME \
    --region=COMPUTE_REGION

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo cluster.
  • COMPUTE_REGION: il Compute Engine region per il tuo cluster. Per cluster di zona, usa --zone=COMPUTE_ZONE.

Ad esempio, considera un progetto con due cluster, my-cluster e my-new-cluster. Il contesto attuale è my-new-cluster, ma vuoi eseguire l'operazione tutti i comandi kubectl rispetto a my-cluster. Per cambiare il contesto corrente da my-new-cluster a my-cluster, esegui il seguente comando:

gcloud container clusters get-credentials CLUSTER_NAME \
    --region=COMPUTE_REGION

Esegui singoli comandi kubectl su un cluster specifico

Puoi eseguire singoli comandi kubectl su un cluster specifico utilizzando --cluster=CLUSTER_NAME.

Considera ad esempio 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 corrente. Per eseguire il deployment dell'applicazione in my-new-cluster senza modificare contesto corrente, dovresti eseguire 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

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 gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.

Prova GKE gratuitamente