Mise à jour des clusters, des noeuds worker et des composants de cluster

Assurez la sécurité et la prise en charge de votre cluster en mettant à jour le nœud maître, les nœuds de travail et les composants du cluster dans le bon ordre. Une mise à jour hors séquence peut entraîner des erreurs de désynchronisation des versions ou des temps d'arrêt imprévus.

Effectuez les mises à jour dans l'ordre suivant :

  1. Mettez à jour le maître du cluster.
  2. Mettez à jour vos nœuds de travail — Classic, VPC ou Satellite — en fonction de votre type d'infrastructure. Vous ne savez pas de quel type il s'agit? Dans la console d’ IBM Cloud, cliquez sur votre cluster et consultez le champ Infrastructure de l’onglet Aperçu : il indique Classic, VPC ou Satellite.
  3. Mettez à jour les composants du cluster, tels que les ALB d' Fluentd s et d'Ingress, si vous les gérez manuellement.
  4. Mise à jour des modules complémentaires gérés.

Mise à jour du maître

Comment savoir quand mettre à jour le fichier maître?
Vous êtes averti dans la console, les annonces et l'interface de ligne de commande lorsque des mises à jour sont disponibles. Vous pouvez également consulter régulièrement la page des versions prises en charge.
De combien de versions le master peut-il être en retard par rapport à la dernière version?
Vous ne pouvez mettre à jour le serveur API que vers la version suivante de celle qu'il utilise actuellement (n+1).
Mes nœuds de travail peuvent-ils exécuter une version plus récente que celle du maître?
Vos nœuds worker ne peuvent pas exécuter une version de major.minor Kubernetes postérieure à celle du maître. De plus, vos nœuds de travail ne peuvent pas avoir plus de deux versions mineures de retard par rapport à la version maître (n-2). Commencez par mettre à jour votre nœud maître vers la dernière version d' Kubernetes. Ensuite, mettez à jour les noeuds worker dans votre cluster.

Les noeuds worker peuvent exécuter des versions de correctif ultérieures à celle du maître, par exemple des versions de correctif spécifiques aux noeuds worker pour les mises à jour de sécurité.

Comment les mises à jour de correctifs sont-elles appliquées?
Par défaut, les correctifs du maître sont appliqués automatiquement sur plusieurs jours, de sorte que la version d'un correctif de maître s'affiche comme étant disponible avant d'être appliquée à votre maître. L'automatisation de la mise à jour ignore également les clusters qui ne sont pas dans un état sain ou dont les opérations sont encore en cours d'exécution. Occasionnellement, IBM peut désactiver les mises à jour automatiques pour un groupe de correctifs de maître spécifique, par exemple un correctif nécessaire uniquement si un maître est mis à jour d'une version secondaire à une autre. Dans chacun de ces cas, vous pouvez vérifier les informations relatives à la version d' Kubernetes afin d'évaluer tout impact potentiel et choisir d'utiliser vous-même la commandeibmcloud ks cluster master update en toute sécurité sans attendre que la mise à jour automatique soit appliquée.

Contrairement au maître, vous devez mettre à jour vos noeuds worker pour chaque version de correctif.

Que se passe-t-il lors de la mise à jour du maître?
La haute disponibilité de votre maître est assurée par trois pods avec des répliques du maître. Les pods de maître ont des mises à jour en continu, au cours desquelles un seul pod à la fois est indisponible. Deux instances sont opérationnelles pour que vous puissiez accéder au cluster et le modifier lors de la mise à jour. Vos noeuds worker, applications et ressources continuent à s'exécuter.
Puis-je annuler la mise à jour?
Non, vous ne pouvez pas rétrogradez un cluster à une version précédente une fois que le processus de mise à jour a eu lieu. Prenez soin d'utiliser un cluster de test et de suivre les instructions afin d'éviter des problèmes potentiels avant de mettre à jour votre maître en production.
Quelle procédure dois-je suivre pour mettre à jour le fichier maître?
Le diagramme suivant illustre la procédure que vous pouvez suivre pour mettre à jour le maître.

Diagramme du processus de mise à jour de la base de données
Mise à jour Kubernetes diagramme du processus principal

Procédure de mise à jour du maître cluster

Avant de commencer, assurez-vous de disposer du rôle d'accès à la plateforme IAM Opérateur ou Administrateur. Si vous n'êtes pas sûr de votre rôle d'accès, rendez-vous dans Gérer → Accès (IAM) → Utilisateurs dans la console IBM Cloud, ou adressez-vous à votre administrateur de compte.

Si une rotation de certificats d’autorité de certification (CA) est en cours, la mise à jour principale est bloquée jusqu’à la fin de cette rotation. Vérifiez l'état d'avancement de toute rotation en cours avant de commencer.

