Aggiornamento degli host assegnati come nodi di lavoro
Segui i passaggi riportati di seguito per ottenere le ultime versioni di OpenShift Container Platform, del sistema operativo e delle patch di sicurezza per i tuoi host assegnati come nodi di lavoro a servizi IBM Cloud abilitati per l' Satellite, come ad esempio i cluster.
I cluster di servizi, che costituiscono la piattaforma di base per tutti i servizi di IBM Cloud, vengono creati da servizi quali Code Engine o IBM Cloud Object Storage e sono gestiti da IBM.
- Cosa succede alle mie app durante un aggiornamento?
- Se esegui le applicazioni come parte di una distribuzione su nodi di lavoro che hai aggiornato, le applicazioni verranno ripianificate su altri nodi di lavoro nel cluster. Questi nodi di lavoro possono far parte di un pool di lavoro diverso oppure, se si dispone di nodi di lavoro autonomi, le applicazioni possono essere pianificate su tali nodi. Per evitare un periodo di inattività per la tua applicazione, devi assicurarti di disporre di capacità sufficiente nel cluster per sostenere il carico di lavoro.
- Come posso controllare il numero di nodi di lavoro che vengono disattivati contemporaneamente durante un aggiornamento o un ricaricamento?
- Se hai bisogno che tutti i tuoi nodi di lavoro siano attivi e in esecuzione, considera di collegare e assegnare ulteriori host al tuo servizio. È possibile aggiungere temporaneamente ulteriori host alla propria ubicazione e quindi rimuoverli una volta completato l'aggiornamento.
- Inoltre, è possibile creare un file Kubernetes ConfigMap che specifichi il numero massimo di nodi di lavoro che possono risultare non disponibili contemporaneamente, ad esempio durante un aggiornamento. I nodi di lavoro vengono identificati dalle etichette del nodo di lavoro. Puoi utilizzare le etichette fornite da IBM oppure le etichette personalizzate che hai aggiunto al nodo di lavoro.
Verifica della disponibilità di un aggiornamento di versione per gli host del nodo di lavoro
È possibile verificare se è disponibile un aggiornamento di versione per un host assegnato come nodo di lavoro a un servizio IBM Cloud con funzionalità " Satellite " attivate, utilizzando la CLI di IBM Cloud o la console di IBM Cloud.
Per esaminare le modifiche incluse in ogni aggiornamento della versione, consulta il log delle modifiche della versione per Red Hat OpenShift on IBM Cloud.
Verifica se è disponibile un aggiornamento della versione con la CLI IBM Cloud
- Accedi a IBM Cloud. Se disponi di un account federato, seleziona l'opzione "
--sso".ibmcloud login [--sso] - Elenca i cluster Satellite nel tuo account.
ibmcloud ks cluster ls --provider satellite - Elenca i nodi di lavoro nel cluster per cui vuoi aggiornare la versione. Nell'output, ricercare un asterisco
*con un messaggio che indica che è disponibile un aggiornamento della versione.
Output di esempioibmcloud ks worker ls -c CLUSTER_NAME_OR_IDID Primary IP Flavor State Status Zone Version sat-worker-<ID> <IP_address> upi normal Ready zone-1 4.5.35_1534_openshift* * To update to 4.5.37_1537_openshift version, run 'ibmcloud ks worker replace'. Review and make any required version changes before you update: 'https://ibm.biz/upworker'
Verifica se un aggiornamento della versione è disponibile dalla console IBM Cloud
- Accedi alla consoleSatellite.
- Fare clic sull'ubicazione con gli host che si desidera aggiornare.
- Fai clic sulla scheda Hosts.
- Dall'elenco di host, fare clic sul collegamento al Cluster per l'host che si desidera aggiornare. Viene visualizzata una nuova scheda per i dettagli del cluster Red Hat OpenShift on IBM Cloud.
- Fai clic sulla scheda " Nodi di lavoro ".
- Nella colonna Versione, verificare la presenza di un'icona informativa che indichi
Update availablequando si fa clic sull'icona. Se non è disponibile alcun aggiornamento, non è presente alcuna icona. - Determinare se l'aggiornamento della versione è un aggiornamento principale, secondario o patch.
Identificazione degli host del nodo di lavoro
Determinare se gli host fanno parte del piano di controllo, sono assegnati a un servizio gestito o sono collegati all'ubicazione.
-
Elenca i tuoi host di posizione e prendi nota dei loro ID. Gli host del nodo di lavoro non hanno
infrastructureelencati nella colonnaClusterdell'output.ibmcloud sat host ls --location <location>Esaminare l'output di esempio.
Name ID State Status Zone Cluster Worker ID Worker IP satdemo-cp1 0bc3b92f55968a230985 assigned Ready zone-1 infrastructure sat-satdemocp1-2bda578e901b4047c6e48d766cd99bc11a45fddd 169.62.42.178 satdemo-cp2 999cd38c39ddffe4b672 assigned Ready zone-2 infrastructure sat-satdemocp2-940134e69c2609c5421b2426a7640fa80569668d 169.62.42.183 satdemo-cp5 6ca4fd8fcad1fa622aa4 assigned Ready zone-3 infrastructure sat-satdemocp5-d46581b509357ea4b429fddc38a18b155463bf1c 169.62.42.181 satdemo-cp4 1ac2b92f55968a333335 assigned Ready zone-1 satdemo-cluster sat-satdemocp4-2bda578e901b4047c6e48d766cd99bc11a45fddd 169.62.42.180 satdemo-cp6 234cd56c78ddffe4b672 assigned Ready zone-2 satdemo-cluster sat-satdemocp6-940134e69c2609c5421b2426a7640fa80569668d 169.62.42.179 satdemo-cp3 8fg4ff8faaa1fa622bb5 assigned Ready zone-3 satdemo-cluster sat-satdemocp3-d46581b509357ea4b429fddc38a18b155463bf1c 169.62.42.182 -
Elenca i tuoi host correnti assegnati come nodi di lavoro al servizio Satellite-enabled IBM Cloud e prendi nota dei loro ID.
ibmcloud ks worker ls -c <cluster_name_or_ID>Esaminare l'output di esempio.
ID Primary IP Flavor State Status Zone Version sat-satellitei-5bd83963cdfedc7668c9040879c88113a134c4e7 10.241.0.4 upi normal Ready us-east-2 4.7.55_1575_openshift sat-satellitei-854beae4556401b5761e34ed849ba64c4b0a674c 10.241.128.4 upi normal Ready us-east-1 4.7.55_1575_openshift sat-satellitei-bf1fc9b135011d5c0d9d500855db6e489d15610b 10.241.64.4 upi normal Ready us-east-3 4.7.55_1575_openshift
Applica aggiornamenti della versione agli host del nodo di lavoro senza scollegarli
Puoi aggiornare i tuoi host del nodo di lavoro senza scollegarli dall'ubicazione. È inoltre possibile eseguire un aggiornamento graduale degli host dei nodi di lavoro tramite un' ConfigMap.
Prima di iniziare
- Verifica che tutti i tuoi nodi di lavoro siano in uno stato integro.
- Se si stanno utilizzando volumi di archiviazione blocchi permanenti, è necessario scollegare tali volumi dal nodo prima di avviare gli aggiornamenti. Sposta i volumi persistenti su un nodo di lavoro diverso che non richiede aggiornamenti.
Quindi, cordonare e svuotare il carico di lavoro dal nodo di lavoro da aggiornare con il comando
kubectl drain NODENAME. Se non puoi spostare i volumi di archiviazione blocchi, utilizza Applicazione degli aggiornamenti della versione ai nodi di lavoro sostituendo gli host.
L'applicazione degli aggiornamenti ai nodi di lavoro può causare tempi di inattività delle vostre applicazioni e dei vostri servizi. Non eseguire alcuna azione sull'host mentre è in esecuzione il processo di aggiornamento. Un massimo del 20% di tutti i tuoi nodi di lavoro può non essere disponibile durante il processo di aggiornamento.
Applicare gli aggiornamenti della versione agli host del nodo di lavoro uno alla volta
-
Facoltativo: Collega e assegna gli host aggiuntivi al cluster di servizi per gestire la capacità di elaborazione mentre i tuoi host esistenti sono in fase di aggiornamento.
-
Identifica i tuoi host del nodo di lavoro. Gli host dei nodi di lavoro non hanno
infrastructureelencati nella colonnaClusterdell'output, ma hanno invece il nome del cluster. -
Aggiorna i tuoi nodi di lavoro singolarmente eseguendo il comando
ibmcloud ks worker update.ibmcloud ks worker update -c CLUSTER_NAME_OR_ID --worker WORKER_ID -
Conferma che l'aggiornamento è stato completato controllando la versione Kubernetes dei tuoi nodi di lavoro.
kubectl get nodesSe l'aggiornamento non è riuscito, è necessario applicare gli aggiornamenti della versione sostituendo gli host.
Applicare gli aggiornamenti della versione agli host del nodo di lavoro con una ConfigMap
Puoi eseguire il rollout degli aggiornamenti a tutti gli host del nodo di lavoro con una ConfigMap. Specificare quali nodi aggiornare utilizzando le etichette. È anche possibile specificare
-
Facoltativo: Collega e assegna gli host aggiuntivi al cluster di servizi per gestire la capacità di elaborazione mentre i tuoi host esistenti sono in fase di aggiornamento.
-
Identifica i tuoi host del nodo di lavoro. I tuoi host del nodo di lavoro non sono elencati come
Infrastructure. -
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. È possibile utilizzare le etichette per specificare quali nodi di lavoro aggiornare.kubectl get nodes -o yamlOutput di esempio
labels: arch: amd64 beta.kubernetes.io/arch: amd64 beta.kubernetes.io/instance-type: upi beta.kubernetes.io/os: linux failure-domain.beta.kubernetes.io/region: us-east failure-domain.beta.kubernetes.io/zone: us-east-2 ibm-cloud.kubernetes.io/iaas-provider: upi ibm-cloud.kubernetes.io/internal-ip: 10.241.0.4 ibm-cloud.kubernetes.io/machine-type: upi ibm-cloud.kubernetes.io/os: REDHAT_8_64 ibm-cloud.kubernetes.io/region: us-east ibm-cloud.kubernetes.io/worker-id: sat-satellitei-5bd83963cdfedc7668c9040879c88113a134c4e7 ibm-cloud.kubernetes.io/worker-pool-id: cbtljodw089nltg8k210-9a3f763 ibm-cloud.kubernetes.io/worker-pool-name: default ibm-cloud.kubernetes.io/worker-version: 4.7.59_1583_openshift ibm-cloud.kubernetes.io/zone: us-east-2 kubernetes.io/arch: amd64 kubernetes.io/hostname: satellite-ibm-host-3 kubernetes.io/os: linux node-role.kubernetes.io/master: "" node-role.kubernetes.io/worker: "" node.kubernetes.io/instance-type: upi node.openshift.io/os_id: rhel privateVLAN: "1" topology.kubernetes.io/region: us-east topology.kubernetes.io/zone: us-east-2 -
Crea un gruppo di disponibilità ( ConfigMap ) e definisci le regole di indisponibilità per i tuoi nodi di lavoro. L'esempio seguente mostra due assegni: l'
defaultcheck.jsone un modello di assegno. È possibile utilizzare questo controllo di esempio per definire le regole per tutti i nodi di lavoro che non corrispondono a nessuno dei controlli definiti in ConfigMap (defaultcheck.json). Utilizzare il modello di controllo per creare il proprio controllo. Per ogni controllo, per identificare un nodo di lavoro, devi scegliere una delle etichette del nodo di lavoro che hai richiamato nel passo precedente.Per ogni controllo, è possibile impostare un solo valore per
NodeSelectorKeyeNodeSelectorValue. È possibile definire fino a 10 controlli in un file “ ConfigMap ”. Se aggiungi altri controlli, verranno ignorati.Esempio
apiVersion: v1 kind: ConfigMap metadata: name: ibm-cluster-update-configuration namespace: kube-system data: drain_timeout_seconds: "120" defaultcheck.json: | { "MaxUnavailablePercentage": 20 } <check_name>: | { "MaxUnavailablePercentage": <value_in_percentage>, "NodeSelectorKey": "<node_selector_key>", "NodeSelectorValue": "<node_selector_value>" }drain_timeout_seconds- Facoltativo: 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.
defaultcheck.json- Quando si aggiornano i nodi di lavoro negli host Satellite, solo il 20% dei nodi di lavoro nel cluster può non essere disponibile alla volta.
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.
NodeSelectorValue- Il valore dell'etichetta che deve essere tenuto in considerazione dal nodo di lavoro per la regola che hai definito.
-
Crea l' ConfigMap e nel tuo cluster.
kubectl apply -f <filepath/configmap.yaml> -
Verificare che sia stato creato il file “ ConfigMap ”.
kubectl get configmap --namespace kube-system -
Aggiorna i nodi di lavoro elencandoli per ID.
ibmcloud ks worker update --cluster <cluster_name_or_ID> --worker <worker_node1_ID> --worker <worker_node2_ID> -
Facoltativo: verificare gli eventi generati dall' ConfigMap e e gli eventuali 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 nodesSe l'aggiornamento non è riuscito, è necessario applicare gli aggiornamenti della versione sostituendo gli host.
-
Verifica di non avere nodi di lavoro duplicati. A volte, nei cluster più datati potrebbero essere presenti nodi di lavoro duplicati con uno
NotReadystato dopo un aggiornamento. Per rimuovere i duplicati, consulta risoluzione dei problemi.
Applicazione degli aggiornamenti della versione ai nodi di lavoro sostituendo gli host
Gli host collegati a un'ubicazione non vengono aggiornati automaticamente. Per applicare un aggiornamento di versione, è possibile innanzitutto collegare e assegnare nuovi host al servizio IBM Cloud abilitato per l' Satellite, quindi rimuovere i vecchi host. È anche possibile applicare aggiornamenti minori e patch in loco.
-
Elenca i tuoi host correnti e prendi nota dei loro ID. Questi sono gli host da rimuovere dopo aver collegato gli host aggiornati.
ibmcloud ks worker ls -c <cluster_name_or_ID>Esaminare l'output di esempio.
ID Primary IP Flavor State Status Zone Version sat-satliberty-5b4c7f3a7bfc14cf58cbb14ad5c08429475274fe 208.43.36.202 upi normal Ready zone-1 4.7.19_1525_openshift* -
Allega nuovi host all'ubicazione Satellite. Il numero di host che si collegano deve corrispondere al numero di host che si desidera aggiornare.
-
Assegna gli host appena collegati alla tua risorsa Satellite. Questi host ricevono automaticamente l'aggiornamento quando li si assegna.
-
Dopo che i nuovi host sono correttamente assegnati alla tua risorsa Satellite, rimuovi ed elimina i vecchi host che hai precedentemente notato.
Aggiornamento degli host del nodo di lavoro nella console Red Hat OpenShift on IBM Cloud
È possibile aggiornare gli host dei nodi di lavoro utilizzando la console Red Hat OpenShift on IBM Cloud.
- Accedi alla console IBM Cloud e fai clic su OpenShift > Clusters.
- Fai clic sul cluster in cui sono assegnati gli host che vuoi aggiornare e passa alla pagina Nodi di lavoro.
- Selezionare ogni host che si desidera aggiornare. Dopo aver selezionato gli host, viene visualizzata un'opzione Aggiorna.
- Fai clic su Aggiorna. Nella finestra di dialogo che viene visualizzata, fare nuovamente clic su Aggiorna. Viene visualizzato un messaggio che indica che l'aggiornamento è stato avviato correttamente.
- Attendere l'aggiornamento degli host. Il processo di aggiornamento per ciascun host viene completato quando lo stato dell'host ritorna a Normale e la nuova versione viene elencata nella colonna Versione.
Determinazione se l'aggiornamento della versione del nodo di lavoro è un aggiornamento principale, secondario o patch
Il processo di aggiornamento di un nodo di lavoro è lo stesso per tutti gli aggiornamenti. Tuttavia, è possibile trovare informazioni sul fatto che l'aggiornamento sia maggiore, minore o patch.
Per determinare il tipo di aggiornamento disponibile, confronta le tue versioni del nodo di lavoro correnti con la versione worker node fix pack più recente nel log di modifica della versioneRed Hat OpenShift.
Gli aggiornamenti principali sono indicati dalla prima cifra nell'etichetta di versione (4.x.x), gli aggiornamenti secondari sono indicati dalla seconda cifra (x.7.x) e gli aggiornamenti delle patch sono indicati dalle cifre finali (x.x.23_1528_openshift).
Per ulteriori informazioni sugli aggiornamenti della versione, consultare Informazioni sulla versione e azioni di aggiornamento.