当 configmap 更改时,Helm chart 重新启动 pods
Helm chart restart pods when configmap changes
当有 confimap 或秘密更改时,我正在尝试重新启动 pods。我尝试了与以下描述的相同的代码:https://github.com/helm/helm/blob/master/docs/charts_tips_and_tricks.md#automatically-roll-deployments-when-configmaps-or-secrets-change
但是,更新 configmap 后,我的 pod 没有重新启动。您知道这里可能做错了什么吗?
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: {{ template "app.fullname" . }}
labels:
app: {{ template "app.name" . }}
{{- include "global_labels" . | indent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: {{ template "app.name" . }}
release: {{ .Release.Name }}
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap.yml") . | sha256sum }}
checksum/secret: {{ include (print $.Template.BasePath "/secret.yml") . | sha256sum }}
Helm 和 Kubernetes 都没有为 ConfigMap 更改提供特定的滚动更新。解决方法已经有一段时间了,就是修补触发滚动更新的部署:
kubectl patch deployment your-deployment -n your-namespace -p '{"spec":{"template":{"metadata":{"annotations":{"date":"$(date)"}}}}}'
你可以看到状态:
kubectl rollout status deployment your-deployment
注意这适用于 nix 机器。直到添加 feature。
更新 05/05/2021
Helm 和 kubectl
现在提供:
头盔:https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments
kubectl: kubectl rollout restart deploy WORKLOAD_NAME
https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments Helm3 现在有这个功能。当 configmap 模板文件发生变化时部署部署。
我使用具有此功能的 configmap 部署了 pod https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments。
当我在运行时编辑 configmap 时,它没有触发滚动部署。
它对我有用,下面是我的 deployment.yaml 文件中的代码片段,确保您的 configmap 和秘密 yaml 文件与注释中提到的相同:
spec:
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/my-configmap.yaml") . | sha256sum }}
checksum/secret: {{ include (print $.Template.BasePath "/my-secret.yaml") . | sha256sum }}
当有 confimap 或秘密更改时,我正在尝试重新启动 pods。我尝试了与以下描述的相同的代码:https://github.com/helm/helm/blob/master/docs/charts_tips_and_tricks.md#automatically-roll-deployments-when-configmaps-or-secrets-change 但是,更新 configmap 后,我的 pod 没有重新启动。您知道这里可能做错了什么吗?
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: {{ template "app.fullname" . }}
labels:
app: {{ template "app.name" . }}
{{- include "global_labels" . | indent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: {{ template "app.name" . }}
release: {{ .Release.Name }}
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap.yml") . | sha256sum }}
checksum/secret: {{ include (print $.Template.BasePath "/secret.yml") . | sha256sum }}
Helm 和 Kubernetes 都没有为 ConfigMap 更改提供特定的滚动更新。解决方法已经有一段时间了,就是修补触发滚动更新的部署:
kubectl patch deployment your-deployment -n your-namespace -p '{"spec":{"template":{"metadata":{"annotations":{"date":"$(date)"}}}}}'
你可以看到状态:
kubectl rollout status deployment your-deployment
注意这适用于 nix 机器。直到添加 feature。
更新 05/05/2021
Helm 和 kubectl
现在提供:
头盔:https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments
kubectl: kubectl rollout restart deploy WORKLOAD_NAME
https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments Helm3 现在有这个功能。当 configmap 模板文件发生变化时部署部署。
我使用具有此功能的 configmap 部署了 pod https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments。 当我在运行时编辑 configmap 时,它没有触发滚动部署。
它对我有用,下面是我的 deployment.yaml 文件中的代码片段,确保您的 configmap 和秘密 yaml 文件与注释中提到的相同:
spec:
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/my-configmap.yaml") . | sha256sum }}
checksum/secret: {{ include (print $.Template.BasePath "/my-secret.yaml") . | sha256sum }}