Pour mettre à jour la version majeur ou mineur de Kubernetes :

  1. Vérifiez les informations relatives à la version d' Kubernetes et effectuez toutes les mises à jour marquées Update before master.

  2. Passez en revue tous les avertissements utiles concernant Kubernetes, tels que les avis de dépréciation.

  3. Vérifiez pour les modules complémentaires et les plug-in installés dans votre cluster l'impact que pourrait avoir une mise à jour de la version du cluster.

    • Vérification des modules complémentaires

      1. Répertoriez les modules complémentaires dans le cluster.
        ibmcloud ks cluster addon ls --cluster CLUSTER
        
      2. Vérifiez la version de Kubernetes prise en charge pour chaque module complémentaire installé.
        ibmcloud ks addon-versions
        
      3. Si le module complémentaire doit être mis à jour pour s'exécuter dans la version Kubernetes à laquelle vous souhaitez mettre à jour votre cluster, mettez à jour le module complémentaire.
    • Vérification des plug-in

      1. Dans le catalogue Helm, recherchez les plug-ins que vous avez installés dans votre cluster.
      2. Dans le menu latéral, développez la section SOURCES & FICHIER TAR.
      3. Téléchargez et ouvrez le code source.
      4. Vérifiez dans les fichiers README.md ou RELEASENOTES.md les versions prises en charge.
      5. Si le module complémentaire doit être mis à jour pour s'exécuter dans la version Kubernetes à laquelle vous voulez mettre à jour votre cluster, mettez à jour le module complémentaire en suivants les instructions du plug-in.
  4. Mettez à jour votre serveur API et les composants principaux associés à l’aide de la console IBM Cloud ou en exécutant la ibmcloud ks cluster master updatecommande CLI.

  5. Patientez quelques minutes, puis confirmez que la mise à jour est terminée. Examinez la version du serveur d'API sur le tableau de bord Clusters d'IBM Cloud ou exécutez la commande ibmcloud ks cluster ls.

  6. Installez la version dekubectl cli qui correspond à la version du serveur d'API qui s'exécute dans le maître. Kubernetes ne prend pas en charge les versions client kubectl dont le numéro de version diffère de deux versions ou plus de celui de la version serveur (n +/- 2). Pour actualiser votre configuration locale, exécutez ibmcloud ks cluster config -c CLUSTER_NAME_OR_ID, puis vérifiez avec kubectl version --client.

Une fois la mise à jour du nœud maître terminée, mettez à jour vos nœuds de travail. La méthode dépend du type de votre infrastructure :

  1. Mise à jour des nœuds de travail classiques — utilise une mise à jour progressive contrôlée par une ConfigMap et la commande worker update.
  2. Mise à jour des nœuds de travail VPC — Les nœuds de travail VPC VSI et les nœuds de travail VPC bare metal doivent utiliser worker replace --update. La procédure de mise à jour progressive ConfigMap n’est pas encore prise en charge pour les nœuds de travail VPC.

Mise à jour des noeuds worker classiques

Les nœuds de travail de l’infrastructure classique effectuent une mise à jour progressive sur place. Les mises à jour sont gérées par un paramètre Kubernetes ( ConfigMap ) qui définit le nombre de nœuds pouvant être indisponibles simultanément. La commande ibmcloud ks worker update n'est prise en charge que pour les nœuds de travail classiques.

Vous pouvez effectuer deux types de mises à jour :

  • Correctif: applique des correctifs de sécurité et des mises à jour vers la dernière version du correctif. Utilisez ou ibmcloud ks worker reload ibmcloud ks worker update. Ces deux commandes mettent à jour le nœud avec la dernière version du correctif. La commande update applique également toute mise à jour de version major.minor disponible afin de se synchroniser avec la version de référence.
  • Major.minor: met à jour la version d' Kubernetes du nœud de travail pour qu'elle corresponde à celle du nœud maître. Vos nœuds de travail peuvent avoir au maximum deux versions de retard par rapport au maître (n-2). Utilisez la commande ibmcloud ks worker update.

Pour plus d'informations, voir Types de mise à jour.

Il est conseillé de procéder à une rotation des certificats d'autorité de certification chaque fois que vous mettez à jour vos nœuds de travail, car l'étape la plus longue de la rotation des certificats consiste à recharger ou à remplacer vos nœuds de travail.

Que deviennent mes applications lors d'une mise à jour?
Les applications exécutées sur des nœuds de travail mis à jour sont réaffectées à d’autres nœuds de travail du cluster, y compris à des nœuds appartenant à d’autres pools de travail ou à des nœuds de travail autonomes. Pour éviter toute interruption de service, assurez-vous que le cluster dispose d'une capacité suffisante pour prendre en charge la charge de travail avant de lancer la mise à jour.
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?
Utilisez l'option Kubernetes ( ConfigMap ) pour définir le nombre maximal de nœuds de travail pouvant être indisponibles simultanément. Les nœuds de travail sont identifiés par leurs étiquettes. Vous pouvez utiliser les libellés fournis par IBM ou des libellés personnalisés. Si vous souhaitez que tous vos nœuds de travail restent disponibles, envisagez de redimensionner votre pool de nœuds de travail ou d'ajouter des nœuds de travail autonomes afin d'augmenter temporairement la capacité avant la mise à jour.

