web-dev-qa-db-fra.com

"Mise à niveau de la barre" va-t-elle redémarrer des pods même s'ils ne sont pas affectés par la mise à niveau?

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?

5
Chandu

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
3
jt97

vous devez d'abord supprimer le travail et courir

helm history <release_name>
helm rollback <release_name> <number> --recreate-pods
0
张馆长

--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 }}
0
Andy Brown