Share via


Aggiornare un cluster Nexus Kubernetes dell'operatore di Azure

Questo articolo fornisce istruzioni su come aggiornare un cluster Operator Nexus Kubernetes per ottenere le funzionalità e gli aggiornamenti della sicurezza più recenti. Parte del ciclo di vita del cluster Kubernetes prevede l'esecuzione di aggiornamenti periodici alla versione più recente di Kubernetes. È importante applicare le versioni di sicurezza più recenti o eseguire l'aggiornamento per ottenere le funzionalità più recenti. Questo articolo illustra come verificare la presenza, la configurazione e l'applicazione degli aggiornamenti al cluster Kubernetes.

Limiti

  • Il processo di aggiornamento del cluster è un approccio con scalabilità orizzontale, vale a dire che viene aggiunto almeno un nodo aggiuntivo (o il numero di nodi configurati in max surge). Se non è disponibile una capacità sufficiente, l'aggiornamento non riesce.
  • Quando diventano disponibili nuove versioni di Kubernetes, i cluster tenant non subiranno aggiornamenti automatici. Gli utenti devono avviare l'aggiornamento quando tutte le funzioni di rete nel cluster sono pronte per supportare la nuova versione di Kubernetes. Per altre informazioni, vedere Aggiornare il cluster.
  • Operator Nexus offre aggiornamenti a livello di cluster, garantendo la coerenza tra tutti i pool di nodi. L'aggiornamento di un pool a nodo singolo non è supportato. Inoltre, l'immagine del nodo viene aggiornata come parte dell'aggiornamento del cluster quando è disponibile una nuova versione.
  • Le personalizzazioni apportate ai nodi dell'agente andranno perse durante gli aggiornamenti del cluster. È consigliabile inserire queste personalizzazioni in DaemonSet anziché apportare modifiche manuali alla configurazione del nodo per conservarle dopo l'aggiornamento.
  • Le modifiche apportate alle configurazioni di componenti aggiuntivi di base vengono ripristinate nella configurazione predefinita dell'addon come parte del processo di aggiornamento del cluster. Evitare di personalizzare la configurazione del componente aggiuntivo (ad esempio, Calico e così via) per evitare potenziali errori di aggiornamento. Se il ripristino della configurazione del componente aggiuntivo rileva problemi, potrebbe causare errori di aggiornamento.
  • Quando si aggiorna il cluster Operator Nexus Kubernetes, non è possibile ignorare le versioni secondarie di Kubernetes. È necessario eseguire tutti gli aggiornamenti in sequenza in base al numero di versione principale. Ad esempio, gli aggiornamenti compresi tra 1.14.x ->1.15.x o 1.15.x ->1.16.x sono consentiti, ma 1.14.x ->1.16.x non è consentito. Se la versione è dietro più di una versione principale, è necessario eseguire più aggiornamenti sequenziali.
  • I valori max surge devono essere impostati durante la creazione del cluster. Non è possibile modificare i valori max surge dopo la creazione del cluster. Per altre informazioni, vedere upgradeSettingsCreare un cluster Nexus Kubernetes dell'operatore di Azure.

Prerequisiti

  • Un cluster Nexus Kubernetes dell'operatore di Azure distribuito in un gruppo di risorse nella sottoscrizione di Azure.
  • Se si usa l'interfaccia della riga di comando di Azure, questo articolo richiede l'esecuzione della versione più recente dell'interfaccia della riga di comando di Azure. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
  • Comprendere il concetto di bundle di versione. Per altre informazioni, vedere Bundle di versioni di Nexus Kubernetes.

Verificare la disponibilità di aggiornamenti

Verificare quali versioni di Kubernetes sono disponibili per il cluster seguendo questa procedura:

Utilizzare l'interfaccia della riga di comando di Azure

Il comando seguente dell'interfaccia della riga di comando di Azure restituisce gli aggiornamenti disponibili per il cluster:

