更新kubernetes helm值

ubof19bj  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(6)|浏览(111)

我想在集群上更新一个helm版本的值配置。
就像
第一个月

v9tzhpje

v9tzhpje1#

helm upgrade -f ingress-controller/values.yml nginx-ingress stable/nginx-ingress

字符串
或者更一般地说:

helm upgrade -f new-values.yml {release name} {package name or path} --version {fixed-version}


上面的命令可以完成这项工作。
除非使用--version {fixed-version}参数手动指定版本,否则upgrade也将更新图表版本。您可以使用helm ls找到当前的图表版本。
文档:https://helm.sh/docs/helm/helm_upgrade/

qco9c6ql

qco9c6ql2#

编辑2020-04-03:

不再推荐--recreate-pods --wait。正如Jorden指出的,一种方法是添加校验和注解,这意味着如果文件发生了任何更改,就重新启动pod。参见https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments以供参考。

原始答案

为了补充@stan-bondi的答案,你可以这样做:

helm upgrade --recreate-pods --wait -f new_values.yaml nginx-controller nginx-controller

字符串
当您刚刚更改了configMap或机密,而这些机密不会在版本本身中被检测到。

kninwzqo

kninwzqo3#

这是我如何用新值更新当前图表,而不升级图表版本:

helm upgrade --reuse-values -f values.yaml {release-name} {release-path} --version {fixed-version}

字符串
举例来说:

helm upgrade --reuse-values -f prometheus/values.yaml prometheus-operator stable/prometheus-operator --version 5.7.0 --namespace monitoring


我使用已安装图表的固定版本,并添加--reuse-values标志,以确保保持以前使用的值。

sxissh06

sxissh064#

我只是改变了安装升级,这为我工作。

helm upgrade \
  airflow \
  airflow-stable/airflow \
  --version 7.16.0 \
  --namespace airflow \
  --values airflow.config.yaml

字符串
如果在此之后它仍然给您带来麻烦,您可以像这样回收命名空间中的所有Pod

kubectl delete pods -n airflow --all

clj7thdc

clj7thdc5#

Deployment(或StatefulSet)yaml文件中,如果您使用的是ConfigMapSecret,则可以添加如下校验和:

kind: Deployment
...
spec:
  template:
    metadata:
      annotations:
        checksum/config-env: {{ include (print $.Template.BasePath "/configmap-env.yaml") . | sha256sum }}

...

字符串
这将检测configMap中的更改,而这些更改不会被检测为版本本身的更改。

djp7away

djp7away6#

您可以:
Helm upgrade -f new_values.yaml nginx-controller nginx-controller
这将更新图表的修订版本,可使用以下命令查看:
赫姆公司
或者更具体地:
Helm get nginx-控制器
对于舵图升级,请从文档中查看此链接:https://docs.helm.sh/helm/#helm-upgrade

相关问题