web-dev-qa-db-fra.com

Mettre à jour une image de déploiement dans Kubernetes

Je suis très nouveau sur Kubernetes et j'utilise k8s v1.4, Minikube v0.15.0 et le plugin Spotify maven Docker.
Le processus de construction de mon projet crée une image Docker et la pousse directement dans le moteur Docker de Minikube.

Les pods sont créés par le déploiement que j'ai créé (à l'aide du jeu de réplicas) et la stratégie a été définie sur type: RollingUpdate.

Je l'ai vu dans la documentation:

Remarque: le déploiement d'un déploiement est déclenché si et seulement si le modèle de module de déploiement (c'est-à-dire .spec.template) est modifié.


.

15
yuval simhon

lorsque vous ne changez pas le nom ou la balise de l'image du conteneur, vous devez simplement redimensionner votre application à 0 et revenir à la taille d'origine avec sth comme:

kubectl scale --replicas=0 deployment application
kubectl scale --replicas=1 deployment application

Comme mentionné dans les commentaires déjà ImagePullPolicy: Always est alors requis dans votre configuration.

Lors du changement d'image, j'ai trouvé que c'était la façon la plus simple de mettre à jour

kubectl set image deployment/application app-container=$IMAGE

Si vous ne changez pas l'image, vous avez le downsite sur lequel vous n'aurez rien à faire en cas de problème. Par conséquent, je ne suggère pas d'utiliser cela en dehors d'un environnement de développement.


Edit: petit bonus - garder la balance synchronisée avant et après pourrait sembler qc. comme:

replica_spec=$(kubectl get deployment/applicatiom -o jsonpath='{.spec.replicas}')
kubectl scale --replicas=0 deployment application
kubectl scale --replicas=$replica_spec deployment application

À votre santé

13
pagid