Mettre à jour les charges de travail avec état

Cette page explique comment mettre à jour les charges de travail avec état existantes exécutées dans un cluster Kubernetes Google Distributed Cloud (GDC) isolé. À mesure que votre application évolue en fonction de l'utilisation des ressources et des optimisations de configuration, vous devez mettre à jour la spécification de pod sous-jacente dans le cluster Kubernetes pour refléter ces modifications de charge de travail. Pour en savoir plus sur la planification des mises à jour pour les charges de travail avec état, consultez la documentation Kubernetes sur les stratégies de mise à jour.

Cette page s'adresse aux développeurs du groupe d'opérateurs d'applications, qui sont chargés de mettre à jour les charges de travail des applications pour leur organisation. Pour en savoir plus, consultez la documentation sur les audiences pour GDC en mode air-gapped.

Avant de commencer

Pour exécuter des commandes sur un cluster Kubernetes, assurez-vous de disposer des ressources suivantes :

  1. Recherchez le nom du cluster Kubernetes ou demandez-le à votre administrateur de plate-forme.

  2. Connectez-vous et générez le fichier kubeconfig pour le cluster Kubernetes si vous n'en avez pas.

  3. Utilisez le chemin d'accès kubeconfig du cluster Kubernetes pour remplacer KUBERNETES_CLUSTER_KUBECONFIG dans ces instructions.

Pour obtenir les autorisations requises pour mettre à jour les charges de travail avec état, demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle d'administrateur de l'espace de noms (namespace-admin) dans l'espace de noms de votre projet.

Mettre à jour une ressource StatefulSet

Pour mettre à jour le StatefulSet, appliquez un fichier manifeste nouveau ou mis à jour. Cette pratique est utile pour apporter diverses modifications à votre StatefulSet lors du scaling ou pour spécifier une nouvelle version de votre application.

Pour mettre à jour un objet StatefulSet, exécutez la commande suivante :

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    apply -f STATEFULSET_FILE

Remplacez les éléments suivants :

  • KUBERNETES_CLUSTER_KUBECONFIG : fichier kubeconfig du cluster exécutant les charges de travail avec état.

  • NAMESPACE : espace de noms du projet.

  • STATEFULSET_FILE : nom du fichier manifeste StatefulSet mis à jour.

La commande kubectl apply applique un fichier manifeste à une ressource. Si la ressource spécifiée n'existe pas, elle est créée par la commande.

Inspecter le déploiement d'une mise à jour de ressource StatefulSet

Vous pouvez afficher des informations détaillées sur l'état et l'historique du déploiement des mises à jour d'un objet StatefulSet. Vous pouvez également annuler le déploiement d'un objet StatefulSet.

Inspecter le déploiement

Pour inspecter le déploiement de la ressource StatefulSet, exécutez la commande suivante :

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout status statefulset STATEFULSET_NAME
  • KUBERNETES_CLUSTER_KUBECONFIG : fichier kubeconfig du cluster exécutant les charges de travail avec état.

  • NAMESPACE : espace de noms du projet.

  • STATEFULSET_NAME : nom de l'objet StatefulSet mis à jour.

Obtenir l'historique de déploiement

Pour afficher l'historique de déploiement de la ressource StatefulSet, exécutez la commande suivante :

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout history statefulset STATEFULSET_NAME
  • KUBERNETES_CLUSTER_KUBECONFIG : fichier kubeconfig du cluster exécutant les charges de travail avec état.

  • NAMESPACE : espace de noms du projet.

  • STATEFULSET_NAME : nom de l'objet StatefulSet mis à jour.

Annuler un déploiement

Pour annuler un déploiement, exécutez la commande suivante :

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout undo statefulset STATEFULSET_NAME

Remplacez les éléments suivants :

  • KUBERNETES_CLUSTER_KUBECONFIG : fichier kubeconfig du cluster exécutant les charges de travail avec état.

  • NAMESPACE : espace de noms du projet.

  • STATEFULSET_NAME : nom de l'objet StatefulSet.