Mettre à jour les charges de travail avec état

Ce document explique comment mettre à jour les charges de travail avec état existantes exécutées dans un cluster Kubernetes Google Distributed Cloud (GDC) sous air gap. À 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 des charges de travail avec état, consultez la documentation Kubernetes sur les stratégies de mise à jour.

Ce document 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 Audiences pour la documentation GDC sous air gap.

Avant de commencer

Pour effectuer les tâches décrites dans ce document, vous devez demander les autorisations nécessaires et préparer votre environnement.

Demander des rôles IAM

Vous devez disposer de rôles spécifiques pour obtenir les autorisations nécessaires à la mise à jour des charges de travail avec état. Les rôles dont vous avez besoin dépendent du fait que vous travaillez dans un cluster partagé à l'échelle de l'organisation ou dans un cluster standard à l'échelle du projet. Pour en savoir plus, consultez Configurations de cluster Kubernetes.

Rôles de cluster partagé

Pour créer, supprimer, modifier ou afficher des charges de travail dans un cluster partagé, demandez à votre administrateur IAM de projet de vous accorder le rôle Administrateur d'espace de noms (namespace-admin). Ce rôle est lié à l'espace de noms de votre projet.

Rôles de cluster standard

Pour créer, supprimer, modifier ou afficher des charges de travail dans un cluster standard, demandez à votre administrateur IAM de projet de vous accorder le rôle Développeur de cluster (cluster-developer). Ce rôle est lié à l'espace de noms de votre projet.

Préparer votre environnement

Pour exécuter des commandes sur un cluster Kubernetes à l'aide de l'API, assurez-vous de disposer des ressources suivantes :

  • Recherchez le nom du cluster Kubernetes ou demandez-le à un membre du groupe d'administrateurs de plate-forme.

  • Connectez-vous et générez le fichier kubeconfig pour le cluster Kubernetes.

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

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. Pour les clusters partagés, il doit s'agir d'un espace de noms de projet. Pour les clusters standards, il peut s'agir de n'importe quel espace de noms.

  • 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 de la mise à 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. Pour les clusters partagés, il doit s'agir d'un espace de noms de projet. Pour les clusters standards, il peut s'agir de n'importe quel espace de noms.

  • 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. Pour les clusters partagés, il doit s'agir d'un espace de noms de projet. Pour les clusters standards, il peut s'agir de n'importe quel espace de noms.

  • 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. Pour les clusters partagés, il doit s'agir d'un espace de noms de projet. Pour les clusters standards, il peut s'agir de n'importe quel espace de noms.

  • STATEFULSET_NAME: nom de l'objet StatefulSet.

Étape suivante