Mettre à jour les charges de travail sans état

Cette page explique comment mettre à jour les charges de travail sans état existantes exécutées dans un cluster Kubernetes isolé de Google Distributed Cloud (GDC). À 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.

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 sans état, demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle Administrateur de l'espace de noms (namespace-admin) dans l'espace de noms de votre projet.

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 du projet.

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

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

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

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

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