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 d'appliance 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.

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.

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

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

Préparer votre environnement

Pour exécuter des commandes sur le cluster Kubernetes Bare Metal préconfiguré, 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 CLUSTER_KUBECONFIG dans ces instructions.

Mettre à jour le déploiement

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

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

Remplacez les éléments suivants :

  • CLUSTER_KUBECONFIG : fichier kubeconfig du cluster Kubernetes 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 CLUSTER_KUBECONFIG -n NAMESPACE \
    set image deployment DEPLOYMENT_NAME \
    IMAGE=IMAGE:TAG

Remplacez les éléments suivants :

  • CLUSTER_KUBECONFIG : fichier kubeconfig du cluster Kubernetes 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 de 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 effectuer un rollback d'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 effectuer un rollback d'une mise à jour en cours ou terminée vers sa révision précédente, exécutez la commande suivante :

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

Remplacez les éléments suivants :

  • CLUSTER_KUBECONFIG : fichier kubeconfig du cluster Kubernetes 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 CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME \
    --to-revision=REVISION_NUMBER

Remplacez les éléments suivants :

  • CLUSTER_KUBECONFIG : fichier kubeconfig du cluster Kubernetes 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.