az networkcloud kubernetescluster show --name <NexusK8sClusterName> --resource-group <ResourceGroup> --output json --query availableUpgrades

Output di esempio:

[
  {
    "availabilityLifecycle": "GenerallyAvailable",
    "version": "v1.25.4-4"
  },
  {
    "availabilityLifecycle": "GenerallyAvailable",
    "version": "v1.25.6-1"
  },
  {
    "availabilityLifecycle": "GenerallyAvailable",
    "version": "v1.26.3-1"
  }
]

Usare il portale di Azure

  1. Accedi al portale di Azure.
  2. Passare al cluster Operator Nexus Kubernetes.
  3. In Panoramica selezionare la scheda Aggiornamenti disponibili .

Screenshot of available upgrades.

Scegliere una versione a cui eseguire l'aggiornamento

L'output dell'aggiornamento disponibile indica che sono disponibili più versioni tra cui scegliere per l'aggiornamento. In questo scenario specifico, il cluster corrente funziona sulla versione v1.25.4-3. Di conseguenza, le opzioni di aggiornamento disponibili includono v1.25.4-4 e la versione v1.25.6-1. patch più recente, inoltre, è disponibile anche una nuova versione secondaria.

È possibile eseguire l'aggiornamento a una delle versioni disponibili. Tuttavia, il corso consigliato consiste nell'eseguire l'aggiornamento alla versione più recente disponibile major-minor-patch-versionbundle .

Nota

Il formato di input per la versione è major.minor.patch o major.minor.patch-versionbundle. L'input della versione deve essere una delle versioni di aggiornamento disponibili. Ad esempio, se la versione corrente del cluster è 1.1.1-1, gli input di versione validi sono 1.1.1-2 o 1.1.1-x. Mentre 1.1.1 è un formato valido, non attiverà alcun aggiornamento perché la versione corrente è già 1.1.1. Per avviare un aggiornamento, è possibile specificare la versione completa con il bundle di versione, ad esempio 1.1.1-2. Tuttavia, 1.1.2 e 1.2.x sono un input valido e useranno il bundle di versione più recente disponibile per 1.1.2 o 1.2.x.

Aggiornare il cluster

Durante il processo di aggiornamento del cluster, Operator Nexus esegue le operazioni seguenti:

  • Aggiungere un nuovo nodo del piano di controllo con la versione di Kubernetes specificata al cluster.
  • Dopo l'aggiunta del nuovo nodo, il blocco e lo svuotamento di uno dei nodi del piano di controllo precedente, assicurandosi che i carichi di lavoro in esecuzione vengano spostati normalmente in altri nodi del piano di controllo integro.
  • Dopo che il nodo del piano di controllo precedente è stato svuotato, viene rimosso e viene aggiunto un nuovo nodo del piano di controllo al cluster.
  • Questo processo viene ripetuto fino a quando non vengono aggiornati tutti i nodi del piano di controllo nel cluster.
  • Per ogni pool di agenti nel cluster, aggiungere un nuovo nodo di lavoro (o tutti i nodi configurati in max surge) con la versione di Kubernetes specificata. Più pool di agenti vengono aggiornati contemporaneamente.
  • Limitare e svuotare uno dei nodi di lavoro precedenti per ridurre al minimo le interruzioni per l'esecuzione delle applicazioni. Se si usa max surge, viene bloccato e svuotato il numero di nodi di lavoro contemporaneamente al numero di nodi del buffer specificato.
  • Dopo che il nodo di lavoro precedente è stato svuotato, viene rimosso e viene aggiunto un nuovo nodo di lavoro con la nuova versione di Kubernetes al cluster (o tutti i nodi configurati in max surge)
  • Questo processo viene ripetuto fino a quando non vengono aggiornati tutti i nodi di lavoro nel cluster.

Importante

