首页 > 解决方案 > Helm upgrade --install 没有接受新的更改

问题描述

我在我的构建 CI 中使用下面的命令,以便在每个构建上都进行 helm 部署。但是,我注意到未部署更改。

              helm upgrade --install --force \
              --namespace=default \
              --values=kubernetes/values.yaml \
              --set image.tag=latest \
              --set service.name=my-service \
              --set image.pullPolicy=Always \
              myService kubernetes/myservice

我需要每次都标记图像吗?如果存在相同的版本,helm 不会进行安装吗?

标签: kubernetes-helm

解决方案


您不必每次都使用新标签来标记图像。只需添加

date: "{{ now | unixEpoch }}"

spec/template/metadata/labels并设置imagePullPolicy: Always。Helm 会检测部署对象的变化,每次都会拉取最新的镜像:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: "{{ .Release.Name }}-{{ .Values.app.frontendName }}-deployment"
  labels:
    app.kubernetes.io/name: {{ .Values.app.frontendName }}
    app.kubernetes.io/instance: {{ .Release.Name }}
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      app.kubernetes.io/name: {{ .Values.app.frontendName }}
      app.kubernetes.io/instance: {{ .Release.Name }}
  template:
    metadata:
      labels:
        app.kubernetes.io/name: {{ .Values.app.frontendName }}
        app.kubernetes.io/instance: {{ .Release.Name }}
        date: "{{ now | unixEpoch }}"
    spec:
      containers:
        - name: {{ .Values.app.frontendName }}
          image: "rajesh12/myimage:latest"
          imagePullPolicy: Always

运行helm upgrade releaseName ./my-chart以升级您的版本


推荐阅读