web-dev-qa-db-ja.com

アップグレードの影響を受けていなくても、「Helm Upgrade」を再起動しますか?

私の舵グラフには12個のポッドがあります。いくつかの値を変更した後に_helm upgrade_したとき、すべてのポッドは1つを除いて再起動されます。

私の質問は

_helm upgrade_アップグレードの影響を受けていなくても、ポッドを再起動しますか?

別の方法でそれを置く

それは_helm upgrade_それらがアップグレードの影響を受ける場合にのみ、ポッドを再起動しますか?

5
Chandu

私が心配している限りでは、アップグレードの影響を受けるポッドだけを再起動します

--recreate-podsフラグを使用できるすべてのポッドを再起動したい場合

--recreate-pods - >該当する場合は、リソースのポッドを再起動します。

たとえば、ダッシュボードチャートがある場合は、このコマンドを使用してすべてのポッドを再起動できます。

helm upgrade --recreate-pods -i k8s-dashboard stable/k8s-dashboard
 _

githubの問題 そのための別の回避策を提供する

ポッドを再起動する必要があるたびに、その注釈の値を変更します。良い注釈はタイムスタンプです

まず、ポッドに注釈を追加します。チャートが種類の展開の場合は、spec.template.metadata.Annotationsに注釈を追加してください。例えば:

kind: Deployment
spec:
  template:
    metadata:
      labels:
        app: ecf-helm-satellite-qa
      annotations:
        timestamp: "{{ .Values.timestamp }}"
 _

それを展開します。さて、HELMコマンドでTimestampを設定するたびに。 Kubernetesはダウンタイムなしで新しいアップデートをロールアウトします。

helm upgrade ecf-helm-satellite-qa . --set-string timestamp=a_random_value
 _
3
jt97

最初に仕事を削除して実行する必要があります

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

--recreate-pods _舵3で取り除かれており、確かに いくつかのHELMユーザー

展開POD仕様のタイムスタンプを使用して、ポッドを再作成するように強制します。仕様にある必要があることに注意してください。これは展開トップレベルでは機能しません。

spec:
  template:
    metadata:
      annotations:
        releaseTime: {{ dateInZone "2006-01-02 15:04:05Z" (now) "UTC"| quote }}
 _
0
Andy Brown