Mon graphique de barre a quelque 12 pods. Quand j'ai fait helm upgrade
Après avoir changé certaines valeurs, toutes les gousses sont redémarrées à l'exception d'une.
ma question est:
Sera helm upgrade
redémarrez les pods même s'ils ne sont pas affectés par la mise à niveau?
Mettez-le d'une autre manière:
Est-ce helm upgrade
Redémarrez des pods uniquement si elles sont affectées par la mise à niveau?
Autant que je suis inquiet, la barre redémarre uniquement les gousses qui sont touchées par la mise à niveau
Si vous voulez redémarrer tous les pods, vous pouvez utiliser drapeau de pods -recree-pods
--Recreate-Pods -> Effectue le redémarrage des pods pour la ressource, le cas échéant
Par exemple, si vous avez un tableau de tableau de bord, vous pouvez utiliser cette commande pour redémarrer chaque pod.
helm upgrade --recreate-pods -i k8s-dashboard stable/k8s-dashboard
Il y a un problème GitHub qui fournit une autre solution de contournement pour cela
Chaque fois que vous devez redémarrer les pods, modifiez la valeur de cette annotation. Une bonne annotation pourrait être horodatage
Tout d'abord, ajoutez une annotation au pod. Si votre graphique est de type de déploiement aimable, ajoutez une annotation à SPEC.TEMPLATE.METADATA.Annotations. Par exemple:
kind: Deployment
spec:
template:
metadata:
labels:
app: ecf-helm-satellite-qa
annotations:
timestamp: "{{ .Values.timestamp }}"
Déployer cela. Maintenant, chaque fois que vous définissez TimeStamp dans la commande Helm. Kubettes va déployer une nouvelle mise à jour sans temps d'arrêt.
helm upgrade ecf-helm-satellite-qa . --set-string timestamp=a_random_value
vous devez d'abord supprimer le travail et courir
helm history <release_name>
helm rollback <release_name> <number> --recreate-pods
--recreate-pods
a été supprimé dans Helm 3 et cela a certainement attiré l'attention de certains utilisateurs de la barre .
Je force les gousses à être recréées à l'aide d'un horodatage dans la spécification de pod de déploiement. Notez qu'il doit être dans la spécification, cela ne fonctionnera pas au niveau supérieur de déploiement:
spec:
template:
metadata:
annotations:
releaseTime: {{ dateInZone "2006-01-02 15:04:05Z" (now) "UTC"| quote }}