私の舵グラフには12個のポッドがあります。いくつかの値を変更した後に_helm upgrade
_したとき、すべてのポッドは1つを除いて再起動されます。
私の質問は:
_helm upgrade
_アップグレードの影響を受けていなくても、ポッドを再起動しますか?
別の方法でそれを置く:
それは_helm upgrade
_それらがアップグレードの影響を受ける場合にのみ、ポッドを再起動しますか?
私が心配している限りでは、アップグレードの影響を受けるポッドだけを再起動します
--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
_
最初に仕事を削除して実行する必要があります
helm history <release_name>
helm rollback <release_name> <number> --recreate-pods
_
--recreate-pods
_舵3で取り除かれており、確かに いくつかのHELMユーザー 。
展開POD仕様のタイムスタンプを使用して、ポッドを再作成するように強制します。仕様にある必要があることに注意してください。これは展開トップレベルでは機能しません。
spec:
template:
metadata:
annotations:
releaseTime: {{ dateInZone "2006-01-02 15:04:05Z" (now) "UTC"| quote }}
_