L' ConfigMap e contrôle uniquement le comportement des mises à jour. Cela n'affecte pas les rechargements des nœuds de travail, qui s'effectuent immédiatement sur demande.

Que se passe-t-il si je choisis de ne pas définir de config map?
Par défaut, 20 % au maximum de tous les nœuds de travail de chaque cluster peuvent être indisponibles pendant la mise à jour. Vous pouvez remplacer cette valeur en définissant une entrée ConfigMap avec une entrée defaultcheck.json.

Prérequis

Avant de mettre à jour vos nœuds de travail d’infrastructure classique, effectuez les étapes préalables suivantes.

Lors de la mise à jour d'un nœud de travail, le système d'exploitation de ce nœud est réinstallé et toutes les données qui ne sont pas stockées sur un support de stockage persistant sont définitivement supprimées. Vérifiez que toutes les données que vous devez conserver sont stockées en dehors du nœud de travail avant de commencer.

Si vous avez installé l' Portworx dans votre cluster, vous devez mettre à jour la configuration de votre Portworx avant de mettre à jour les nœuds de travail.

Actions à effectuer avant la mise à jour (à réaliser dans l'ordre)

  1. Consultez les informations sur la version d' Kubernetes pour connaître les derniers correctifs de sécurité et les modifications requises.
  2. Apportez toutes les modifications indiquées par Mettre à jour avant la version de référence ou Mettre à jour après la version de référence dans le guide de préparation de la version d' Kubernetes.
  3. Mettez à jour le nœud maître avant de mettre à jour les nœuds de travail. La version du nœud de travail ne peut pas être supérieure à celle du serveur API qui s'exécute sur le maître.
  4. Connectez-vous à votre compte. Le cas échéant, ciblez le groupe de ressources approprié. Définissez le contexte de votre cluster.
  5. Envisagez d'ajouter des nœuds de travail à votre cluster afin de disposer d'une capacité supplémentaire pour la replanification des charges de travail pendant la mise à jour. Vous pouvez supprimer les nœuds superflus une fois la mise à jour terminée.

Autorisations requises

Assurez-vous de disposer du rôle d'accès à la plateforme IAM Opérateur ou Administrateur. Si vous n'êtes pas sûr de votre rôle d'accès, rendez-vous dans Gérer → Accès (IAM) → Utilisateurs dans la console IBM Cloud, ou adressez-vous à votre administrateur de compte.

Mise à jour des noeuds worker classiques dans l'interface CLI

Utilisez un ConfigMap pour effectuer une mise à jour progressive de vos nœuds de travail classiques. L' ConfigMap e vous permet de contrôler le nombre de nœuds pouvant être indisponibles simultanément, par zone ou par région. Si la règle par défaut de 20 % d'indisponibilité est acceptable pour votre cluster, vous pouvez ignorer les étapes 3 et 4 (création de la ConfigMap ) et passer directement à l'étape 5 pour appliquer la mise à jour en utilisant le comportement par défaut.

  1. Effectuez les étapes prérequises.

  2. Affichez la liste des noeuds worker disponibles et notez leur adresse IP privée.

    ibmcloud ks worker ls --cluster CLUSTER
    
  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.

    kubectl describe node PRIVATE-WORKER-IP
    

    Exemple de sortie

    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
    
  4. Créez une mappe de configuration et définissez les règles d'indisponibilité applicables à vos noeuds worker. L' ConfigMap prend en charge jusqu'à 15 contrôles nommés. Chaque contrôle cible un ensemble de nœuds de travail en fonction de leur étiquette et définit le pourcentage maximal de ces nœuds pouvant être indisponibles simultanément. L'exemple suivant présente une vérification de zone (zonecheck.json), une vérification de région (regioncheck.json), une vérification de repli par défaut (defaultcheck.json) et un modèle pour les vérifications personnalisées. Pour chaque vérification, choisissez l'un des identifiants de nœud de travail que vous avez récupérés à l'étape précédente afin d'identifier les nœuds cibles.

    Pour chaque vérification, vous ne pouvez définir qu'une seule valeur pour NodeSelectorKey et NodeSelectorValue. Si vous souhaitez définir des règles pour plusieurs régions, zones ou d'autres libellés de noeud worker, créez une nouvelle vérification. Définissez jusqu'à 15 vérifications dans une carte de configuration. Si vous ajoutez des vérifications supplémentaires, un seul noeud worker est rechargé à la fois jusqu'à ce que tous les noeuds worker demandés soient mis à jour.

    Exemple

    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
    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.
    zonecheck.json et regioncheck.json
    Deux vérifications qui définissent une règle pour un ensemble de nœuds de travail que vous pouvez identifier avec les NodeSelectorKey et NodeSelectorValuespécifiés. zonecheck.json identifie les nœuds de travail en fonction de leur libellé de zone, et regioncheck.json utilise le libellé de région ajouté à chaque noeud de travail lors de l'application des accès. Dans l'exemple, 30% de tous les nœuds de travail ayant dal13 comme étiquette de zone et 20% de tous les nœuds de travail dans us-south peuvent être indisponibles lors de la mise à jour.
    defaultcheck.json
    Si vous ne créez pas de mappe de configuration ou si la mappe n'est pas configurée correctement, la valeur par défaut de Kubernetes est appliquée. Par défaut, seuls 20 % des noeuds worker du cluster peuvent être indisponibles à moment donné. Vous pouvez remplacer la valeur par défaut en ajoutant la vérification par défaut dans votre mappe de configuration. Dans l'exemple, chaque noeud de travail qui n'est pas spécifié dans les vérifications de zone et de région (dal13 ou us-south) peut être indisponible pendant la mise à jour.
    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. Si vous souhaitez ajouter une règle pour les noeuds de travail appartenant à un pool de travailleurs, vous pouvez utiliser l'étiquette ibm-cloud.kubernetes.io/machine-type.
    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 la mappe de configuration est créée.

    kubectl get configmap --namespace kube-system
    
  7. Mettez à jour les noeuds worker.

    ibmcloud ks worker update --cluster CLUSTER --worker WORKER-NODE-1-ID --worker WORKER-NODE-2-ID
    
  8. Facultatif : vérifiez les événements déclenchés par la mappe de configuration et les éventuelles erreurs de validation. 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
    
  10. Vérifiez que vous n'avez pas de nœuds de travail en double. Il arrive parfois que, suite à une mise à jour, les anciens clusters répertorient des nœuds de travail en double avec un statut NotReady. Pour supprimer ces doublons, voir la section de traitement des incidents.

Etapes suivantes

  1. Répétez le processus de mise à jour pour les autres pools de noeuds worker.

  2. Demandez à tous les développeurs travaillant sur le cluster de mettre à jour leur kubectl CLI afin qu’elle corresponde à la version principale de Kubernetes. L'utilisation d'un client kubectl dont la version diffère de deux versions ou plus de celle du serveur n'est pas prise en charge et peut entraîner des erreurs inattendues.

  3. Si le tableau de bord Kubernetes n'affiche pas les graphiques d'utilisation, supprimez le pod kube-dashboard.

Mise à jour des noeuds worker classiques dans la console

Une fois la ConfigMap configurée pour la première fois, vous pouvez mettre à jour les nœuds de travail à l'aide de la console IBM Cloud. La console respecte les règles d’indisponibilité que vous avez définies dans l’ ConfigMap.

  1. Effectuez les étapes préalables et configurez une ConfigMap pour contrôler la manière dont vos nœuds de travail sont mis à jour.
  2. Dans le menu de la console IBM Cloud Icône de menu, cliquez sur Conteneurs > Clusters.
  3. Sur la page Clusters, cliquez sur votre cluster.
  4. Dans l'onglet Noeuds worker, sélectionnez la case à cocher de chaque noeud worker que vous désirez mettre à jour. Une barre d'actions s'affiche sur la ligne d'en-tête du tableau.
  5. Dans la barre de menus, cliquez sur Mettre à jour.

Si Portworx est installé sur votre cluster, vous devez redémarrer les pods Portworx sur les nœuds de travail mis à jour. Pour plus d'informations, voir les Limitations de Portworx.

Mise à jour des noeuds worker de VPC

Les nœuds de travail VPC sont mis à jour différemment selon leur type. La commande ibmcloud ks worker update n'est prise en charge par aucun nœud de travail VPC. Dans tous les cas, le maître du cluster doit être mis à jour en premier.

  • Tâches sur les serveurs bare metal VPC et les instances de serveurs virtuels (VSI) VPC : remplacées par ( ibmcloud ks worker replace --update pour correspondre à la version principale) ou ibmcloud ks worker replace (mise à jour du correctif uniquement). L'ancien nœud est supprimé et un nouveau est provisionné.

Vous pouvez effectuer deux types de mises à jour :

  • Correctif: applique les correctifs de sécurité et les mises à jour du dernier correctif de la version actuelle de la nomenclature (BOM). Utilisez ibmcloud ks worker replace.
  • Major.minor: met à jour la version d' Kubernetes du nœud de travail pour qu'elle corresponde à celle du nœud maître. Vos nœuds de travail peuvent avoir au maximum deux versions de retard par rapport au nœud maître (n-2). Utilisez ibmcloud ks worker replace --update.

Il est conseillé de procéder à une rotation des certificats d'autorité de certification chaque fois que vous mettez à jour vos nœuds de travail, car l'étape la plus longue de la rotation des certificats consiste à recharger ou à remplacer vos nœuds de travail.

Que deviennent mes applications lors d'une mise à jour?
Les applications qui s'exécutent sur des nœuds de travail mis à jour sont replanifiées sur d'autres nœuds de travail du cluster. Ces noeuds worker peuvent se trouver dans des pools de noeuds worker différents. Pour éviter toute interruption de service, assurez-vous que votre cluster dispose d'une capacité suffisante pour prendre en charge la charge de travail avant de lancer la mise à jour. Pour plus d'informations, voir Ajout de noeuds worker à des clusters classiques ou Ajout de noeuds worker à des clusters de VPC.
Que devient mon nœud de travail lors d'une mise à jour?
Le nœud de travail est remplacé en supprimant l'ancien nœud de travail et en provisionnant un nouveau nœud de travail fonctionnant avec le correctif ou la version major.minor mise à jour. Le noeud worker de remplacement est créé dans la même zone, dans le même pool de noeuds worker et avec la même version que le noeud worker supprimé. Cependant, une nouvelle adresse IP privée est affectée au noeud worker de remplacement qui perd alors les libellés ou les taches personnalisés que vous avez appliqués au précédent. En revanche, les taches et les libellés d'origine du pool de noeuds worker sont toujours appliqués au noeud worker de remplacement.
Que se passe-t-il si je remplace plusieurs nœuds de travail en même temps?
Si vous remplacez plusieurs noeuds worker en même temps, ils sont supprimés et remplacés simultanément, et non un par un. Vérifiez que vous disposez de suffisamment de capacité dans votre cluster pour replanifier vos charges de travail avant de remplacer des noeuds worker.
Que se passe-t-il si aucun nœud de travail de remplacement n'est créé?
Un noeud worker de remplacement n'est pas créé si la fonction de rééquilibrage automatique n'est pas activée pour le pool de noeuds worker.

Prérequis

Avant de mettre à jour les nœuds de travail de votre infrastructure VPC, effectuez les étapes préalables suivantes.

Pour les travailleurs VPC VSI, le nœud de travail est supprimé et remplacé par un nouveau nœud. Pour les instances bare metal VPC, le nœud est rechargé sur place. Dans les deux cas, les données qui ne sont pas stockées sur un support de stockage persistant sont définitivement supprimées. Vérifiez que toutes les données que vous devez conserver sont stockées en dehors du nœud de travail avant de commencer.

Si vous avez déployé l' Portworx dans votre cluster, suivez les étapes permettant de mettre à jour les nœuds de travail VPC avec des volumes Portworx au lieu de suivre les étapes décrites sur cette page.

Actions à effectuer avant la mise à jour (à réaliser dans l'ordre)

  1. Consultez les informations sur la version d' Kubernetes pour connaître les derniers correctifs de sécurité et les modifications requises.
  2. Apportez toutes les modifications indiquées par Mettre à jour avant la version de référence ou Mettre à jour après la version de référence dans le guide de préparation de la version d' Kubernetes.
  3. Mettez à jour le nœud maître avant de mettre à jour les nœuds de travail. La version du nœud de travail ne peut pas être supérieure à celle du serveur API qui s'exécute sur le maître.
  4. Connectez-vous à votre compte. Le cas échéant, ciblez le groupe de ressources approprié. Définissez le contexte de votre cluster.

Autorisations requises

Assurez-vous de disposer du rôle d'accès à la plateforme IAM Opérateur ou Administrateur. Si vous n'êtes pas sûr de votre rôle d'accès, rendez-vous dans Gérer → Accès (IAM) → Utilisateurs dans la console IBM Cloud, ou adressez-vous à votre administrateur de compte.

Mise à jour des noeuds worker de VPC dans l'interface CLI

Suivez les étapes suivantes pour mettre à jour vos nœuds de travail à l'aide de l'interface de ligne de commande (CLI).

  1. Effectuez les étapes prérequises.

  2. Facultatif : augmentez la capacité de votre cluster en redimensionnant le pool de travailleurs. Les pods sur le noeud worker peuvent être replanifiés et continuent d'être exécutés sur les noeuds worker ajoutés lors de la mise à jour. Pour plus d'informations, voir Ajout de noeuds worker à des clusters classiques ou Ajout de noeuds worker à des clusters de VPC.

  3. Répertoriez les noeuds worker de votre cluster et notez l'ID et l'adresse IP principale du noeud worker que vous souhaitez mettre à jour.

    ibmcloud ks worker ls --cluster CLUSTER
    
  4. Mettez à jour le nœud de travail.

    Utilisez la commande worker replace pour mettre à jour soit la version du correctif, soit la major.minor version correspondant à la version principale.

    • Pour mettre à jour le nœud de travail vers la même major.minor version que le maître, par exemple de la version 1.35 à la version 1.36, incluez l'option --update.
        ibmcloud ks worker replace --cluster CLUSTER --worker WORKER-NODE-ID --update
        ```
    *  Pour mettre à jour le nœud de travail vers la dernière version de correctif de la même `major.minor` version, par exemple de 1.35.8_1530 à 1.35.9_1533, n'incluez pas l'option `--update`.
    ```sh {: pre}
        ibmcloud ks worker replace --cluster CLUSTER --worker WORKER-NODE-ID
        ```
    
  5. Répétez ces étapes pour chaque noeud worker que vous devez mettre à jour.

  6. Facultatif : une fois que les nœuds de travail remplacés sont en état Prêt, redimensionnez le pool de nœuds de travail pour qu'il corresponde à la capacité de cluster souhaitée. Pour plus d'informations, Ajout de noeuds worker à des clusters de VPC.

Si vous exécutez Portworx dans votre cluster de VPC, vous devez connecter manuellement votre volume Block Storage for VPC à votre nouveau noeud worker.

Mises à jour du micrologiciel lors du redémarrage d'un nœud bare metal VPC

Lorsque vous redémarrez un nœud de travail bare metal VPC, l'infrastructur IBM Cloud vérifie automatiquement si une mise à jour du micrologiciel est en attente pour ce serveur et l'applique dans le cadre du processus de redémarrage. Aucune action supplémentaire n'est requise pour déclencher la mise à jour du micrologiciel.

Tenez compte des considérations suivantes lorsque vous rechargez un nœud de travail bare metal VPC :

Temps de rechargement prolongé
Si une mise à jour du micrologiciel est appliquée pendant le rechargement, la durée totale de celui-ci peut augmenter considérablement — de 30 minutes ou plus — par rapport à la durée habituelle. Planifiez vos fenêtres de maintenance en conséquence.
Aucune visibilité préalable sur les mises à jour à venir
Il n'est pas possible de savoir si une mise à jour du micrologiciel est en attente pour un nœud de travail avant d'exécuter la commande de rechargement.
Risque de perte de données
Comme pour tous les rechargements de machines bare metal VPC, les données présentes sur les disques locaux sont supprimées lors du rechargement, qu'une mise à jour du micrologiciel soit appliquée ou non. Sauvegardez toutes les données qui ne sont pas stockées sur un support de stockage persistant avant de procéder à la rechargement.
Échec du rechargement dû à une mise à jour du micrologiciel
Dans certains cas, une mise à jour du micrologiciel peut échouer, ce qui fait passer le nœud de travail dans un état reload_failed (Failed to reload worker) avec les détails de statut The infrastructure firmware update has failed. (P4056). Si cela se produit :
  1. Patientez quelques minutes, puis réessayez de recharger la page en relançant ibmcloud ks worker reload --cluster CLUSTER --worker WORKER-NODE-ID la commande.
  2. Si l'erreur persiste après 2 ou 3 tentatives, ouvrez un dossier d'assistance sur IBM Cloud.

Mise à jour des noeuds worker de VPC dans la console

Vous pouvez mettre à jour vos noeuds worker de VPC dans la console. Avant de commencer, pensez à ajouter des nœuds de travail au cluster afin d'éviter toute interruption de service pour vos applications.

Le fonctionnement de l'action Update dépend du type de nœud de travail :

  • Tous les nœuds de travail VPC: le nœud de travail est remplacé par un nouveau nœud lors de la mise à jour.
  1. Effectuez les étapes prérequises.
  2. Dans le menu de la console IBM Cloud Icône de menu, cliquez sur Conteneurs > Clusters.
  3. Sur la page Clusters, cliquez sur votre cluster.
  4. Dans l'onglet Noeuds worker, sélectionnez la case à cocher de chaque noeud worker que vous désirez mettre à jour. Une barre d'actions s'affiche sur la ligne d'en-tête du tableau.
  5. Dans la barre de menus, cliquez sur Mettre à jour.

Mise à jour des versions (types de machine)

Mettez à jour la variante (type de machine) de vos nœuds de travail lorsque vous avez besoin de ressources de calcul différentes — par exemple, davantage de mémoire, des processeurs supplémentaires ou une machine équipée d’un GPU. La mise à jour d'une variante consiste à provisionner un nouveau pool de travailleurs avec la nouvelle variante, puis à supprimer l'ancien pool de travailleurs. Ce processus remplaçant les nœuds, toutes les données présentes sur les nœuds de travail qui ne sont pas stockées sur un support de stockage persistant sont définitivement supprimées.

Avant de commencer

Pour mettre à jour les versions

  1. Affichez la liste des noeuds worker disponibles et notez leur adresse IP privée.

    1. Affichez la liste des pools de noeuds worker disponibles dans votre cluster.
        ibmcloud ks worker-pool ls --cluster CLUSTER
        ```
    2. Affichez la liste des noeuds worker figurant dans le pool de noeuds worker. Notez les valeurs des zones **ID** et **Adresse IP privée**.
    ```sh {: pre}
        ibmcloud ks worker ls --cluster CLUSTER --worker-pool WORKER-POOL
        ```
    3. Affichez les détails relatifs à votre noeud worker. Dans la sortie, notez la zone et l'ID du VLAN privé ou public pour les clusters classiques ou l'ID du sous-réseau pour les clusters de VPC.
    ```sh {: pre}
        ibmcloud ks worker get --cluster CLUSTER --worker WORKER-ID
        ```
    
  2. Répertoriez les versions disponibles dans la zone.

    ibmcloud ks flavors --zone <zone>
    
  3. Créez un noeud worker avec le nouveau type de machine.

    1. Créez un pool de noeuds worker avec le nombre de noeuds worker que vous désirez remplacer.
      • Clusters classiques :
        ibmcloud ks worker-pool create classic --name WORKER-POOL --cluster CLUSTER --flavor FLAVOR --size-per-zone NUMBER-OF-WORKERS-PER-ZONE
        
      • Clusters VPC de génération 2 :
        ibmcloud ks worker-pool create vpc-gen2 --name NAME --cluster CLUSTER --flavor FLAVOR --size-per-zone NUMBER-OF-WORKERS-PER-ZONE --label LABEL
        
    2. Vérifiez que le pool de noeuds worker est créé.
        ibmcloud ks worker-pool ls --cluster CLUSTER
        ```
    3. Ajoutez la zone de votre pool de noeuds worker que vous avez récupérée auparavant. Lorsque vous ajoutez une zone, les noeuds worker définis dans votre pool de noeuds worker sont mis à disposition dans cette zone et pris en compte pour la planification des charges de travail à venir. Si vous souhaitez répartir vos noeuds worker sur plusieurs zones, sélectionnez un emplacement multizone [classique](/docs/containers?topic=containers-regions-and-zones#zones-mz) ou [VPC](/docs/containers?topic=containers-regions-and-zones#zones-vpc).
        * Clusters classiques :
            ```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
            ```
        * Clusters VPC :
            ```sh {: pre}
            ibmcloud ks zone add vpc-gen2 --zone ZONE --cluster CLUSTER --worker-pool WORKER-POOL --subnet-id VPC-SUBNET-ID
            ```
    
  4. Patientez jusqu'à la fin du déploiement des noeuds worker. Lorsque l'état des noeuds worker passe à Normal, le déploiement est terminé.

    ibmcloud ks worker ls --cluster CLUSTER
    
  5. Supprimez l'ancien pool de travailleurs. Si vous supprimez une instance Classic bare metal (facturée mensuellement), vous serez facturé pour le mois entier, même si vous la supprimez en cours de mois. Les instances VPC, y compris les instances bare metal, sont facturées à l’heure.

    1. Supprimez le pool de noeuds worker associé à l'ancien type de machine. Cette opération retire tous les noeuds worker qui se trouvent dans le pool dans toutes les zones. L'exécution de ce processus peut prendre quelques minutes.
        ibmcloud ks worker-pool rm --worker-pool WORKER-POOL --cluster CLUSTER
        ```
    2. Vérifiez que le pool de noeuds worker est supprimé.
    ```sh {: pre}
        ibmcloud ks worker-pool ls --cluster CLUSTER
        ```
    
  6. Vérifiez que les noeuds worker ont été supprimés de votre cluster.

    ibmcloud ks worker ls --cluster CLUSTER
    
  7. Répétez ces étapes pour mettre à jour d'autres pools de noeuds worker ou d'autres noeuds worker autonomes vers différentes versions.

Comment les pools de noeuds worker sont-ils réduits?

Cette section décrit la logique de hiérarchisation automatique utilisée lorsque des nœuds de travail sont supprimés lors d'une réduction d'échelle, par exemple après une mise à jour d'un nœud de travail ou lorsque vous exécutez ibmcloud ks worker-pool resize. Vous n'avez pas besoin de configurer ce comportement : il s'active automatiquement.

Lorsque le nombre de nœuds de travail dans un pool de travail est réduit, ces nœuds sont classés par ordre de priorité en vue de leur suppression en fonction de plusieurs critères, notamment leur état, leur intégrité et leur version.

Cette logique de priorité n'est pas pertinente pour le module complémentaire de mise à l'échelle automatique.

Le tableau suivant montre l'ordre dans lequel les noeuds worker sont prioritaires pour la suppression.

Vous pouvez exécuter la commande ibmcloud ks worker ls pour afficher toutes les propriétés de noeud worker répertoriées dans le tableau.

Priorité des noeuds worker supprimés lors de la réduction du pool de noeuds worker.
Priorité Propriété Description
1 Etat du noeud worker Les noeuds worker dont l'état ne fonctionne pas ou qui ne fonctionnent pas correctement sont prioritaires pour le retrait. Cette liste affiche les états classés de la priorité la plus élevée à la priorité la plus faible: provision_failed, deploy_failed, deleting, provision_pending, provisioning, deploying, provisioned, reloading_failed, reloading, deployed.
2 Santé des nœuds worker Les noeuds worker défaillants sont prioritaires par rapport aux noeuds worker en bonne santé. Cette liste affiche les états de santé classés de la priorité la plus élevée à la priorité la plus faible: critical, warning, pending, unsupported, normal.
3 Version du noeud worker Les noeuds worker qui s'exécutent sur des versions plus anciennes ont une priorité de suppression plus élevée.
4 Cadre de placement choisi Pour les noeuds worker exécutés sur un hôte dédié uniquement. Les noeuds worker qui s'exécutent sur un hôte dédié dont l'option DesiredPlacementDisabled est définie sur true ont une priorité plus élevée pour la suppression.
5 ordre alphabétique Une fois les noeuds worker classés par ordre de priorité en fonction des facteurs répertoriés ci-dessus, ils sont supprimés par ordre alphabétique. Notez que, en fonction des conventions d'ID de noeud worker, les ID des noeuds worker sur les clusters classiques et VPC sont en corrélation avec l'âge, de sorte que les noeuds worker plus anciens sont supprimés en premier.

Mise à jour des composants de cluster

Votre cluster IBM Cloud Kubernetes Service est livré avec des composants, par exemple, Ingress, qui s'installent automatiquement lorsque vous mettez à disposition le cluster. Par défaut, ces composants sont automatiquement mis à jour par IBM. Cependant, vous pouvez désactiver les mises à jour automatiques pour certains composants afin d'effectuer leur mise à jour manuellement indépendamment du maître et des noeuds worker.

Quels composants par défaut puis-je mettre à jour séparément du cluster?
Vous pouvez éventuellement désactiver les mises à jour automatiques des composants suivants :
Y a-t-il des composants que je ne peux pas mettre à jour séparément du cluster?
Oui. Votre cluster est déployé avec les composants gérés suivants et les ressources associées qui ne peuvent pas être changées, à l'exception des pods d'échelle ou des configmaps d'édition pour certains avantages de performances. Si vous essayez de modifier l'un de ces composants de déploiement, leurs paramètres d'origine sont restaurés à intervalles réguliers lorsqu'ils sont mis à jour avec le maître cluster. Toutefois, les ressources que vous créez qui sont associées à ces composants, telles que les règles réseau Calico que vous créez pour être implémentées par les composants de déploiement Calico, ne sont pas mises à jour.
  • calico composants
  • coredns composants
  • ibm-cloud-provider-ip
  • ibm-file-plugin
  • ibm-keepalived-watcher
  • ibm-master-proxy
  • ibm-storage-watcher
  • kubernetes-dashboard composants
  • metrics-server
  • Composants olm-operator et catalog (versions 1.16 et suivantes)
  • vpn
Puis-je installer d'autres plug-ins ou modules complémentaires que les composants par défaut?
Oui. IBM Cloud Kubernetes Service propose d'autres plug-ins et modules complémentaires parmi lesquels vous pouvez choisir pour étendre les fonctionnalités de votre cluster. Par exemple, vous pouvez utiliser les graphiques d' Helm s pour installer le plug-in de stockage en blocs. Vous pouvez également activer les modules complémentaires gérés par IBM dans votre cluster. Vous devez mettre à jour ces chartes Helm et modules complémentaires séparément en suivant les instructions fournies dans les fichiers readme de la charte Helm ou en suivant les étapes de mise à jour des modules complémentaires gérés.

Gestion des mises à jour automatiques pour Fluentd

Lorsque vous créez une configuration de journalisation pour une source dans votre cluster pour l'acheminement vers un serveur externe, un composant Fluentd est créé dans le cluster. Pour modifier vos configurations de journalisation ou de filtre, le composant Fluentd doit être à la dernière version. Par défaut, les mises à jour automatiques du composant sont activées.

Pour exécuter les commandes suivantes, vous devez disposer du rôle d'accès à la plateforme IAM Administrateur IBM Cloud pour le cluster.

Vous pouvez gérer les mises à jour automatiques du composant Fluentd de plusieurs manières indiquées ci-après.

  • Vérifiez si les mises à jour automatiques sont activées en exécutant ibmcloud ks logging autoupdate get --cluster CLUSTER commande.
  • Désactivez les mises à jour automatiques en exécutant la commandeibmcloud ks logging autoupdate disable.
  • Si les mises à jour automatiques sont désactivées et que vous devez modifier votre configuration, il y a deux options possibles :
    • Activez les mises à jour automatiques pour vos pods Fluentd.
        ibmcloud ks logging autoupdate enable --cluster CLUSTER
        ```
    * Forcez une mise à jour unique lorsque vous utilisez une commande de journalisation comportant l'option `--force-update`. Vos pods sont mis à jour vers la dernière version du composant Fluentd, mais Fluentd ne se mettra plus à jour automatiquement par la suite.
            Exemple de commande
    
    ```sh {: pre}
        ibmcloud ks logging config update --cluster CLUSTER --id LOG-CONFIG-ID --type LOG-TYPE --force-update
        ```
    

Gestion des mises à jour automatiques pour les équilibreurs de charge d'application Ingress

Contrôlez à quel moment doit s'effectuer la mise à jour du composant d'équilibreur de charge d'application (ALB) Ingress. Pour savoir comment maintenir à jour les équilibreurs de charge d'application, voir Gestion du cycle de vie de l'équilibreur de charge d'application Ingress.

Mise à jour des modules complémentaires gérés

Les modules complémentaires pour clusters gérés IBM Cloud Kubernetes Service constituent un moyen simple d’enrichir votre cluster avec des fonctionnalités open source, telles qu’ Istio. La version de l'outil open source que vous ajoutez à votre cluster est testée par IBM et approuvée en vue de son utilisation dans IBM Cloud Kubernetes Service. Pour mettre à jour vers la dernière version des modules complémentaires gérés que vous avez activés dans votre cluster, voir Mise à jour des modules complémentaires gérés.