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 :
Recherchez le nom du cluster Kubernetes ou demandez-le à votre administrateur de plate-forme.
Connectez-vous et générez le fichier kubeconfig pour le cluster Kubernetes si vous n'en avez pas.
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 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 du projet.DEPLOYMENT_NAME
: nom de l'objetDeployment
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'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 du projet.DEPLOYMENT_NAME
: nom de l'objetDeployment
à annuler.REVISION_NUMBER
: entier définissant la révision à laquelle revenir, par exemple3
.