Mettre fin aux noeuds de processus actif et les remplacer

Découvrez comment mettre fin à un noeud de processus actif et le remplacer dans un cluster Kubernetes que vous avez créé à l'aide de Kubernetes Engine (OKE).

Remarque

Vous pouvez uniquement cycler des noeuds pour mettre fin à des noeuds de processus actif et les remplacer lors de l'utilisation de clusters améliorés. Reportez-vous à Utilisation des clusters améliorés et des clusters de base.

Vous pouvez cycler les noeuds pour les arrêter et les remplacer par des formes de machine virtuelle et des formes Bare Metal.

Vous pouvez cycler les noeuds pour mettre fin aux noeuds gérés et les remplacer.

Parfois, la terminaison et le remplacement de noeuds gérés sont les meilleurs moyens de résoudre un problème avec les instances de calcul hébergeant les noeuds. En particulier, lorsqu'un problème peut être résolu simplement en mettant fin à une instance existante et en la remplaçant par une nouvelle instance qui a les mêmes propriétés, ou qui a des propriétés différentes dérivées des propriétés de pool de noeuds modifiées (telles qu'un système d'exploitation hôte modifié ou une forme de calcul modifiée). Par exemple :

  • Pour résoudre toute dérive de configuration qui aurait pu se produire depuis le lancement initial de l'instance.
  • Pour traiter les pannes matérielles sous-jacentes.

A l'aide de Kubernetes Engine, vous pouvez mettre fin aux instances de calcul hébergeant des noeuds gérés et les remplacer de l'une des manières suivantes :

  • Vous pouvez cycler le pool de noeuds contenant les noeuds gérés et sélectionner l'option Remplacer les noeuds, comme décrit dans cette section.
  • Vous pouvez cycler et remplacer des noeuds gérés spécifiques, comme décrit dans cette section.
  • Vous pouvez supprimer un noeud géré spécifique. Si vous n'indiquez pas que vous souhaitez que la suppression de noeud réduise le pool de noeuds, le noeud que vous supprimez est remplacé par un nouveau noeud (reportez-vous à Suppression de noeuds de processus actif).

Lorsque vous cyclez et arrêtez et remplacez un noeud géré, Kubernetes Engine cordonne et draine automatiquement le noeud de processus actif avant de l'arrêter. L'instance de calcul hébergeant le noeud géré prend fin et une instance est créée. La nouvelle instance comporte un nouvel OCID et une nouvelle adresse réseau.

Si vous cyclez tous les noeuds gérés d'un pool de noeuds pour les mettre fin et les remplacer, lorsque de nouvelles instances ont l'état En cours d'exécution, toutes les mises à jour des propriétés de pool de noeuds sont appliquées à tous les noeuds de processus actifs du pool de noeuds. Notez que si vous cyclez un noeud géré individuel pour l'interrompre et le remplacer, toute mise à jour des propriétés du pool de noeuds est appliquée au noeud de remplacement.

En plus de vous permettre d'effectuer la maintenance de routine des noeuds de processus actif, l'interruption et le remplacement de noeuds gérés peuvent également être utiles lorsque vous souhaitez :

Tenez compte des points suivants lors du cyclage pour mettre fin aux noeuds de processus actif et les remplacer :

  • Vous pouvez sélectionner un pool de noeuds gérés pour cycler, arrêter et remplacer tous les noeuds gérés qu'il contient. Vous pouvez également cycler, arrêter et remplacer des noeuds gérés individuels.
  • Vous ne pouvez pas cycler les noeuds autogérés pour les arrêter et les remplacer.

Equilibrage de la disponibilité et des coûts des services lors de la terminaison et du remplacement de noeuds gérés dans des pools de noeuds

Lorsque vous cyclez tous les noeuds gérés d'un pool de noeuds pour y mettre fin et les remplacer, Kubernetes Engine utilise les paramètres de cordon et de purge indiqués pour le pool de noeuds et suit deux stratégies :

  • Créer des noeuds (supplémentaires), puis enlever des noeuds existants : Kubernetes Engine ajoute un ou plusieurs noeuds supplémentaires au pool de noeuds avec les propriétés mises à jour. Lorsque le noeud supplémentaire est actif, Kubernetes Engine connecte un noeud existant, le draine et le supprime du pool de noeuds. Cette stratégie maintient la disponibilité du service, mais coûte plus cher.
  • Enlevez les noeuds existants, puis créez de nouveaux noeuds : Kubernetes Engine connecte un ou plusieurs noeuds existants pour le rendre indisponible, le draine et supprime le noeud du pool de noeuds. Une fois le noeud enlevé, Kubernetes Engine ajoute un nouveau noeud au pool de noeuds pour le remplacer. Cette stratégie coûte moins cher, mais peut compromettre la disponibilité du service.

