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_KUBECONFIGdans 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 manifesteDeploymentà 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'objetDeploymentcontenant 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'objetDeploymentà 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'objetDeploymentà annuler.REVISION_NUMBER: entier définissant la révision à laquelle revenir, par exemple3.
Étapes suivantes
- Mettre à niveau un cluster
- Isoler les charges de travail des conteneurs
- Gérer les clusters Kubernetes