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

  1. Connectez-vous à IBM Cloud. Incluez l'option --sso si vous disposez d'un compte fédéré.
    ibmcloud login [--sso]
    
  2. Répertoriez les clusters Satellite disponibles dans votre compte.
    ibmcloud ks cluster ls --provider satellite
    
  3. 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.
    ibmcloud ks worker ls -c CLUSTER_NAME_OR_ID
    
    Exemple de sortie
    ID                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

  1. Connectez-vous à la consoleSatellite.
  2. Cliquez sur l'emplacement des hôtes à mettre à jour.
  3. Cliquez sur l'onglet Hôtes.
  4. 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.
  5. Cliquez sur l'onglet Noeuds worker.
  6. Dans la colonne Version, recherchez une icône d'information qui s'affiche lorsque Update available vous cliquez dessus. Si aucune mise à jour n'est disponible, aucune icône n'est présente.
  7. 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.

  1. Répertoriez vos hôtes de site et notez leurs identifiants. Les hôtes des nœuds de travail ne infrastructure figurent pas dans la colonne Cluster de 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  
    
  2. 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

  1. 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.

  2. Identifiez vos hôtes de noeud worker. Les hôtes de noeud worker n'ont pas infrastructure répertorié dans la colonne Cluster de la sortie, mais ont le nom du cluster.

  3. 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
    
  4. Confirmez que la mise à jour est terminée en examinant la version Kubernetes de vos noeuds worker.

    kubectl get nodes
    

    Si 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

  1. 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.

  2. Identifiez vos hôtes de noeud worker. Vos hôtes de noeud worker ne sont pas répertoriés comme Infrastructure.

  3. 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 NodeSelectorKey et NodeSelectorValue. Vous pouvez utiliser les libellés pour spécifier les noeuds worker à mettre à jour.

    kubectl get nodes -o yaml
    

    Exemple 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
    
  4. 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.json et 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 NodeSelectorKey et NodeSelectorValue. 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.
  5. Créez la mappe de configuration dans votre cluster.

    kubectl apply -f <filepath/configmap.yaml>
    
  6. Vérifiez que l' ConfigMap est bien créé.

    kubectl get configmap --namespace kube-system
    
  7. 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>
    
  8. 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
    
  9. Confirmez que la mise à jour est terminée en examinant la version Kubernetes de vos noeuds worker.

    kubectl get nodes
    

    Si la mise à jour a échoué, vous devez appliquer les mises à jour de version en remplaçant les hôtes.

  10. 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 NotReady aprè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.

  1. 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*   
    
  2. 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.

  3. 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.

  4. 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.

  1. Connectez-vous à la console d' IBM Cloud, puis cliquez sur OpenShift > Clusters.
  2. Cliquez sur le cluster où les hôtes à mettre à jour sont affectés et accédez à la page Noeuds worker.
  3. Sélectionnez chacun des hôtes à mettre à jour. Une fois que vous avez sélectionné les hôtes, une option Mettre à jour s'affiche.
  4. 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.
  5. 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.