Upgrade dei cluster alle versioni Kubernetes più recenti
Scopri i diversi modi per eseguire l'upgrade dei nodi del piano di controllo e dei nodi di lavoro alle versioni Kubernetes più recenti utilizzando Kubernetes Engine (OKE).
Dopo che è stata rilasciata una nuova versione di Kubernetes e quando Kubernetes Engine supporta la nuova versione, è possibile eseguire l'upgrade della versione Kubernetes in esecuzione sui nodi del piano di controllo e sui nodi di lavoro in un cluster.
I nodi del piano di controllo e i nodi di lavoro che costituiscono il cluster possono eseguire versioni diverse di Kubernetes, a condizione che si segua il criterio di supporto dell'errore della versione Kubernetes descritto nella documentazione di Kubernetes.
I nodi del piano di controllo e i nodi di lavoro vengono aggiornati in modo diverso:
-
Aggiornamento dei nodi del piano di controllo: è possibile aggiornare i nodi del piano di controllo eseguendo l'upgrade del cluster e specificando una versione Kubernetes più recente per il cluster. Vengono aggiornati i nodi del piano di controllo che eseguono versioni precedenti di Kubernetes. Poiché Kubernetes Engine distribuisce il piano di controllo Kubernetes su più nodi del piano di controllo gestiti da Oracle per garantire l'alta disponibilità (distribuita su diversi domini di disponibilità in un'area in cui è supportato), puoi eseguire l'upgrade della versione Kubernetes in esecuzione sui nodi del piano di controllo senza tempi di inattività.
Dopo aver eseguito l'upgrade dei nodi del piano di controllo a una nuova versione di Kubernetes, è possibile creare in seguito nuovi pool di nodi con nodi di lavoro che eseguono la versione più recente. In alternativa, è possibile continuare a creare nuovi pool di nodi con nodi di lavoro che eseguono versioni precedenti di Kubernetes (a condizione che tali versioni precedenti siano compatibili con la versione Kubernetes in esecuzione sui nodi del piano di controllo).
Per ulteriori informazioni sull'upgrade del nodo del piano di controllo, vedere Aggiornamento della versione Kubernetes sui nodi del piano di controllo in un cluster.
- Aggiornamento dei nodi del lavoratore: i nodi gestiti, i nodi autogestiti e i nodi virtuali vengono aggiornati in modo diverso.
- Aggiornamento dei nodi gestiti: i nodi di lavoro vengono aggiornati in uno dei modi riportati di seguito.
- Eseguendo un upgrade 'in loco' di un pool di nodi nel cluster, specificando una versione Kubernetes più recente per il pool di nodi esistente, quindi ciclando i nodi per sostituire i volumi di avvio delle istanze che ospitano i nodi di lavoro esistenti o per arrestare e sostituire i nodi di lavoro esistenti.
- Effettuando un aggiornamento 'in loco' di un pool di nodi nel cluster, specificando una versione Kubernetes più recente per il pool di nodi esistente, quindi sostituendo manualmente ogni nodo di lavoro esistente con un nuovo nodo di lavoro.
- Eseguire un upgrade 'out-of-place' di un pool di nodi nel cluster, sostituendo il pool di nodi originale con un nuovo pool di nodi per il quale è stata specificata una versione Kubernetes più recente.
Per ulteriori informazioni sull'upgrade dei nodi gestiti, vedere Upgrading Managed Nodes to a Newer Kubernetes Version.
- Upgrade dei nodi autogestiti: l'upgrade dei nodi autogestiti viene eseguito sostituendo un nodo autogestito esistente con un nuovo nodo autogestito ospitato su una nuova istanza di computazione. Per ulteriori informazioni sull'upgrade dei nodi autogestiti, vedere Aggiornamento dei nodi autogestiti a una versione Kubernetes più recente sostituendo un nodo autogestito esistente.
- Aggiornamento dei nodi virtuali: è possibile aggiornare i nodi virtuali eseguendo l'upgrade dei nodi del piano di controllo in un cluster. Quando esegui l'upgrade della versione Kubernetes in esecuzione sui nodi del piano di controllo, anche i nodi virtuali in ogni pool di nodi virtuali del cluster vengono aggiornati automaticamente alla versione Kubernetes specificata. Per ulteriori informazioni sull'upgrade dei nodi virtuali, vedere Upgrading Virtual Nodes to a Newer Kubernetes Version.
- Aggiornamento dei nodi gestiti: i nodi di lavoro vengono aggiornati in uno dei modi riportati di seguito.
Per ulteriori informazioni sulle versioni Kubernetes attualmente e in precedenza supportate da Kubernetes Engine, consulta la sezione relativa alle versioni supportate di Kubernetes.
Note sull'aggiornamento dei cluster
Tenere presente quanto riportato di seguito durante l'aggiornamento dei cluster.
- Kubernetes Engine esegue l'upgrade solo della versione Kubernetes in esecuzione sui nodi del piano di controllo quando si avvia l'operazione di upgrade in modo esplicito.
- Dopo aver eseguito l'upgrade dei nodi del piano di controllo a una versione più recente di Kubernetes, non è possibile eseguire il downgrade dei nodi del piano di controllo a una versione precedente di Kubernetes.
- Prima di eseguire l'upgrade della versione di Kubernetes in esecuzione sui nodi del piano di controllo, è responsabilità dell'utente verificare che le applicazioni distribuite nel cluster siano compatibili con la nuova versione di Kubernetes. Ad esempio, prima di eseguire l'upgrade del cluster esistente, è possibile creare un nuovo cluster separato con la nuova versione di Kubernetes per eseguire il test delle applicazioni.
- Le versioni di Kubernetes in esecuzione sui nodi del piano di controllo e sui nodi di lavoro devono essere compatibili. Cioè, la versione Kubernetes sui nodi del piano di controllo non deve essere più di due versioni secondarie (o tre versioni secondarie, a partire da Kubernetes versione 1.28) prima della versione Kubernetes sui nodi di lavoro. Vedere il criterio di supporto per disallineamento della versione Kubernetes descritto nella documentazione di Kubernetes.
- Se la versione di Kubernetes attualmente in esecuzione sui nodi del piano di controllo è più di una versione dietro la versione supportata più recente, è possibile scegliere le versioni a cui eseguire l'upgrade. Se si desidera eseguire l'upgrade a una versione di Kubernetes che precede di più la versione attualmente in esecuzione sui nodi del piano di controllo, è necessario eseguire l'upgrade a ogni versione intermedia in sequenza senza saltare le versioni (come descritto nella documentazione di Kubernetes).
-
Per eseguire correttamente l'upgrade dei nodi del piano di controllo in un cluster, il servizio dashboard Kubernetes deve essere di tipo ClusterIP. Se il servizio del dashboard Kubernetes non è di tipo ClusterIP (ad esempio, se il servizio è di tipo NodePort), l'aggiornamento non riuscirà. In questo caso, modificare il tipo del servizio dashboard Kubernetes in ClusterIP (ad esempio, immettendo
kubectl -n kube-system edit service kubernetes-dashboard
e modificando il tipo). - Prima di Kubernetes versione 1.14, Kubernetes Engine creava cluster con kube-dns come server DNS. Tuttavia, da Kubernetes versione 1.14 in poi, Kubernetes Engine crea cluster con CoreDNS come server DNS. Quando si aggiorna un cluster creato da Kubernetes Engine da una versione precedente a Kubernetes 1.14 o versione successiva, il server kube-dns del cluster viene sostituito automaticamente con il server CoreDNS. Tenere presente che se si è personalizzato il comportamento di kube-dns utilizzando l'originale kube-dns ConfigMap, tali personalizzazioni non vengono riportate all'indirizzo CoreDNS ConfigMap. Sarà necessario creare e applicare un nuovo file ConfigMap contenente le personalizzazioni per eseguire l'override delle impostazioni nel file core CoreDNS. Per ulteriori informazioni sull'aggiornamento a CoreDNS, vedere Configurazione dei server DNS per i cluster Kubernetes.