Aggiornamento di nodi autogestiti in una versione più recente di Kubernetes mediante la sostituzione di un nodo autogestito esistente

Scopri come eseguire l'upgrade della versione di Kubernetes in esecuzione su un nodo autogestito in un cluster avanzato creato con Kubernetes Engine, sostituendo il nodo con un nuovo nodo autogestito.

Nota

Questa sezione si applica solo ai nodi autogestiti. Per informazioni sull'upgrade dei nodi gestiti, vedere Upgrading Managed Nodes to a Newer Kubernetes Version.

Puoi 'eseguire l'upgrade' della versione di Kubernetes in esecuzione su un nodo autogestito sostituendo il nodo autogestito originale con un nuovo nodo autogestito che esegue la versione più recente di Kubernetes. Dopo aver eliminato il nodo autogestito originale per impedire l'avvio dei nuovi pod e l'eliminazione dei pod esistenti, è possibile terminare l'istanza di computazione che ospita il nodo autogestito originale.

Tenere presente che quando si crea il nuovo nodo autogestito, è responsabilità dell'utente specificare un'immagine contenente una versione Kubernetes conforme al criterio di supporto per lo sfasamento della versione Kubernetes descritto nella documentazione di Kubernetes. Kubernetes Engine non controlla che la versione Kubernetes nell'immagine specificata per il nuovo nodo autogestito sia compatibile con la versione Kubernetes in esecuzione sui nodi del piano di controllo del cluster. Vedere Requisiti cluster.

Per eseguire l'upgrade della versione di Kubernetes in esecuzione su un nodo autogestito sostituendo il nodo autogestito originale con un nuovo nodo autogestito:

  1. Creare una nuova istanza di computazione per ospitare il nuovo nodo autogestito:
    1. Aprire il menu di navigazione e selezionare Computazione. In Computazione, selezionare Istanze.
    2. Segui le istruzioni riportate nella documentazione del servizio di computazione per creare una nuova istanza di computazione. Tenere presente che devono esistere criteri appropriati per consentire alla nuova istanza di computazione di entrare nel cluster avanzato. Vedere Creazione di un gruppo dinamico e di un criterio per i nodi autogestiti.
    3. Nella sezione Immagine e forma, selezionare Modifica immagine.
    4. Selezionare Immagini personali, selezionare l'opzione OCID immagine, quindi immettere l'OCID dell'immagine OKE Oracle Linux 7 (OL7) o Oracle Linux 8 (OL8) su cui è in esecuzione la versione più recente di Kubernetes. Vedere Requisiti dell'immagine.
    5. Selezionare Mostra opzioni avanzate e, nella scheda Gestione, selezionare l'opzione Incolla script di inizializzazione cloud.
    6. Copiare e incollare lo script cloud-init contenente l'endpoint privato API Kubernetes e il certificato CA con codifica base64 nel campo Script Cloud-init. Vedere Creazione di script cloud-init per nodi autogestiti.
    7. Selezionare Crea per creare l'istanza di computazione in cui ospitare il nodo autogestito.

    Quando viene creata, l'istanza di computazione viene aggiunta come nodo autogestito al cluster con l'endpoint API Kubernetes specificato.

  2. Verificare che il nodo autogestito sia stato aggiunto al cluster Kubernetes e confermare lo stato di prontezza del nodo immettendo:
    kubectl get nodes

    Ad esempio:

    kubectl get nodes
    
    NAME           STATUS   ROLES    AGE   VERSION
    10.0.103.170   Ready    <none>   40m   v1.25.4
  3. Verificare che le etichette siano state aggiunte al nodo e impostarle come previsto immettendo:
    kubectl get node <node-name> -o json | jq '.metadata.labels'

    Esempio

    kubectl get node 10.0.103.170 -o json | jq '.metadata.labels'
    
    {
    ...
    "displayName": "oke-self-managed-node",
    "oci.oraclecloud.com/node.info.byon": "true",
    ...
    }
  4. Se al nodo autogestito originale sono collegate etichette e tali etichette vengono utilizzate dai selettori, ad esempio per determinare i nodi su cui eseguire i pod, utilizzare il comando kubectl label nodes per collegare le stesse etichette al nuovo nodo autogestito. Vedere Assegnazione dei pod ai nodi nella documentazione di Kubernetes.
  5. Impedisci ai nuovi pod di avviare ed eliminare i pod esistenti sul nodo autogestito originale immettendo:

    kubectl drain <node_name>

    Ulteriori informazioni

    Consigliato: sfrutta i budget di interruzione dei pod appropriati per la tua applicazione per garantire che durante l'operazione di rimozione sia in esecuzione un numero sufficiente di pod di replica.

  6. Dopo aver eliminato il nodo autogestito originale e aver eseguito i pod nel nuovo nodo autogestito, arrestare l'istanza di computazione che ospita il nodo autogestito originale. Vedere Arresto di un'istanza.