Upgrade dei nodi gestiti a Kubernetes versione 1.35 (o successiva)
Scopri come eseguire l'upgrade dei nodi gestiti che attualmente utilizzano un'immagine OKE OL7, un'immagine della piattaforma OL7 o un'immagine personalizzata basata su un'immagine OL7 per eseguire Kubernetes versione 1.35 (o successiva) e OL8, utilizzando Kubernetes Engine (OKE).
Questa sezione si applica solo ai nodi gestiti. Per informazioni sull'upgrade dei nodi autogestiti, vedere Aggiornamento dei nodi autogestiti a una versione Kubernetes più recente sostituendo un nodo autogestito esistente.
A partire da Kubernetes versione 1.35, Kubernetes richiede cgroups v2 per la gestione delle risorse dei container.
Control Groups (cgroup) è una funzione del kernel Linux che fornisce un meccanismo per la gestione e il controllo dell'allocazione delle risorse per processi o gruppi di processi. I gruppi di controllo versione 2 (cgroups v2) forniscono un'unica gerarchia di gruppi di controllo su cui vengono attivati tutti i controller delle risorse. In questa gerarchia è possibile coordinare l'uso delle risorse tra controller di risorse diversi.
Oracle Linux 7 (OL7) supporta i cgroup v1, ma non supporta i cgroup v2. Oracle Linux 8 (OL8) e versioni successive supportano sia cgroups v1 che cgroups v2, ma cgroups v2 non è sempre abilitato per impostazione predefinita in OL8.
In sintesi, Kubernetes versione 1.35 richiede pertanto OL8 (o versione successiva) con cgroups v2 abilitati.
Cgroups v2 è abilitato per impostazione predefinita nelle immagini OKE OL8 con un numero di build pari o superiore a 1367. Tuttavia, nelle immagini OKE OL8 con un numero di build inferiore a 1367 (e nelle immagini della piattaforma OL8), cgroups v1 è abilitato per impostazione predefinita.
Per i nodi di lavoro nei cluster che eseguono Kubernetes versione 1.35 (e successive), Kubernetes Engine supporta le immagini riportate di seguito.
- Immagini OKE OL8 e immagini personalizzate basate su immagini OKE OL8 con numero di build uguale o superiore a 1367.
- Immagini OKE OL8 e immagini personalizzate basate su immagini OKE OL8 con un numero di build inferiore a 1367, ma solo se si abilita cgroups v2 (vedere Abilitazione di Cgroups v2 su OL8 nodi di lavoro mediante immagini personalizzate).
- Immagini personalizzate basate sulle immagini della piattaforma OL8, ma solo se si abilitano i cgroup v2 (vedere Abilitazione dei Cgroup v2 su OL8 nodi di lavoro mediante immagini personalizzate).
Tenere presente che le immagini seguenti non sono supportate con Kubernetes versione 1.35:
- Le immagini OKE OL7 non sono supportate.
- Le immagini della piattaforma (immagini della piattaforma OL7 e immagini della piattaforma OL8) non sono supportate.
- Le immagini personalizzate basate sulle immagini OKE OL7 non sono supportate.
- Le immagini personalizzate basate sulle immagini della piattaforma OL7 non sono supportate.
Quando si esegue l'upgrade dei nodi gestiti che attualmente utilizzano un'immagine OL8 a Kubernetes versione 1.35 (e successive), tenere presente quanto riportato di seguito.
- È possibile aggiornare i nodi gestiti che attualmente utilizzano un'immagine OL8 OKE (o un'immagine personalizzata basata su un'immagine OL8 OKE) con un numero di build inferiore a 1367, eseguendo un aggiornamento in loco e specificando un'immagine OL8 OKE con un numero di build uguale o superiore a 1367.
- È possibile aggiornare i nodi gestiti che attualmente utilizzano un'immagine della piattaforma OL8 eseguendo un aggiornamento in loco e specificando un'immagine OL8 OKE con un numero di build pari o superiore a 1367.
- È possibile eseguire upgrade in loco dei nodi gestiti che attualmente utilizzano un'immagine OL8, indipendentemente dal fatto che i kernel Linux delle istanze di computazione che ospitano i nodi abbiano già abilitato cgroups v2.
- Per istruzioni sull'esecuzione di upgrade sul posto, vedere Aggiornamento dei nodi gestiti a una versione Kubernetes più recente.
Per eseguire l'upgrade dei nodi gestiti che attualmente utilizzano un'immagine OL7 OKE, un'immagine della piattaforma OL7 o un'immagine personalizzata basata su un'immagine OL7 per eseguire Kubernetes versione 1.35 (o successiva), eseguire un upgrade in loco per sostituire il pool di nodi esistente con un nuovo pool di nodi:
-
Identificare i pool di nodi esistenti che utilizzano OL7, utilizzando la console o l'interfaccia CLI come indicato di seguito.
-
Uso della console:
- Nella pagina della lista Cluster selezionare il nome del cluster contenente i pool di nodi che si desidera visualizzare. Se è necessaria assistenza per trovare la pagina della lista o il cluster, vedere Elenca cluster.
- Selezionare la scheda Pool di nodi.
- Utilizzare la colonna Nome immagine per identificare i pool di nodi che utilizzano immagini
Oracle-Linux-7.9.x.
-
Uso dell'interfaccia CLI: identificare i pool di nodi esistenti che utilizzano OL7 immettendo un comando simile al seguente:
oci ce node-pool list --cluster-id <cluster-ocid> --compartment-id <compartment-ocid> --query 'data[*].{name:"name", image:"node-source"."image-id"}'
-
-
Creare un pool di nodi sostitutivo che utilizzi un'immagine OL8 utilizzando la console o l'interfaccia CLI come indicato di seguito.
-
Uso della console:
- Nella scheda Pool di nodi, selezionare Aggiungi pool di nodi e immettere i dettagli per il nuovo pool di nodi.
- Selezionare un'immagine nodo di lavoro OKE in base a un'immagine
Oracle Linux 8.x. - Configurare il nuovo pool di nodi con la stessa forma, dimensione e posizione del pool di nodi OL7.
- Selezionare Crea.
-
Uso dell'interfaccia CLI: creare un pool di nodi sostitutivi che utilizzi un'immagine OL8 immettendo un comando simile al seguente:
oci ce node-pool create --cluster-id <cluster-ocid> --compartment-id <compartment-ocid> --name "nodepool-ol8-workers" --node-shape "VM.Standard.E4.Flex" --kubernetes-version "v1.35.0" --node-image-id <ol8-image-ocid> --size 3 --placement-configs '[{"availabilityDomain":"AD-1","subnetId":"<subnet-ocid>"}]'
-
-
Cordonare i nodi OL7:
-
Ottenere i nomi dei nodi OL7 immettendo:
kubectl get nodes -l node.kubernetes.io/os=ol7 -
Cordonare ogni nodo inserendo:
kubectl cordon <node-name>
-
-
Eliminare i nodi OL7 per eseguire la migrazione estesa dei carichi di lavoro:
- Eliminare ogni nodo OL7 immettendo:
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data --force - Verificare che i carichi di lavoro siano stati ripianificati sui nuovi nodi immettendo:
kubectl get pods -A -o wide | grep <node-name>
- Eliminare ogni nodo OL7 immettendo:
-
Eliminare il pool di nodi OL7 utilizzando la console o l'interfaccia CLI, come indicato di seguito.
-
Uso della console:
- Nella scheda Pool di nodi, selezionare Elimina pool di nodi dal menu Azioni (tre punti) accanto al pool di nodi OL7.
- Fare clic su Elimina.
- Confermare che si desidera eliminare il pool di nodi e selezionare Elimina.
-
Uso dell'interfaccia CLI: eliminare il pool di nodi OL7:
oci ce node-pool delete --node-pool-id <ol7-nodepool-ocid>
-
-
Eseguire l'upgrade del cluster (ad esempio, a Kubernetes versione 1.35):
oci ce cluster update --cluster-id <cluster-ocid> --kubernetes-version "v1.35.0"
Per ulteriori informazioni, vedere Esecuzione di un upgrade Kubernetes del nodo gestito non in loco sostituendo un pool di nodi esistente con un nuovo pool di nodi.