Questo documento spiega come eseguire l'upgrade della versione di Kubernetes di un cluster Kubernetes Google Distributed Cloud (GDC) con air gap. Devi pianificare upgrade di routine per i tuoi cluster per assicurarti che incorporino le funzionalità e le correzioni più recenti di Kubernetes.
Questo documento è rivolto a un pubblico come amministratori IT, tecnici della sicurezza e amministratori di rete all'interno del gruppo di amministratori della piattaforma, responsabili della gestione delle risorse Kubernetes all'interno della propria organizzazione. Per saperne di più, consulta Pubblico per la documentazione di GDC con air gap.
Prima di iniziare
Per completare le attività descritte in questo documento, devi richiedere le autorizzazioni necessarie e preparare l'ambiente.
Richiedi ruoli IAM
Devi disporre di ruoli specifici per ottenere le autorizzazioni necessarie per eseguire l'upgrade del cluster Kubernetes. Devi richiedere ruoli con ambito limitato al progetto e all'organizzazione.
Ruoli organizzazione
Per elencare le versioni di upgrade disponibili per un cluster Kubernetes, chiedi all'amministratore dell'organizzazione IAM di concederti il ruolo Amministratore del cluster utente (user-cluster-admin). Questo ruolo non è associato a uno spazio dei nomi.
Se gestisci un cluster standard e non riesci a ottenere il ruolo Amministratore cluster utente dal gruppo di amministratori della piattaforma, devi chiedere che ti forniscano l'elenco delle versioni di upgrade di Kubernetes disponibili.
Ruoli del progetto
Per creare, eliminare, modificare o visualizzare gli upgrade dei cluster, chiedi all'amministratore del progetto IAM di concederti il ruolo Amministratore di cluster standard (standard-cluster-admin). Questo ruolo è associato allo spazio dei nomi del progetto.
prepara l'ambiente
Per eseguire comandi su un cluster Kubernetes utilizzando l'API, assicurati di disporre delle seguenti risorse:
Individua il nome del cluster Kubernetes o chiedi a un membro del gruppo di amministratori della piattaforma qual è il nome del cluster.
Utilizza il nome del cluster Kubernetes per sostituire
CLUSTER_NAMEin queste istruzioni.Accedi e genera il file kubeconfig per il server API di gestione.
Utilizza il percorso kubeconfig del server API di gestione per sostituire
MANAGEMENT_API_SERVERin queste istruzioni.
Esegui l'upgrade di un cluster Kubernetes
Utilizza l'API UserClusterUpgradeRequest per eseguire l'upgrade di un cluster Kubernetes esistente.
Per eseguire l'upgrade di un cluster Kubernetes utilizzando l'API, segui questi passaggi:
Elenca le versioni di upgrade di Kubernetes disponibili stampando il valore
kubernetesVersiondegli oggettiUserClusterMetadata:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get userclustermetadata -o=custom-columns='TARGET_VERSION:.spec.kubernetesVersion'Sostituisci
MANAGEMENT_API_SERVERcon il percorso del file kubeconfig del server API di gestione.Il comando restituisce un elenco delle versioni di Kubernetes disponibili:
TARGET_VERSION 1.30.1000-gke.85Prendi nota della versione di Kubernetes dall'output precedente a cui vuoi eseguire l'upgrade del cluster. La versione
targetVersionspecificata nella richiesta di upgrade nel passaggio successivo deve essere una di queste versioni disponibili.Richiedi l'upgrade del cluster creando una risorsa
UserClusterUpgradeRequest:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF apiVersion: cluster.gdc.goog/v1 kind: UserClusterUpgradeRequest metadata: name: CLUSTER_NAME namespace: CLUSTER_NAMESPACE spec: clusterRef: name: CLUSTER_NAME targetVersion: TARGET_VERSION EOFSostituisci quanto segue:
MANAGEMENT_API_SERVER: il percorso del file kubeconfig del server API di gestione.CLUSTER_NAME: il nome del cluster Kubernetes di cui eseguire l'upgrade, ad esempiouser-vm-2.CLUSTER_NAMESPACE: lo spazio dei nomi del cluster Kubernetes. Per i cluster condivisi, utilizza lo spazio dei nomiplatform. Per i cluster standard, utilizza lo spazio dei nomi del progetto del cluster.TARGET_VERSION: la versione di destinazione per l'upgrade identificata nel passaggio precedente, ad esempio1.30.1000-gke.85.
Il tempo medio di upgrade di un cluster Kubernetes è di circa 20 minuti.
Verifica l'upgrade del cluster monitorando la risorsa
UserClusterUpgradeRequest:kubectl --kubeconfig MANAGEMENT_API_SERVER \ describe userclusterupgraderequest CLUSTER_NAME \ -n CLUSTER_NAMESPACESostituisci quanto segue:
MANAGEMENT_API_SERVER: il percorso del file kubeconfig del server API di gestione.CLUSTER_NAME: il nome del cluster Kubernetes di cui eseguire l'upgrade, ad esempiouser-vm-2.CLUSTER_NAMESPACE: lo spazio dei nomi del cluster Kubernetes. Per i cluster condivisi, utilizza lo spazio dei nomiplatform. Per i cluster standard, utilizza lo spazio dei nomi del progetto del cluster.
Esamina la sezione
Specdell'output. ContieneCurrent VersioneTarget Version. L'upgrade è ancora in corso seCurrent VersioneTarget Versionsono diversi.Spec: ... Current Version: 1.29.500-gke.60 Target Version: 1.30.1000-gke.85 Status: Conditions: - Message: Upgrade is in progress Reason: UpgradeInProgress Status: "False" Type: SucceededL'upgrade è completo e riuscito quando la condizione
Succeededha lo statoTrueeCurrent Versioncorrisponde aTarget Version.Se la condizione
Succeededha lo statoFalse, l'upgrade non è riuscito. Se riscontri errori relativi all'upgrade del cluster Kubernetes, contatta il gruppo di operatori dell'infrastruttura per ulteriore assistenza.
Verifica lo stato del cluster dopo l'upgrade
Dopo l'upgrade del cluster Kubernetes, verifica che il cluster e i suoi componenti siano integri controllando lo stato della risorsa Cluster:
Visualizza i campi
status.conditionsestatus.componentsConditionsdella risorsaCluster:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get cluster CLUSTER_NAME \ -n CLUSTER_NAMESPACE -o yamlSostituisci quanto segue:
MANAGEMENT_API_SERVER: il percorso del file kubeconfig del server API di gestione.CLUSTER_NAME: il nome del cluster Kubernetes, ad esempiouser-vm-2.CLUSTER_NAMESPACE: lo spazio dei nomi del cluster Kubernetes. Per i cluster condivisi, utilizza lo spazio dei nomiplatform. Per i cluster standard, utilizza lo spazio dei nomi del progetto del cluster.
Nell'output, verifica quanto segue nella sezione
status:- In
status.conditions, verifica che la condizioneReadyabbia unstatusdiTruee che la condizioneReconcilingabbia unstatusdiFalse. - In
status.componentsConditions, verifica che la condizioneReadyabbia unstatusdiTrue, che la condizioneReconcilingabbia unstatusdiFalsee che nessuna condizione mostri unreasondiReconciliationErroroReconciling.
Per i cluster Kubernetes con tre nodi del control plane e tre nodi worker, l'upgrade richiede circa 20 minuti. Se il cluster o i suoi componenti rimangono in uno stato
Reconcilingdopo 20 minuti o se una condizione mostraReconciliationError, contatta il gruppo di operatori dell'infrastruttura per ricevere ulteriore assistenza.- In