Aggiornamento di cluster, nodi di lavoro e componenti del cluster
Garantisci la sicurezza e il corretto funzionamento del tuo cluster aggiornando il nodo master, i nodi worker e i componenti del cluster nell'ordine corretto. L'aggiornamento fuori sequenza può causare errori dovuti a discrepanze tra le versioni o tempi di inattività imprevisti.
Eseguire gli aggiornamenti nel seguente ordine:
- Aggiornare il master del cluster.
- Aggiorna i tuoi nodi di lavoro — Classic, VPC o Satellite — a seconda del tipo di infrastruttura. Non sai quale modello hai? Nella console di IBM Cloud, fai clic sul tuo cluster e controlla il campo “Infrastruttura” nella scheda “Panoramica”: qui vengono visualizzate le opzioni “Classic”, “VPC ” o Satellite.
- Aggiornare i componenti del cluster, quali Fluentd e gli ALB di Ingress, se gestiti manualmente.
- Aggiornare i componenti aggiuntivi gestiti.
Aggiornamento del master
- Come faccio a sapere quando aggiornare il master?
- Ricevi una notifica nella console, negli annunci e nella CLI quando gli aggiornamenti sono disponibili. È inoltre possibile controllare periodicamente la pagina delle versioni supportate.
- Di quante versioni rispetto all'ultima può essere in ritardo il master?
- È possibile aggiornare il server API solo alla versione immediatamente successiva a quella attuale (
n+1). - I miei nodi di lavoro possono utilizzare una versione più recente rispetto al master?
- I nodi di lavoro non possono eseguire una versione di
major.minorKubernetes più recente rispetto a quella del master. Inoltre, i nodi di lavoro possono avere al massimo due versioni minori di ritardo rispetto alla versione master (n-2). Per prima cosa, aggiorna il tuo master all'ultima versione disponibile su Kubernetes. Poi, aggiorna i nodi di lavoro nel tuo cluster.
I nodi di lavoro possono eseguire versioni patch successive rispetto al master, ad esempio versioni patch specifiche per i nodi di lavoro per gli aggiornamenti di sicurezza.
- Come vengono applicati gli aggiornamenti delle patch?
- Per impostazione predefinita, gli aggiornamenti patch per il master vengono applicati automaticamente nel corso di diversi giorni, pertanto una versione della patch master potrebbe essere disponibile prima che venga applicata al tuo master.
L'automazione degli aggiornamenti ignora anche i cluster che si trovano in uno stato non integro o che hanno operazioni attualmente in corso. Occasionalmente, IBM potrebbe disabilitare gli aggiornamenti automatici per uno specifico fix pack
del master, ad esempio una patch che è necessaria solo se un master viene aggiornato da una versione secondaria a un'altra. In uno qualsiasi di questi casi, è possibile verificare le informazioni sulla versione disponibili all'indirizzo Kubernetes per valutare eventuali impatti e scegliere di utilizzare in tutta sicurezza il comando
ibmcloud ks cluster master updateautonomamente, senza attendere che venga applicato l'aggiornamento automatico.
A differenza del master, devi aggiornare i tuoi nodi di lavoro per ogni versione patch.
- Cosa succede durante l'aggiornamento del master?
- Il tuo master è altamente disponibile con tre pod master di replica. I pod master hanno un aggiornamento continuo, durante il quale solo un pod alla volta non è disponibile. Due istanze sono attive e in esecuzione in modo che tu possa accedere e modificare il cluster durante l'aggiornamento. I nodi di lavoro, le applicazioni e le risorse continuano ad essere in esecuzione.
- Posso ripristinare la versione precedente dell'aggiornamento?
- No, non è possibile ripristinare una versione precedente del cluster una volta completato il processo di aggiornamento. Assicurati di utilizzare un cluster di test e segui le istruzioni per risolvere i problemi potenziali prima di aggiornare il tuo master di produzione.
- Quale procedura devo seguire per aggiornare il master?
- Il seguente diagramma illustra il processo che puoi seguire per aggiornare il tuo master.
Passi per aggiornare il master cluster
Prima di iniziare, assicurati di disporre del ruolo di accesso alla piattaforma IAM "Operatore" o "Amministratore". Se non sei sicuro del tuo ruolo di accesso, vai su Gestisci → Accesso (IAM) → Utenti nella console di IBM Cloud oppure chiedi all'amministratore del tuo account.
Se è in corso una rotazione dei certificati dell'autorità di certificazione (CA), l'aggiornamento principale viene bloccato fino al completamento della rotazione. Prima di iniziare, verifica lo stato di eventuali rotazioni in corso.
Per aggiornare la versione principale o secondaria di Kubernetes:
-
Controlla le informazioni sulla versione di Kubernetes ed esegui eventuali aggiornamenti contrassegnati con "Update before master ".
-
Esaminare eventuali Kubernetes avvertenze utili, come ad esempio gli avvisi di obsolescenza.
-
Controllare i componenti aggiuntivi e i plug-in installati nel cluster per qualsiasi impatto che potrebbe essere causato dall'aggiornamento della versione del cluster.
-
Controllo dei componenti aggiuntivi
- Elenca i componenti aggiuntivi nel cluster.
ibmcloud ks cluster addon ls --cluster CLUSTER - Controlla la versione Kubernetes supportata per ogni componente aggiuntivo installato.
ibmcloud ks addon-versions - Se il componente aggiuntivo deve essere aggiornato per essere eseguito nella versione Kubernetes a cui vuoi aggiornare il tuo cluster, aggiorna il componente aggiuntivo.
- Elenca i componenti aggiuntivi nel cluster.
-
Verifica dei plug-in
- Nel catalogoHelm, trova i plug-in che hai installato nel tuo cluster.
- Dal menu laterale, espandere la sezione SOURCES & TAR FILE.
- Scarica e apri il codice sorgente.
- Controllare i file
README.mdoRELEASENOTES.mdper le versioni supportate. - Se il plug-in deve essere aggiornato per essere eseguito nella versione Kubernetes a cui vuoi aggiornare il tuo cluster, aggiorna il plug-in seguendo le istruzioni del plug - in.
-
-
Aggiorna il server API e i componenti master associati utilizzando la console IBM Cloud oppure eseguendo il comando CLI
ibmcloud ks cluster master update. -
Attendi alcuni minuti, quindi conferma che l'aggiornamento è stato completato. Controlla la versione del server API nel dashboard dei cluster IBM Cloud o esegui
ibmcloud ks cluster ls. -
Installa la versione della
kubectl cliche corrisponde alla versione del server API Kubernetes eseguita nel master. Kubernetes non supporta versioni client dikubectlche differiscono di due o più versioni rispetto alla versione server (n ± 2). Per aggiornare la configurazione locale, esegui il comandoibmcloud ks cluster config -c CLUSTER_NAME_OR_ID, quindi verifica conkubectl version --client.
Una volta completato l'aggiornamento del nodo master, aggiorna i nodi worker. Il metodo dipende dal tipo di infrastruttura in uso:
- Aggiornamento dei nodi worker classici : utilizza un aggiornamento graduale gestito da un file di controllo ( ConfigMap ) e dal comando
worker update. - Aggiornamento dei nodi di lavoro VPC — I nodi di lavoro VPC VSI e i nodi di lavoro VPC bare metal devono utilizzare
worker replace --update. La procedura di aggiornamento continuo “ ConfigMap ” non è ancora supportata per i nodi di lavoro VPC.
Aggiornamento dei nodi di lavoro classici
I nodi di lavoro dell'infrastruttura classica eseguono un aggiornamento progressivo in loco. Gli aggiornamenti sono gestiti da un file di configurazione ( Kubernetes ) ConfigMap che definisce il numero massimo di nodi che possono risultare non
disponibili contemporaneamente. Il comando ibmcloud ks worker update è supportato solo per i nodi di lavoro classici.
È possibile effettuare due tipi di aggiornamenti:
- Patch: applica le correzioni di sicurezza e gli aggiornamenti alla versione più recente della patch. Utilizza
ibmcloud ks worker reloadoibmcloud ks worker update. Entrambi i comandi aggiornano il nodo all'ultima versione della patch. Il comandoupdateapplica contemporaneamente anche eventuali aggiornamenti disponibili della versione dimajor.minorper allinearla alla versione master. - Major.minor: Aggiorna la versione di Kubernetes sul nodo worker in modo che corrisponda a quella del nodo master. I nodi di lavoro possono avere al massimo due versioni di ritardo rispetto al master (
n-2). Utilizza il comandoibmcloud ks worker update.
Per ulteriori informazioni, vedi Tipi di aggiornamento.
È buona norma ruotare i certificati CA ogni volta che si aggiornano i nodi worker, poiché la fase più lunga della rotazione dei certificati prevede la ricarica o la sostituzione dei nodi worker.
- Cosa succede alle mie app durante un aggiornamento?
- Le app in esecuzione sui nodi di lavoro aggiornati vengono riprogrammate su altri nodi di lavoro del cluster, compresi i nodi appartenenti a pool di lavoro diversi o i nodi di lavoro autonomi. Per evitare tempi di inattività, assicurati che il cluster disponga di capacità sufficiente per gestire il carico di lavoro prima di avviare l'aggiornamento.
- Come posso controllare il numero di nodi di lavoro che vengono disattivati contemporaneamente durante un aggiornamento o un ricaricamento?
- Utilizzare il parametro " Kubernetes " ( ConfigMap ) per impostare il numero massimo di nodi di lavoro che possono risultare non disponibili contemporaneamente. I nodi di lavoro sono identificati dalle rispettive etichette. È possibile utilizzare le etichette fornite d IBM e oppure etichette personalizzate. Se è necessario che tutti i nodi di lavoro rimangano disponibili, valuta la possibilità di ridimensionare il pool di nodi di lavoro o di aggiungere nodi di lavoro autonomi per aumentare temporaneamente la capacità prima dell'aggiornamento.
L' ConfigMap e controlla esclusivamente il comportamento degli aggiornamenti. Ciò non influisce sui ricaricamenti dei nodi di lavoro, che avvengono immediatamente quando richiesti.
- Cosa succede se decido di non definire una mappa di configurazione?
- Per impostazione predefinita, durante l'aggiornamento può risultare indisponibile al massimo il 20% di tutti i nodi di lavoro di ciascun cluster. È possibile sovrascrivere questo valore definendo un file di configurazione ( ConfigMap ) contenente
la voce "
defaultcheck.json".
Prerequisiti
Prima di aggiornare i nodi di lavoro dell'infrastruttura classica, completare i seguenti passaggi preliminari.
Durante l'aggiornamento di un nodo di lavoro, viene reinstallato il sistema operativo sul computer che ospita il nodo di lavoro e tutti i dati non memorizzati su un supporto di archiviazione persistente vengono eliminati definitivamente. Prima di iniziare, assicurati che tutti i dati che devi conservare siano archiviati al di fuori del nodo di lavoro.
Se nel cluster è installato un Portworx, è necessario aggiornare la configurazione di Portworx prima di aggiornare i nodi di lavoro.
Azioni da eseguire prima dell'aggiornamento (da completare in ordine)
- Consulta le informazioni sulla versione dell’ Kubernetes per conoscere le ultime patch di sicurezza e le modifiche necessarie.
- Apporta tutte le modifiche contrassegnate con " Aggiorna prima del master " o " Aggiorna dopo il master " nella guida alla preparazione della versione " Kubernetes ".
- Aggiornare il nodo master prima di aggiornare i nodi worker. La versione del nodo di lavoro non può essere superiore a quella del server API in esecuzione sul master.
- Accedi al tuo account. Se applicabile, specifica il gruppo di risorse appropriato. Imposta il contesto per il tuo cluster.
- Valuta la possibilità di aggiungere nodi di lavoro al tuo cluster per garantire una capacità aggiuntiva che consenta la riprogrammazione dei carichi di lavoro durante l'aggiornamento. Una volta completato l'aggiornamento, è possibile rimuovere i nodi in eccesso.
Autorizzazioni richieste
Assicurati di disporre del ruolo di accesso alla piattaforma IAM "Operatore" o "Amministratore". Se non sei sicuro del tuo ruolo di accesso, vai su Gestisci → Accesso (IAM) → Utenti nella console di IBM Cloud oppure chiedi all'amministratore del tuo account.
Aggiornamento dei nodi di lavoro classici nella CLI con una mappa di configurazione
Utilizza un file di aggiornamento ( ConfigMap ) per eseguire un aggiornamento progressivo dei tuoi nodi di lavoro classici. L' ConfigMap e consente di controllare il numero massimo di nodi che possono risultare non disponibili contemporaneamente, per zona o regione. Se la regola predefinita del 20% di indisponibilità è accettabile per il proprio cluster, è possibile saltare i passaggi 3 e 4 (creazione di un file ConfigMap ) e passare direttamente al passaggio 5 per applicare l'aggiornamento utilizzando il comportamento predefinito.
-
Completa i passi prerequisiti.
-
Elenca i nodi di lavoro e prendi nota del loro indirizzo IP privato.
ibmcloud ks worker ls --cluster CLUSTER -
Visualizza le etichette di un nodo di lavoro. Puoi trovare le etichette del nodo di lavoro nella sezione Labels del tuo output della CLI. Ogni etichetta è formata da un
NodeSelectorKeye da unNodeSelectorValue.kubectl describe node PRIVATE-WORKER-IPOutput di esempio
NAME: 10.184.58.3 Roles: <none> Labels: arch=amd64 beta.kubernetes.io/arch=amd64 beta.kubernetes.io/os=linux failure-domain.beta.kubernetes.io/region=us-south failure-domain.beta.kubernetes.io/zone=dal12 ibm-cloud.kubernetes.io/encrypted-docker-data=true ibm-cloud.kubernetes.io/iaas-provider=softlayer ibm-cloud.kubernetes.io/machine-type=u3c.2x4.encrypted kubernetes.io/hostname=10.123.45.3 privateVLAN=2299001 publicVLAN=2299012 Annotations: node.alpha.kubernetes.io/ttl=0 volumes.kubernetes.io/controller-managed-attach-detach=true CreationTimestamp: Tue, 03 Apr 2022 15:26:17 -0400 Taints: <none> Unschedulable: false -
Crea una mappa di configurazione e definisci le regole di non disponibilità per i tuoi nodi di lavoro. L' ConfigMap a supporta fino a 15 controlli con nome. Ogni controllo riguarda un insieme di nodi di lavoro in base all'etichetta e stabilisce la percentuale massima di tali nodi che possono risultare non disponibili contemporaneamente. L'esempio seguente mostra un controllo di zona (
zonecheck.json), un controllo di regione (regioncheck.json), un controllo di fallback predefinito (defaultcheck.json) e un modello per i controlli personalizzati. Per ogni controllo, scegli una delle etichette dei nodi di lavoro recuperate nel passaggio precedente per identificare i nodi di destinazione.Per ogni controllo, è possibile impostare un solo valore per
NodeSelectorKeyeNodeSelectorValue. Se vuoi impostare le regole per più di una regione, zona o altre etichette del nodo di lavoro, crea un nuovo controllo. È possibile definire fino a 15 controlli in una mappa di configurazione. Se aggiungi ulteriori controlli, solo un nodo di lavoro viene ricaricato alla volta finché non vengono aggiornati tutti i nodi di lavoro richiesti.Esempio
apiVersion: v1 kind: ConfigMap metadata: name: ibm-cluster-update-configuration namespace: kube-system data: drain_timeout_seconds: "120" zonecheck.json: | { "MaxUnavailablePercentage": 30, "NodeSelectorKey": "failure-domain.beta.kubernetes.io/zone", "NodeSelectorValue": "dal13" } regioncheck.json: | { "MaxUnavailablePercentage": 20, "NodeSelectorKey": "failure-domain.beta.kubernetes.io/region", "NodeSelectorValue": "us-south" } defaultcheck.json: | { "MaxUnavailablePercentage": 20 } <check_name>: | { "MaxUnavailablePercentage": <value_in_percentage>, "NodeSelectorKey": "<node_selector_key>", "NodeSelectorValue": "<node_selector_value>" }drain_timeout_seconds- Opzionale: il timeout, espresso in secondi, da attendere affinché il drenaggio venga completato. Lo svuotamento in sicurezza di un nodo di lavoro rimuove tutti i pod esistenti dal nodo di lavoro e ripianifica i pod su altri nodi di lavoro nel cluster. I valori accettati sono numeri interi compresi tra 1 e 180. Il valore predefinito è 30.
zonecheck.jsoneregioncheck.json- Due caselle di controllo che definiscono una regola per un insieme di nodi di lavoro identificabili tramite gli indirizzi
NodeSelectorKeyeNodeSelectorValuespecificati. L'zonecheck.jsone identifica i nodi di lavoro in base alla loro etichetta di zona, mentre l'regioncheck.jsone utilizza l'etichetta di regione aggiunta a ciascun nodo di lavoro durante il provisioning. Nell'esempio, il 30% di tutti i nodi di lavoro con etichetta di zona "dal13" e il 20% di tutti i nodi di lavoro presenti in "us-south" potrebbero risultare non disponibili durante l'aggiornamento. defaultcheck.json- Se non si crea una mappa di configurazione o se questa è configurata in modo errato, viene applicata l'impostazione predefinita di Kubernetes. Per impostazione predefinita, solo il 20% dei nodi di lavoro del cluster può essere non disponibile
alla volta. Puoi sovrascrivere il valore predefinito aggiungendo il controllo predefinito alla tua mappa di configurazione. Nell'esempio, ogni nodo di lavoro non specificato nei controlli relativi alla zona e alla regione (
dal13ous-south) potrebbe risultare non disponibile durante l'aggiornamento. MaxUnavailablePercentage- Il numero massimo di nodi che possono essere non disponibili per un valore e una chiave etichetta specificati, espresso come percentuale. Un nodo di lavoro è non disponibile durante il processo di distribuzione, ricaricamento o provisioning. I nodi di lavoro in coda sono bloccati dall'essere aggiornati se superano le percentuali di non disponibilità massime definite.
NodeSelectorKey- La chiave di etichetta del nodo di lavoro per il quale vuoi impostare una regola. Puoi impostare regole per le etichette predefinite fornite da IBM, così come per le etichette del nodo di lavoro che hai creato. Se desideri aggiungere
una regola per i nodi di lavoro appartenenti a un determinato pool di lavoro, puoi utilizzare l'etichetta "
ibm-cloud.kubernetes.io/machine-type". NodeSelectorValue- Il valore dell'etichetta che deve essere tenuto in considerazione dal nodo di lavoro per la regola che hai definito.
-
Crea la mappa di configurazione nel tuo cluster.
kubectl apply -f <filepath/configmap.yaml> -
Verifica che la mappa di configurazione sia stata creata.
kubectl get configmap --namespace kube-system -
Aggiorna i nodi di lavoro.
ibmcloud ks worker update --cluster CLUSTER --worker WORKER-NODE-1-ID --worker WORKER-NODE-2-ID -
Facoltativo: verifica gli eventi che vengono attivati dalla mappa di configurazione e tutti gli errori di convalida che si verificano. Gli eventi possono essere esaminati nella sezione Events dell'output della tua CLI.
kubectl describe -n kube-system cm ibm-cluster-update-configuration -
Conferma che l'aggiornamento è stato completato controllando la versione Kubernetes dei tuoi nodi di lavoro.
kubectl get nodes -
Assicurati che non ci siano nodi di lavoro duplicati. A volte, nei cluster più datati vengono elencati nodi di lavoro duplicati con uno
NotReadystato dopo un aggiornamento. Per rimuovere i duplicati, consulta risoluzione dei problemi.
Passi successivi
-
Ripeti il processo di aggiornamento con gli altri pool di nodi di lavoro.
-
Avvisare tutti gli sviluppatori che lavorano nel cluster di aggiornare la CLI di
kubectlin modo che corrisponda alla versione master di Kubernetes. L'esecuzione di un clientkubectlcon una versione che differisce di due o più versioni rispetto a quella del server non è supportata e può causare errori imprevisti. -
Se il dashboard Kubernetes non visualizza i grafici di utilizzo, elimina il pod
kube-dashboard.
Aggiornamento dei nodi di lavoro classici nella console
Dopo aver configurato per la prima volta l' ConfigMap, è possibile aggiornare i nodi di lavoro utilizzando la console IBM Cloud. La console rispetta le regole di indisponibilità definite in ConfigMap.
- Completa i passaggi preliminari e configura un file
ConfigMapper gestire l'aggiornamento dei nodi di lavoro. - Dal menu della console IBM Cloud
, fare clic su Contenitori > Cluster.
- Dalla pagina Cluster, fai clic sul tuo cluster.
- Dalla scheda Nodi di lavoro, seleziona la casella di spunta per ciascun nodo di lavoro che desideri aggiornare. Viene visualizzata una barra delle azioni sulla riga dell'intestazione della tabella.
- Dalla barra delle azioni, fai clic su Aggiorna.
Se nel cluster è installato Portworx, è necessario riavviare i pod Portworx sui nodi worker aggiornati. Per ulteriori informazioni, consultare la sezione " Limitazioni di Portworx ".
Aggiornamento dei nodi di lavoro VPC
I nodi di lavoro VPC vengono aggiornati in modo diverso a seconda del loro tipo. Il comando ibmcloud ks worker update non è supportato per nessun nodo di lavoro VPC. In ogni caso, occorre aggiornare prima il master
del cluster.
- Worker VPC bare metal e worker VPC Virtual Server Instance (VSI): sostituiti utilizzando
ibmcloud ks worker replace --update(per allinearsi alla versione master) oibmcloud ks worker replace(solo aggiornamento della patch). Il vecchio nodo viene eliminato e ne viene creato uno nuovo.
È possibile effettuare due tipi di aggiornamenti:
- Patch: applica le correzioni di sicurezza e gli aggiornamenti alla patch più recente della versione BOM attuale. Utilizza
ibmcloud ks worker replace. - Major.minor: Aggiorna la versione di Kubernetes sul nodo worker in modo che corrisponda a quella del nodo master. I nodi di lavoro possono avere al massimo due versioni di ritardo rispetto al master (
n-2). Utilizzaibmcloud ks worker replace --update.
È buona norma ruotare i certificati CA ogni volta che si aggiornano i nodi worker, poiché la fase più lunga della rotazione dei certificati prevede la ricarica o la sostituzione dei nodi worker.
- Cosa succede alle mie app durante un aggiornamento?
- Le app in esecuzione sui nodi di lavoro aggiornati vengono ripianificate su altri nodi di lavoro del cluster. Questi nodi di lavoro potrebbero trovarsi in un pool di nodi di lavoro diverso. Per evitare tempi di inattività, assicurati che il tuo cluster disponga di capacità sufficiente per gestire il carico di lavoro prima di avviare l'aggiornamento. Per ulteriori informazioni, vedi Aggiunta di nodi di lavoro ai cluster Classic o Aggiunta di nodi di lavoro ai cluster VPC.
- Cosa succede al mio nodo di lavoro durante un aggiornamento?
- Il nodo di lavoro viene sostituito rimuovendo il vecchio nodo di lavoro e configurandone uno nuovo che funzioni con la versione aggiornata della patch o di
major.minor. Il nodo di lavoro sostitutivo viene creato nella stessa zona, nello stesso pool di nodi di lavoro e con lo stesso profilo del nodo di lavoro eliminato. Tuttavia, al nodo worker sostitutivo viene assegnato un nuovo indirizzo IP privato e vengono perse tutte le etichette o i taint personalizzati applicati al vecchio nodo worker (le etichette e i taint del pool di worker rimangono comunque applicati al nodo worker sostitutivo). - Cosa succede se sostituisco più nodi di lavoro contemporaneamente?
- Se sostituisci più nodi di lavoro contemporaneamente, vengono eliminati e sostituiti contemporaneamente, non uno per uno. Assicurati di disporre di capacità sufficiente nel tuo cluster per ripianificare i tuoi carichi di lavoro prima di sostituire i nodi di lavoro.
- Cosa succede se non viene creato un nodo di lavoro sostitutivo?
- Un nodo di lavoro sostitutivo non viene creato se il pool di nodi di lavoro non ha il ribilanciamento automatico abilitato.
Prerequisiti
Prima di aggiornare i nodi di lavoro dell'infrastruttura VPC, completare i seguenti passaggi preliminari.
Per i worker VPC VSI, il nodo worker viene eliminato e sostituito con un nuovo nodo. Per gli utenti bare metal di VPC, il nodo viene ricaricato in loco. In entrambi i casi, i dati che non vengono salvati su un supporto di archiviazione permanente vengono eliminati definitivamente. Prima di iniziare, assicurati che tutti i dati che devi conservare siano archiviati al di fuori del nodo di lavoro.
Se nel proprio cluster è stato implementato un Portworx, seguire la procedura per aggiornare i nodi di lavoro VPC con volumi Portworx, anziché seguire la procedura descritta in questa pagina.
Azioni da eseguire prima dell'aggiornamento (da completare in ordine)
- Consulta le informazioni sulla versione dell’ Kubernetes per conoscere le ultime patch di sicurezza e le modifiche necessarie.
- Apporta tutte le modifiche contrassegnate con " Aggiorna prima del master " o " Aggiorna dopo il master " nella guida alla preparazione della versione " Kubernetes ".
- Aggiornare il nodo master prima di aggiornare i nodi worker. La versione del nodo di lavoro non può essere superiore a quella del server API in esecuzione sul master.
- Accedi al tuo account. Se applicabile, specifica il gruppo di risorse appropriato. Imposta il contesto per il tuo cluster.
Autorizzazioni richieste
Assicurati di disporre del ruolo di accesso alla piattaforma IAM "Operatore" o "Amministratore". Se non sei sicuro del tuo ruolo di accesso, vai su Gestisci → Accesso (IAM) → Utenti nella console di IBM Cloud oppure chiedi all'amministratore del tuo account.
Aggiornamento dei nodi di lavoro VPC nella CLI
Completa la seguente procedura per aggiornare i tuoi nodi di lavoro utilizzando la CLI.
-
Completa i passi prerequisiti.
-
Facoltativo: aumentare la capacità del cluster modificando le dimensioni del pool di worker. I pod sul nodo di lavoro possono essere ripianificati e continuare l'esecuzione sui nodi di lavoro aggiunti durante l'aggiornamento. Per ulteriori informazioni, vedi Aggiunta di nodi di lavoro ai cluster Classic o Aggiunta di nodi di lavoro ai cluster VPC.
-
Elenca i nodi di lavoro presenti nel tuo cluster e prendi nota dell'ID e dell'IP primario del nodo di lavoro che vuoi aggiornare.
ibmcloud ks worker ls --cluster CLUSTER -
Aggiornare il nodo di lavoro.
Utilizza il comando
worker replaceper aggiornare la versione della patch o la versionemajor.minorin modo che corrisponda alla versione master.- Per aggiornare il nodo worker alla stessa versione di
major.minordel nodo master, ad esempio passando da 1.35 a 1.36, includere l'opzione--update.
ibmcloud ks worker replace --cluster CLUSTER --worker WORKER-NODE-ID --update ``` * Per aggiornare il nodo worker all'ultima versione della patch con la stessa versione di `major.minor`, ad esempio da 1.35.8_1530 a 1.35.9_1533, non includere l'opzione `--update`. ```sh {: pre} ibmcloud ks worker replace --cluster CLUSTER --worker WORKER-NODE-ID ``` - Per aggiornare il nodo worker alla stessa versione di
-
Ripeti questi passi per ogni nodo di lavoro che devi aggiornare.
-
Facoltativo: una volta che i nodi di lavoro sostituiti sono nello stato "Pronto ", ridimensionare il pool di nodi di lavoro in modo che corrisponda alla capacità desiderata del cluster. Per ulteriori informazioni, Aggiunta di nodi di lavoro ai cluster VPC.
Se si esegue Portworx nel cluster VPC, è necessario collegare manualmente il volume Block Storage for VPC al nuovo nodo di lavoro.
Aggiornamenti del firmware durante il riavvio del worker VPC bare metal
Quando si riavvia un nodo worker bare metal di una VPC, l'infrastruttur IBM Cloud a verifica automaticamente se è disponibile un aggiornamento del firmware per quel server e lo applica nell'ambito del processo di riavvio. Non è necessaria alcuna operazione aggiuntiva per avviare l'aggiornamento del firmware.
Quando si esegue il riavvio di un nodo di lavoro bare metal in una VPC, tenere presente quanto segue:
- Tempo di ricarica prolungato
- Se durante il ricaricamento viene applicato un aggiornamento del firmware, la durata complessiva del ricaricamento può aumentare in modo significativo — di 30 minuti o più — rispetto alla durata standard del ricaricamento. Pianificate di conseguenza le finestre di manutenzione.
- Nessuna visibilità anticipata sugli aggiornamenti in sospeso
- Prima di eseguire il comando di ricaricamento, non è possibile sapere se sia in sospeso un aggiornamento del firmware per un nodo di lavoro.
- Rischio di perdita dei dati
- Come per tutte le operazioni di reload dei worker bare metal su VPC, i dati presenti sui dischi locali vengono cancellati durante il reload, indipendentemente dal fatto che venga applicato o meno un aggiornamento del firmware. Prima di eseguire il ricaricamento, eseguire il backup di tutti i dati che non sono memorizzati su un supporto di archiviazione permanente.
- Errore di ricarica dovuto all'aggiornamento del firmware
- In alcuni casi, l'aggiornamento del firmware può non andare a buon fine, causando l'entrata del nodo di lavoro in uno stato "
reload_failed" (Failed to reload worker) con i dettagli dello stato riportati all'indirizzoThe infrastructure firmware update has failed. (P4056). Se dovesse verificarsi quanto segue:- Attendi qualche minuto, quindi riprova a ricaricare il sito eseguendo nuovamente il comando
ibmcloud ks worker reload --cluster CLUSTER --worker WORKER-NODE-ID. - Se l'errore persiste dopo 2-3 tentativi, apri una richiesta di assistenza su IBM Cloud.
- Attendi qualche minuto, quindi riprova a ricaricare il sito eseguendo nuovamente il comando
Aggiornamento dei nodi di lavoro VPC nella console
Puoi aggiornare i tuoi nodi di lavoro VPC nella console. Prima di iniziare, valuta la possibilità di aggiungere nodi di lavoro al cluster per evitare tempi di inattività delle tue applicazioni.
Il funzionamento dell'azione " Aggiorna " dipende dal tipo di nodo di lavoro:
- A tutti i lavoratori VPC: il nodo di lavoro viene sostituito con un nuovo nodo nella versione aggiornata.
- Completa i passi prerequisiti.
- Dal menu della console IBM Cloud
, fare clic su Contenitori > Cluster.
- Dalla pagina Cluster, fai clic sul tuo cluster.
- Dalla scheda Nodi di lavoro, seleziona la casella di spunta per ciascun nodo di lavoro che desideri aggiornare. Viene visualizzata una barra delle azioni sulla riga dell'intestazione della tabella.
- Dalla barra delle azioni, fai clic su Aggiorna.
Aggiornamento dei profili (tipi di macchina)
Aggiorna il "flavor" (tipo di macchina) dei tuoi nodi di lavoro quando hai bisogno di risorse di calcolo diverse, ad esempio più memoria, CPU aggiuntive o una macchina dotata di GPU. L'aggiornamento di una variante crea un nuovo pool di worker con la nuova variante e quindi rimuove il vecchio pool di worker. Poiché questo processo sostituisce i nodi, tutti i dati presenti sui nodi di lavoro che non sono memorizzati su un supporto di archiviazione persistente vengono eliminati definitivamente.
Prima di iniziare
- Accedi al tuo account. Se applicabile, specifica il gruppo di risorse appropriato. Imposta il contesto per il tuo cluster.
- Verifica che tutti i dati che devi conservare siano archiviati su un supporto di archiviazione persistente esterno al nodo di lavoro. I dati memorizzati esclusivamente sul nodo di lavoro vanno persi e non possono essere recuperati.
- Assicurati di disporre del ruolo di accesso alla piattaforma IAM "Operatore" o "Amministratore". Se non sei sicuro del tuo ruolo di accesso, vai su Gestisci → Accesso (IAM) → Utenti nella console di IBM Cloud oppure chiedi all'amministratore del tuo account.
Per aggiornare i gusti
-
Elenca i nodi di lavoro e prendi nota del loro indirizzo IP privato.
- Elenca i pool di nodi di lavoro disponibili nel tuo cluster.
ibmcloud ks worker-pool ls --cluster CLUSTER ``` 2. Elenca i nodi di lavoro nel pool di nodi di lavoro. Prendi nota di **ID** e **IP privato**. ```sh {: pre} ibmcloud ks worker ls --cluster CLUSTER --worker-pool WORKER-POOL ``` 3. Ottieni i dettagli per un nodo di lavoro. Nell'output, prendi nota della zona e dell'ID della VLAN pubblica e privata per i cluster classici o dell'ID della sottorete per i cluster VPC. ```sh {: pre} ibmcloud ks worker get --cluster CLUSTER --worker WORKER-ID ``` -
Elenca i profili disponibili nella zona.
ibmcloud ks flavors --zone <zone> -
Crea un nodo di lavoro con il nuovo tipo di macchina.
- Crea un pool di nodi di lavoro con il numero di nodi di lavoro che vuoi sostituire.
- Cluster classici:
ibmcloud ks worker-pool create classic --name WORKER-POOL --cluster CLUSTER --flavor FLAVOR --size-per-zone NUMBER-OF-WORKERS-PER-ZONE - Cluster VPC di generazione 2:
ibmcloud ks worker-pool create vpc-gen2 --name NAME --cluster CLUSTER --flavor FLAVOR --size-per-zone NUMBER-OF-WORKERS-PER-ZONE --label LABEL
- Cluster classici:
- Verifica che il pool di nodi di lavoro sia stato creato.
ibmcloud ks worker-pool ls --cluster CLUSTER ``` 3. Aggiungi la zona al pool di nodi di lavoro che hai richiamato in precedenza. Quando aggiungi una zona, viene eseguito il provisioning dei nodi di lavoro definiti nel tuo pool di nodi di lavoro nella zona e vengono considerati per una pianificazione futura del carico di lavoro. Se vuoi distribuire i tuoi nodi di lavoro tra più zone, scegli un'ubicazione multizona [classica](/docs/containers?topic=containers-regions-and-zones#zones-mz) o [VPC](/docs/containers?topic=containers-regions-and-zones#zones-vpc). * Cluster classici: ```sh {: pre} ibmcloud ks zone add classic --zone ZONE --cluster CLUSTER --worker-pool WORKER-POOL --private-vlan PRIVATE-VLAN-ID --public-vlan PUBLIC-VLAN-ID ``` * Cluster VPC: ```sh {: pre} ibmcloud ks zone add vpc-gen2 --zone ZONE --cluster CLUSTER --worker-pool WORKER-POOL --subnet-id VPC-SUBNET-ID ``` - Crea un pool di nodi di lavoro con il numero di nodi di lavoro che vuoi sostituire.
-
Attendi che i nodi di lavoro vengano distribuiti. Quando lo stato del nodo di lavoro diventa Normal, la distribuzione è terminata.
ibmcloud ks worker ls --cluster CLUSTER -
Rimuovere il vecchio pool di lavoratori. Se si disattiva un'istanza Classic bare metal (che prevede una fatturazione mensile), verrà addebitato l'intero importo mensile anche se la disattivazione avviene a metà mese. I servizi VPC, compresi quelli bare metal, vengono fatturati su base oraria.
- Rimuovi il pool di nodi di lavoro con il tipo di macchina obsoleto. La rimozione di un pool di nodi di lavoro rimuove tutti i nodi di lavoro nel pool in tutte le zone. Il completamento di questo processo potrebbe impiegare alcuni minuti.
ibmcloud ks worker-pool rm --worker-pool WORKER-POOL --cluster CLUSTER ``` 2. Verifica che il pool di nodi di lavoro sia stato rimosso. ```sh {: pre} ibmcloud ks worker-pool ls --cluster CLUSTER ``` -
Verifica che i nodi di lavoro siano stati rimossi dal tuo cluster.
ibmcloud ks worker ls --cluster CLUSTER -
Ripeti questa procedura per aggiornare altri pool di nodi di lavoro o nodi di lavoro autonomi a profili differenti
Come vengono ridotti i pool di nodi di lavoro?
Questa sezione descrive la logica di assegnazione automatica delle priorità utilizzata quando i nodi di lavoro vengono rimossi durante un’operazione di ridimensionamento verso il basso, ad esempio dopo l’aggiornamento di un nodo di lavoro o
quando si esegue ibmcloud ks worker-pool resize. Non è necessario configurare questa funzione: avviene automaticamente.
Quando il numero di nodi di lavoro in un pool di lavoro viene ridotto, ai nodi di lavoro viene assegnata una priorità di eliminazione in base a diverse proprietà, tra cui lo stato, l’integrità e la versione.
Questa logica di priorità non è rilevante per il componente aggiuntivo autoscaler.
La seguente tabella mostra l'ordine in cui ai nodi di lavoro viene assegnata la priorità per l'eliminazione.
È possibile eseguire il comando ibmcloud ks worker ls per visualizzare tutte le proprietà del nodo di lavoro elencate nella tabella.
| Priority (Priorità) | Proprietà | Descrizione |
|---|---|---|
| 1 | Stato nodo di lavoro | Ai nodi di lavoro in stati non funzionanti o poco funzionanti viene assegnata una priorità per la rimozione. Questo elenco mostra gli stati ordinati dalla priorità più alta a quella più bassa: provision_failed, deploy_failed,
deleting, provision_pending, provisioning, deploying, provisioned, reloading_failed, reloading, deployed. |
| 2 | Integrità del nodo di lavoro | I nodi di lavoro non integri hanno la priorità rispetto ai nodi di lavoro integri. Questo elenco mostra gli stati di integrità ordinati dalla priorità più alta a quella più bassa: critical, warning, pending,
unsupported, normal. |
| 3 | Versione nodo di lavoro | I nodi di lavoro che vengono eseguiti su versioni precedenti hanno una priorità più alta per l'eliminazione. |
| 4 | Impostazione di posizionamento scelta | Solo per i nodi di lavoro in esecuzione su un host dedicato. I nodi di lavoro in esecuzione su un host dedicato che ha l'opzione DesiredPlacementDisabled impostata su true hanno una priorità più
alta per l'eliminazione. |
| 5 | Ordine alfabetico | Una volta assegnata una priorità ai nodi di lavoro in base ai fattori elencati in precedenza, vengono eliminati in ordine alfabetico. Tieni presente che, in base alle convenzioni dell'ID nodo di lavoro, gli ID per i nodi di lavoro sui cluster classici e VPC sono correlati all'età, in modo che i nodi di lavoro più vecchi vengano rimossi per primi. |
Aggiornamento dei componenti del cluster
Il tuo cluster IBM Cloud Kubernetes Service viene fornito con dei componenti, come Ingress, che vengono installati automaticamente quando esegui il provisioning del cluster. Per impostazione predefinita, questi componenti vengono aggiornati automaticamente da IBM. Tuttavia, puoi disabilitare gli aggiornamenti per alcuni componenti aggiuntivi e aggiornarli manualmente e separatamente dai nodi master e di lavoro.
- Quali componenti predefiniti posso aggiornare separatamente dal cluster?
- Puoi disabilitare facoltativamente gli aggiornamenti automatici per i seguenti componenti:
- Ci sono componenti che non posso aggiornare separatamente dal cluster?
- Sì. Il cluster è stato implementato con i seguenti componenti gestiti e le risorse associate, che non possono essere modificati, salvo per scalare i pod o modificare le configmap al fine di ottenere determinati vantaggi in termini di prestazioni. Se provi a modificare uno di questi componenti di distribuzione, le loro impostazioni originali vengono ripristinate a intervalli regolari quando vengono aggiornate con il master cluster. Tuttavia, tieni presente che le risorse che crei che vengono associate a questi componenti, come ad esempio le politiche di rete Calico che crei per essere implementate dai componenti di distribuzione Calico, non vengono aggiornate.
calicocomponenticorednscomponentiibm-cloud-provider-ipibm-file-pluginibm-keepalived-watcheribm-master-proxyibm-storage-watcherkubernetes-dashboardcomponentimetrics-server- Componenti
olm-operatorecatalog(1.16 e successive) vpn
- Posso installare plug-in o componenti aggiuntivi diversi da quelli predefiniti?
- Sì. IBM Cloud Kubernetes Service mette a disposizione altri plug-in e componenti aggiuntivi tra cui puoi scegliere per ampliare le funzionalità del tuo cluster. Ad esempio, potresti voler utilizzare i grafici di Helm per installare il plug-in di archiviazione a blocchi. Oppure potresti voler abilitare i componenti aggiuntivi gestiti d IBM nel tuo cluster. Devi aggiornare questi grafici Helm e componenti aggiuntivi separatamente, attenendoti alle istruzioni fornite nei file readme dei grafici Helm o la procedura per aggiornare i componenti aggiuntivi gestiti.
Gestione degli aggiornamenti automatici per Fluentd
Quando crei una configurazione di registrazione per un'origine nel tuo cluster da inoltrare a un server esterno, nel tuo cluster viene creato un componente Fluentd. Per modificare le configurazioni relative alla registrazione o ai filtri, è necessario che il componente Fluentd sia aggiornato all'ultima versione. Per impostazione predefinita, gli aggiornamenti automatici per il componente sono abilitati.
Per eseguire i comandi riportati di seguito, è necessario disporre del ruolo di accesso alla piattaforma IAM " IBM Cloud "(Amministratore ) per il cluster.
Puoi gestire gli aggiornamenti automatici del componente Fluentd nei seguenti modi.
- Verifica se gli aggiornamenti automatici sono abilitati eseguendo il comando
ibmcloud ks logging autoupdate get --cluster CLUSTER. - Disattiva gli aggiornamenti automatici eseguendo il comando
ibmcloud ks logging autoupdate disable. - Se gli aggiornamenti automatici sono disabilitati, ma hai bisogno di cambiare la tua configurazione, hai due opzioni:
- Attiva gli aggiornamenti automatici per i tuoi pod Fluentd.
ibmcloud ks logging autoupdate enable --cluster CLUSTER ``` * Forza un aggiornamento una tantum quando usi un comando di registrazione che include l'opzione `--force-update`. I tuoi pod vengono aggiornati all'ultima versione del componente Fluentd, ma d'ora in poi Fluentd non verrà più aggiornato automaticamente. Comando di esempio ```sh {: pre} ibmcloud ks logging config update --cluster CLUSTER --id LOG-CONFIG-ID --type LOG-TYPE --force-update ```
Gestione degli aggiornamenti automatici per gli ALB Ingress
Controlla quando viene aggiornato il componente ALB (application load balancer) Ingress. Per informazioni su come mantenere gli ALB aggiornati, vedi Gestione del ciclo di vita di ALB Ingress.
Aggiornamento di componenti aggiuntivi gestiti
I componenti aggiuntivi per cluster gestiti di IBM Cloud Kubernetes Service rappresentano un modo semplice per potenziare il proprio cluster con funzionalità open source, come ad esempio Istio. La versione dello strumento open-source che aggiungi al tuo cluster è verificata da IBM e approvata per l'utilizzo in IBM Cloud Kubernetes Service. Per aggiornare alle ultime versioni i componenti aggiuntivi gestiti che hai abilitato nel tuo cluster, vedi Aggiornamento di componenti aggiuntivi gestiti.