Pour personnaliser le comportement de Kubernetes Engine en fonction de vos propres exigences en matière de disponibilité et de coût du service, contrôlez et équilibrez les deux stratégies en indiquant des valeurs pour maxSurge et maxUnavailable. Pour plus d'informations, reportez-vous à Equilibrage de la disponibilité et du coût des services lors du cyclage des noeuds gérés dans les pools de noeuds.

Cordonage et vidange lors de la terminaison et du remplacement des noeuds

Lorsque vous sélectionnez un pool de noeuds et indiquez que vous souhaitez mettre fin à ses noeuds de processus actif et les remplacer, Kubernetes Engine connecte, draine et met fin automatiquement aux noeuds gérés existants. Kubernetes Engine utilise les options de cordon et de purge indiquées pour le pool de noeuds.

Lorsque vous sélectionnez un noeud géré individuel et que vous souhaitez l'interrompre et le remplacer, vous pouvez spécifier les options Cordon et purge. Les options Cordon et purge que vous spécifiez pour le noeud géré remplacent les options Cordon et purge spécifiées pour le pool de noeuds.

Pour plus d'informations, reportez-vous à la section Cordoning and Draining Managed Nodes Before Shut Down or Termination

Mettre fin aux noeuds de processus actif et les remplacer

  • Pour mettre fin à tous les noeuds de processus actif d'un pool de noeuds gérés et les remplacer :

    1. Dans la page de liste Clusters, sélectionnez le nom du cluster contenant les noeuds de processus actifs à mettre fin au cluster et à remplacer. Si vous avez besoin d'aide pour trouver la page de liste ou le cluster, reportez-vous à Liste des clusters.
    2. Sélectionnez l'onglet Pools de noeuds, puis le nom du pool de noeuds contenant les noeuds de processus actifs à mettre fin au pool et à remplacer.
    3. Sélectionnez Modifier dans le menu Actions et modifiez une propriété inutilisée du pool de noeuds (par exemple, en indiquant un libellé Kubernetes avec la clé foo et la valeur bar).

      Notez que la propriété que vous modifiez n'est pas pertinente, mais vous devez modifier au moins une propriété.

    4. Dans le menu Actions, sélectionnez Noeuds de cycle.

      Recommandation : utilisez les budgets alloués en cas d'interruption de pod pour votre application afin d'assurer qu'un nombre suffisant d'unités de réplique est exécuté pendant toute l'opération. Pour plus d'informations, reportez-vous à Spécification d'un budget d'interruption pour votre application dans la documentation Kubernetes.

    5. Dans la boîte de dialogue Noeuds de cycle :

      1. Sélectionnez Remplacer les noeuds dans la liste Options de recyclage.
      2. Contrôler le nombre de noeuds à mettre à jour en parallèle et équilibrer la disponibilité et le coût du service en indiquant :
        • Hausse maximale (pourcentage ou nombre maximum de noeuds supplémentaires) : nombre maximum de noeuds supplémentaires à autoriser temporairement dans le pool de noeuds pendant l'opération (exprimé sous forme d'entier ou de pourcentage). Les noeuds supplémentaires sont des noeuds au-delà du nombre spécifié dans la propriété Nombre de noeuds du pool de noeuds. Si vous indiquez un nombre entier pour le nombre de noeuds supplémentaires, n'indiquez pas de nombre supérieur à la valeur Nombre de noeuds.
        • Nombre maximal de noeuds indisponibles (nombre ou pourcentage maximal de noeuds indisponibles) : nombre maximal de noeuds pouvant être indisponibles dans le pool de noeuds au cours de l'opération (exprimé sous forme d'entier ou de pourcentage). Si vous indiquez un nombre entier pour le nombre de noeuds non disponibles, n'indiquez pas de nombre supérieur à la valeur Nombre de noeuds.

        Reportez-vous à Equilibrage de la disponibilité et du coût du service lors de la terminaison et du remplacement de noeuds gérés dans des pools de noeuds.

      3. Sélectionnez Noeuds de cycle pour démarrer l'opération.

      Kubernetes Engine utilise les options Cordon et purge indiquées pour le pool de noeuds afin de connecter et purger les noeuds de processus actif. Pour plus d'informations, reportez-vous à la section Cordoning and Draining Managed Nodes Before Shut Down or Termination.

    6. Surveillez la progression de l'opération en affichant le statut de la demande de travail associée dans l'onglet Demandes de travail (reportez-vous à Obtention des détails d'une demande de travail).

    Pour mettre fin à un noeud géré spécifique et le remplacer :

    1. Dans la page de liste Clusters, sélectionnez le nom du cluster qui contient le noeud de processus actif à réinitialiser. Si vous avez besoin d'aide pour trouver la page de liste ou le cluster, reportez-vous à Liste des clusters.
    2. Sélectionnez l'onglet Pools de noeuds, puis le nom du pool de noeuds contenant le noeud de processus actif à mettre fin et à remplacer.
    3. Dans l'onglet Noeuds, sélectionnez Noeud de cycle dans le menu Actions (trois points) en regard du noeud à mettre fin au noeud et à remplacer.

    4. Dans la boîte de dialogue Noeud de cycle :
      1. Sélectionnez Remplacer le noeud dans la liste Options de recyclage.
      2. Indiquez quand et comment raccorder et vider le noeud de processus actif avant d'effectuer l'action d'arrêt et de remplacement, en spécifiant :

        • Délai de grâce d'expulsion (minutes) : durée pendant laquelle le cordon et la purge du noeud de processus actif doivent être activés avant d'effectuer l'action. Acceptez la valeur par défaut (60 minutes, soit la valeur maximale) ou indiquez une autre valeur. Par exemple, vous pouvez autoriser 30 minutes à câbler un noeud de travail et à le vider de ses charges globales. Pour effectuer l'action immédiatement, sans cordonner ni drainer le noeud de processus actif, spécifiez 0 minute.
        • Forcer l'arrêt après la période de grâce : indique si les noeuds de processus actif doivent être arrêtés à la fin de la période de grâce d'expulsion, même s'ils n'ont pas été correctement cordonnés et vidés. Par défaut, cette option n'est pas sélectionnée.

        Reportez-vous à la section Cordoning and Draining Managed Nodes Before Shut Down or Termination.

      3. Sélectionnez Noeud de cycle pour démarrer l'opération.
    5. Surveillez la progression de l'opération en affichant le statut de la demande de travail associée dans l'onglet Demandes de travail (reportez-vous à Obtention des détails d'une demande de travail).

  • Pour mettre fin à tous les noeuds de processus actif d'un pool de noeuds gérés et les remplacer

    Pour mettre fin à tous les noeuds de processus actif d'un pool de noeuds gérés et les remplacer, utilisez la commande oci ce node-pool update et les paramètres requis :

    oci ce node-pool update --node-pool-id <node-pool-ocid> --node-pool-cycling-details "{\"isNodeCyclingEnabled\":true,\"cycleModes\":\"INSTANCE_REPLACE\",\"maximumUnavailable\":<value>,\"maximumSurge\":<value>}" --<property-to-update> <new-value> [OPTIONS]

    --<property-to-update> <new-value> est une nouvelle valeur pour une propriété de pool de noeuds. Notez que la propriété que vous modifiez n'est pas pertinente, mais vous devez modifier au moins une propriété. Notez également que l'inclusion de \"cycleModes\":\"INSTANCE_REPLACE\" dans le paramètre --node-pool-cycling-details est facultative, car elle est supposée ne pas être explicitement incluse.

    Par exemple :

    oci ce node-pool update --node-pool-id ocid1.nodepool.oc1.iad.aaaaaaa______eya --node-pool-cycling-details "{\"isNodeCyclingEnabled\":true,\"maximumUnavailable\":1,\"maximumSurge\":1}" --initial-node-labels '[{"key": "foo", "value": "bar"}]'

    Pour arrêter et remplacer un noeud géré spécifique

    Pour arrêter et remplacer un noeud géré spécifique, utilisez la commande oci ce node-pool delete-node et les paramètres requis pour supprimer un noeud, et incluez --is-decrement-size false pour indiquer que vous ne souhaitez pas réduire le pool de noeuds :

    oci ce node-pool delete-node --node-pool-id <node-pool-ocid> --node-id <node-ocid> --is-decrement-size false [OPTIONS]
  • Pour mettre fin à tous les noeuds de processus actif d'un pool de noeuds gérés et les remplacer à l'aide de l'API OCI, procédez comme suit :

    Exécutez l'opération UpdateNodePool pour mettre fin à tous les noeuds de processus actif d'un pool de noeuds gérés et les remplacer.

    Pour mettre fin à un noeud géré spécifique et le remplacer à l'aide de l'API OCI, procédez comme suit :

    Exécutez l'opération DeleteNode pour mettre fin à un noeud géré spécifique et le remplacer à l'aide de l'API OCI.