Assicurarsi che qualsiasi PodDisruptionBudgets (PDB) consenta lo spostamento di almeno una replica pod alla volta; in caso contrario, l'operazione di svuotamento/rimozione avrà esito negativo. Se l'operazione di svuotamento non riesce, l'operazione di aggiornamento avrà esito negativo, per assicurarsi che le applicazioni non vengano interrotte. Correggere ciò che ha causato l'arresto dell'operazione ,ad esempio PDB non corretti, mancanza di quota e così via, e riprovare l'operazione.

  1. Aggiornare il cluster usando il networkcloud kubernetescluster update comando .
az networkcloud kubernetescluster update --name myNexusK8sCluster --resource-group myResourceGroup --kubernetes-version v1.26.3
  1. Verificare che l'aggiornamento sia riuscito usando il show comando .
az networkcloud kubernetescluster show --name myNexusK8sCluster --resource-group myResourceGroup --output json --query kubernetesVersion

L'output di esempio seguente mostra che il cluster esegue ora v1.26.3:

"v1.26.3"
  1. Assicurarsi che il cluster sia integro.
az networkcloud kubernetescluster show --name myNexusK8sCluster --resource-group myResourceGroup --output table

L'output di esempio seguente mostra che il cluster è integro:

Name                 ResourceGroup          ProvisioningState    DetailedStatus    DetailedStatusMessage             Location
------------------   ---------------------  -------------------  ----------------  --------------------------------  --------------
myNexusK8sCluster    myResourceGroup        Succeeded            Available         Cluster is operational and ready  southcentralus

Personalizzare l'aggiornamento dell'aumento del nodo

Per impostazione predefinita, Operator Nexus configura gli aggiornamenti per l'aumento con un nodo di lavoro aggiuntivo. Un valore predefinito di uno per le impostazioni di max surge consente a Operator Nexus di ridurre al minimo l'interruzione del carico di lavoro creando un nodo aggiuntivo prima del blocco/svuotamento delle applicazioni esistenti per sostituire un nodo con controllo delle versioni precedente. Il valore max surge può essere personalizzato per ogni pool di nodi per consentire un compromesso tra la velocità di aggiornamento e l'interruzione dell'aggiornamento. Quando si aumenta il valore max surge, il processo di aggiornamento viene completato più velocemente. Se si imposta un valore elevato per l'aumento massimo, è possibile che si verifichino interruzioni durante il processo di aggiornamento.

Ad esempio, un valore massimo di picco pari al 100% fornisce il processo di aggiornamento più rapido possibile (raddoppiando il numero di nodi), ma comporta anche lo svuotamento simultaneo di tutti i nodi del pool di nodi. È possibile usare un valore superiore, ad esempio questo per gli ambienti di test. Per i pool di nodi di produzione, è consigliabile impostare max_surge del 33%.

L'API accetta valori interi e un valore percentuale per max surge. Un numero intero, ad esempio 5, indica cinque nodi aggiuntivi da aumentare. Un valore pari al 50% indica un valore di aumento della metà del numero di nodi corrente nel pool. I valori massimi di percentuale di aumento possono essere minimo dell'1% e un massimo del 100%. Un valore percentuale viene arrotondato per errotondare il numero di nodi più vicino. Se il valore max surge è superiore al numero necessario di nodi da aggiornare, viene usato il numero di nodi da aggiornare per il valore max surge.

Durante un aggiornamento, il valore max surge può essere minimo 1 e un valore massimo uguale al numero di nodi nel pool di nodi. È possibile impostare valori più grandi, ma il numero massimo di nodi usati per max surge non è superiore al numero di nodi nel pool al momento dell'aggiornamento.

Importante

I carichi di lavoro Kubernetes standard passano in modo nativo ai nuovi nodi quando vengono svuotati dai nodi in fase di interruzione.The standard Kubernetes workloads cyclely to the new nodes when they are drained from the nodes being down down. Tenere presente che il servizio Operator Nexus Kubernetes non può promettere i carichi di lavoro per i comportamenti kubernetes non standard.

Passaggi successivi

  • Altre informazioni sui bundle di versioni di Nexus Kubernetes.