Mettre à jour les charges de travail sans état

Ce document explique comment mettre à jour les charges de travail sans é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.

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 disposer des ressources et des rôles suivants :

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

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

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

    • Utilisez le chemin kubeconfig du cluster Kubernetes pour remplacer KUBERNETES_CLUSTER_KUBECONFIG dans ces instructions.

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

  • Pour obtenir les autorisations requises pour mettre à jour les charges de travail sans état dans un cluster standard, demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle Développeur de cluster (cluster-developer) dans un cluster standard.

Mettre à jour le déploiement

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

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

Remplacez les éléments suivants :

  • KUBERNETES_CLUSTER_KUBECONFIG : fichier kubeconfig du cluster exécutant le déploiement.

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

  • DEPLOYMENT_FILE : nom du fichier manifeste Deployment à mettre à 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.

Il existe également plusieurs autres façons de mettre à jour les ressources de votre déploiement.

Mettre à jour une image de conteneur

Pour modifier l'image d'un objet Deployment, exécutez la commande suivante :

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    set image deployment DEPLOYMENT_NAME \
    IMAGE=IMAGE:TAG

Remplacez les éléments suivants :

  • KUBERNETES_CLUSTER_KUBECONFIG : fichier kubeconfig du cluster exécutant le déploiement.

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

  • DEPLOYMENT_NAME : nom de l'objet Deployment contenant l'image.

  • IMAGE : nom de l'image du conteneur.

  • TAG : tag à mettre à jour pour l'image de conteneur.

La mise à jour de l'image d'un déploiement est utile pour modifier les champs de sélecteur ou les ressources, telles que les requêtes ou les limites.

Par exemple, pour mettre à jour un objet Deployment nommé nginx afin d'utiliser la version 1.9.1, exécutez la commande suivante :

kubectl --kubeconfig /tmp/kubeconfig.yaml -n my-namespace \
    set image deployment nginx nginx=nginx:1.9.1

Lancer le rollback d'une mise à jour

Si vous souhaitez annuler une mise à jour, par exemple lorsque votre déploiement devient instable, utilisez la CLI kubectl. L'historique de déploiement d'un objet Deployment est conservé dans le système. Vous pouvez donc effectuer un rollback à tout moment.

Pour restaurer la révision précédente d'une mise à jour en cours ou terminée, exécutez la commande suivante :

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME

Remplacez les éléments suivants :

  • KUBERNETES_CLUSTER_KUBECONFIG : fichier kubeconfig du cluster exécutant le déploiement.

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

  • DEPLOYMENT_NAME : nom de l'objet Deployment à annuler.

Pour revenir à une révision spécifique, exécutez la commande suivante :

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME \
    --to-revision=REVISION_NUMBER

Remplacez les éléments suivants :

  • KUBERNETES_CLUSTER_KUBECONFIG : fichier kubeconfig du cluster exécutant le déploiement.

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

  • DEPLOYMENT_NAME : nom de l'objet Deployment à annuler.

  • REVISION_NUMBER : entier définissant la révision à laquelle revenir, par exemple 3.

Étapes suivantes