Mise à jour des hôtes affectés en tant que nœuds de travail
Suivez les étapes ci-dessous pour obtenir les derniers correctifs d' OpenShift Container Platform, de système d'exploitation et de sécurité pour vos hôtes affectés en tant que nœuds de travail à des services IBM Cloud activés pour l' Satellite, tels que les clusters.
Les clusters de services, qui constituent la plate-forme sous-jacente de tous les services d' IBM Cloud, sont créés par des services tels que Code Engine ou IBM Cloud Object Storage et sont gérés par IBM.
- Que deviennent mes applications lors d'une mise à jour?
- Si vous exécutez des applications dans le cadre d'un déploiement sur des noeuds worker faisant l'objet d'une mise à jour, les applications sont replanifiées sur d'autres noeuds worker dans le cluster. Ces nœuds de travail peuvent se trouver dans un pool de nœuds de travail différent; si vous disposez de nœuds de travail autonomes, les applications peuvent être planifiées sur ces derniers. Pour éviter toute interruption d'application, vous devez veiller à ce que le cluster dispose d'une capacité suffisante pour traiter la charge de travail.
- Comment puis-je contrôler le nombre de nœuds de travail qui sont mis hors service simultanément lors d'une mise à jour ou d'un rechargement?
- Si vous avez besoin que tous vos noeuds worker soient opérationnels, envisagez de connecter et d' affecter des hôtes supplémentaires à votre service. Vous pouvez ajouter des hôtes supplémentaires à votre emplacement temporairement, puis les supprimer une fois la mise à jour terminée.
- De plus, vous pouvez créer une configuration Kubernetes ConfigMap qui spécifie le nombre maximal de nœuds de travail pouvant être indisponibles simultanément, par exemple lors d’une mise à jour. Les noeuds worker sont identifiés par leur libellé. Vous pouvez utiliser les libellés fournis par IBM ou des libellés personnalisés que vous avez ajoutés au noeud worker.
Vérification de la disponibilité d'une mise à jour de version pour les hôtes de noeud worker
Vous pouvez vérifier si une mise à jour de version est disponible pour un hôte affecté en tant que noeud de travail à un serviceSatellitecompatibleIBM Cloud à l'aide de l'interface de ligne de commande IBM Cloud ou de la console IBM Cloud.
Pour consulter les modifications incluses dans chaque mise à jour de version, voir le Journal des modifications de version pour Red Hat OpenShift on IBM Cloud.
Vérification de la disponibilité d'une mise à jour de version avec l'interface de ligne de commande IBM Cloud
- Connectez-vous à IBM Cloud. Incluez l'option
--ssosi vous disposez d'un compte fédéré.ibmcloud login [--sso] - Répertoriez les clusters Satellite disponibles dans votre compte.
ibmcloud ks cluster ls --provider satellite - Répertoriez les noeuds worker dans le cluster dont vous souhaitez mettre à jour la version. Dans la sortie, recherchez un astérisque
*avec un message indiquant qu'une mise à jour de version est disponible.
Exemple de sortieibmcloud 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'
Vérification de la disponibilité d'une mise à jour de version à partir de la console IBM Cloud
- Connectez-vous à la consoleSatellite.
- Cliquez sur l'emplacement des hôtes à mettre à jour.
- Cliquez sur l'onglet Hôtes.
- Dans la liste des hôtes, cliquez sur le lien vers le Cluster de l'hôte à mettre à jour. Un nouvel onglet s'ouvre pour les détails du cluster Red Hat OpenShift on IBM Cloud.
- Cliquez sur l'onglet Noeuds worker.
- Dans la colonne Version, recherchez une icône d'information qui s'affiche lorsque
Update availablevous cliquez dessus. Si aucune mise à jour n'est disponible, aucune icône n'est présente. - Déterminez si la mise à jour de la version est une mise à jour majeure, mineure ou de correctif.
Identification des hôtes de noeud worker
Déterminez si vos hôtes font partie du plan de contrôle, s'ils sont affectés à un service géré ou s'ils sont connectés à l'emplacement.
-
Répertoriez vos hôtes de site et notez leurs identifiants. Les hôtes des nœuds de travail ne
infrastructurefigurent pas dans la colonneClusterde la sortie.ibmcloud sat host ls --location <location>Examinez l'exemple de sortie.
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 -
Répertoriez vos hôtes actuels affectés en tant que noeuds worker à votre service IBM Cloud prêt pour Satellite et notez leurs ID.
ibmcloud ks worker ls -c <cluster_name_or_ID>Examinez l'exemple de sortie.
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
Appliquer les mises à jour de version aux hôtes de noeud worker sans les déconnecter
Vous pouvez mettre à jour vos hôtes de noeud worker sans les déconnecter de l'emplacement. Vous pouvez également effectuer une mise à jour progressive des hôtes de vos nœuds de travail à l'aide d'une mise à jour par vagues ( ConfigMap ).
Avant de commencer
- Vérifiez que tous vos noeuds worker sont dans un état sain.
- Si vous utilisez des volumes de stockage par blocs persistants, vous devez les déconnecter du noeud avant de démarrer vos mises à jour. Déplacez les volumes persistants vers un noeud worker différent qui ne nécessite pas de mises à jour. Ensuite,
définissez et arrêtez la charge de travail à partir du noeud worker à mettre à jour à l'aide de la commande
kubectl drain NODENAME. Si vous ne pouvez pas déplacer les volumes de stockage par blocs, utilisez l'option Application des mises à jour de version aux noeuds worker en remplaçant les hôtes.
L'application de mises à jour sur les nœuds de travail peut entraîner des temps d'indisponibilité de vos applications et services. N'effectuez aucune action sur l'hôte lorsque le processus de mise à jour est en cours d'exécution. Au maximum 20 % de l'ensemble de vos nœuds de travail peuvent être indisponibles pendant le processus de mise à jour.
Appliquer les mises à jour de version aux hôtes de noeud worker un par un
-
Facultatif: Associez et affectez des hôtes supplémentaires au cluster de service pour gérer la capacité de calcul pendant la mise à jour de vos hôtes existants.
-
Identifiez vos hôtes de noeud worker. Les hôtes de noeud worker n'ont pas
infrastructurerépertorié dans la colonneClusterde la sortie, mais ont le nom du cluster. -
Mettez à jour vos noeuds worker individuellement en exécutant la commande
ibmcloud ks worker update.ibmcloud ks worker update -c CLUSTER_NAME_OR_ID --worker WORKER_ID -
Confirmez que la mise à jour est terminée en examinant la version Kubernetes de vos noeuds worker.
kubectl get nodesSi la mise à jour a échoué, vous devez appliquer les mises à jour de version en remplaçant les hôtes.
Appliquez des mises à jour de version à vos hôtes de noeud worker avec un objet ConfigMap
Vous pouvez déployer des mises à jour sur tous vos hôtes de noeud worker avec un objet ConfigMap. Indiquez les noeuds à mettre à jour à l'aide de libellés. Vous pouvez également spécifier
-
Facultatif: Associez et affectez des hôtes supplémentaires au cluster de service pour gérer la capacité de calcul pendant la mise à jour de vos hôtes existants.
-
Identifiez vos hôtes de noeud worker. Vos hôtes de noeud worker ne sont pas répertoriés comme
Infrastructure. -
Affichez les libellés d'un noeud worker. Vous pouvez identifier les libellés des noeuds worker dans la section Labels de la sortie de l'interface CLI. Chaque libellé est constitué de deux éléments
NodeSelectorKeyetNodeSelectorValue. Vous pouvez utiliser les libellés pour spécifier les noeuds worker à mettre à jour.kubectl get nodes -o yamlExemple de sortie
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 -
Créez une instance ConfigMap et définissez les règles d'indisponibilité pour vos nœuds de travail. L'exemple suivant présente deux chèques, le
defaultcheck.jsonet un modèle de chèque. Vous pouvez utiliser cet exemple de vérification pour définir des règles pour tous les noeuds worker qui ne correspondent à aucune des vérifications que vous avez définies dans ConfigMap (defaultcheck.json). Utilisez le modèle de vérification pour créer votre propre vérification. Pour chaque vérification, vous devez choisir un des libellés de noeud worker obtenus à l'étape précédente pour identifier un noeud worker.Pour chaque vérification, vous ne pouvez définir qu'une seule valeur pour
NodeSelectorKeyetNodeSelectorValue. Définissez jusqu'à 10 vérifications dans une ConfigMap. Si vous ajoutez d'autres vérifications, elles sont ignorées.Exemple
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- Facultatif : délai d'attente, en secondes, pour que le vidage soit terminé. L'arrêt avec drain d'un noeud worker en toute sécurité supprime tous les pods existants du noeuds worker et replanifie les pods sur d'autres noeuds worker du cluster. Les valeurs admises sont des entiers compris entre 1 et 180. La valeur par défaut est 30.
defaultcheck.json- Lorsque vous mettez à jour des noeuds worker dans des hôtes Satellite, seuls 20% des noeuds worker du cluster peuvent être indisponibles à la fois.
MaxUnavailablePercentage- Nombre maximal de noeuds pouvant être indisponibles pour un libellé clé-valeur spécifique, exprimé en pourcentage. Un noeud worker est indisponible lorsqu'il est en cours de déploiement, de rechargement ou de mise à disposition. Les noeuds worker en file d'attente sont bloqués pour la mise à jour s'ils dépassent un pourcentage maximum de noeuds indisponibles défini.
NodeSelectorKey- Clé de libellé du noeud worker pour lequel vous voulez définir une règle. Vous pouvez définir des règles pour les libellés par défaut fournis par IBM, ainsi que sur les libellés de noeuds worker que vous avez créés.
NodeSelectorValue- Valeur de libellé que doit avoir le noeud worker pour être pris en compte dans la règle que vous définissez.
-
Créez la mappe de configuration dans votre cluster.
kubectl apply -f <filepath/configmap.yaml> -
Vérifiez que l' ConfigMap est bien créé.
kubectl get configmap --namespace kube-system -
Mettez à jour les noeuds worker en les répertoriant par ID.
ibmcloud ks worker update --cluster <cluster_name_or_ID> --worker <worker_node1_ID> --worker <worker_node2_ID> -
Facultatif : vérifiez les événements déclenchés par l’ ConfigMap, ainsi que les éventuelles erreurs de validation survenues. Les événements peuvent être consultés dans la section Evénements de la sortie de l'interface CLI.
kubectl describe -n kube-system cm ibm-cluster-update-configuration -
Confirmez que la mise à jour est terminée en examinant la version Kubernetes de vos noeuds worker.
kubectl get nodesSi la mise à jour a échoué, vous devez appliquer les mises à jour de version en remplaçant les hôtes.
-
Vérifiez que vous n'avez pas de nœuds de travail en double. Les anciens clusters peuvent afficher des nœuds de travail en double avec un statut
NotReadyaprès une mise à jour. Pour supprimer ces doublons, voir la section de traitement des incidents.
Application de mises à jour de version à des noeuds worker en remplaçant des hôtes
Les hôtes connectés à un emplacement ne sont pas mis à jour automatiquement. Pour appliquer une mise à jour de version, vous pouvez d'abord associer et attribuer de nouveaux hôtes à votre service IBM Cloud compatible avec Satellite, puis supprimer les anciens hôtes. Vous pouvez également appliquer des mises à jour de version mineure et de version de correctif.
-
Répertoriez vos hôtes actuels et notez leurs ID. Il s'agit des hôtes à supprimer après la connexion d'hôtes mis à jour.
ibmcloud ks worker ls -c <cluster_name_or_ID>Examinez l'exemple de sortie.
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* -
Connectez de nouveaux hôtes à votre emplacement Satellite. Le nombre d'hôtes que vous connectez doit correspondre au nombre d'hôtes que vous voulez mettre à jour.
-
Affectez à votre ressource Satellite les hôtes que vous venez de connecter. Ces hôtes reçoivent automatiquement la mise à jour lorsque vous les affectez.
-
Une fois les nouveaux hôtes affectés à votre ressource Satellite, retirez et supprimez les anciens hôtes que vous aviez précédemment notés.
Mise à jour d'hôtes de noeud worker dans la console Red Hat OpenShift on IBM Cloud
Vous pouvez mettre à jour des hôtes de noeud worker à l'aide de la console Red Hat OpenShift on IBM Cloud.
- Connectez-vous à la console d' IBM Cloud, puis cliquez sur OpenShift > Clusters.
- Cliquez sur le cluster où les hôtes à mettre à jour sont affectés et accédez à la page Noeuds worker.
- Sélectionnez chacun des hôtes à mettre à jour. Une fois que vous avez sélectionné les hôtes, une option Mettre à jour s'affiche.
- Cliquez sur Mettre à jour. Dans la boîte de dialogue qui s'affiche, cliquez à nouveau sur Mettre à jour. Un message indiquant que la mise à jour à correctement démarré s'affiche.
- Patientez pendant la mise à jour des hôtes. Le processus de mise à jour de chaque hôte est terminé lorsque le statut de l'hôte affiche Normal et que la nouvelle version est indiquée dans la colonne Version.
Déterminer si la mise à jour de la version de noeud worker est une mise à jour majeure, mineure ou de correctif
Le processus de mise à jour d'un noeud worker est le même pour tous les types de mise à jour. Cependant, vous pouvez trouver des informations indiquant si la mise à jour est une mise à jour majeure, mineure ou de correctif.
Pour déterminer le type de mise à jour disponible, comparez vos versions de noeud worker en cours avec la dernière version de worker node fix pack dans le journal des modifications de version Red Hat OpenShift.
Les mises à jour majeures sont indiquées par le premier chiffre du libellé de la version (4.x.x), les mises à jour mineures par le second chiffre (x.7.x) et les mises à jour des correctifs par les chiffres qui suivent (x.x.23_1528_openshift).
Pour plus d'informations sur les mises à jour de version, voir Informations sur les versions et actions de mise à jour.