【发布时间】:2020-10-13 15:26:37
【问题描述】:
我对 helm 和 kubernetes 还很陌生,所以我不确定这是一个错误还是我做错了什么。在发布之前,我到处寻找答案,但找不到任何可以回答我问题的东西。
我有一个使用持久卷和初始化容器的部署。我将值传递给 helm,让 helm 知道初始化容器的图像是否已更改,或者主应用程序容器是否已更改。
可能相关但可能不相关:我需要为一系列 Web 源(我称之为收集器)部署一个部署。我不知道这最后一部分是否相关,但如果我这样做了,我可能就不会在这里了。
当我跑步时
helm upgrade --install my-release helm_chart/ --values values.yaml --set init_image_tag=$INIT_IMAGE_TAG --set image_tag=$IMAGE_TAG
第一次一切正常。但是,当我第二次运行它时,INIT_IMAGE_TAG 相同,但 IMAGE_TAG 改变了
- a) 它尝试重新初始化 pod
- b) 无法重新初始化 pod,因为它无法挂载卷
预期行为:
- a) 不要重新初始化 pod,因为 init 容器没有改变
- b) 挂载卷
我的 values.yaml 只包含一个名为 collectors 的列表
我的模板只是:
{{ $env := .Release.Namespace }}
{{ $image_tag := .Values.image_tag }}
{{ $init_image_tag := .Values.init_image_tag }}
{{- range $colname := .Values.collectors }}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ $colname }}-claim
spec:
accessModes:
- ReadWriteOnce
storageClassName: ebs-sc
resources:
requests:
storage: 10Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ $colname }}-ingest
labels:
app: {{ $colname }}-ingest
spec:
replicas: 1
selector:
matchLabels:
app: {{ $colname }}-ingest
template:
metadata:
labels:
app: {{ $colname }}-ingest
spec:
fsGroup: 1000
containers:
- name: {{ $colname }}-main
image: xxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/main_image:{{ $image_tag }}
env:
- name: COLLECTOR
value: {{ $colname }}
volumeMounts:
- name: storage
mountPath: /home/my/dir
initContainers:
- name: {{ $colname }}-init
image: xxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/init_image:{{ $init_image_tag }}
volumeMounts:
- name: storage
mountPath: /home/my/dir
env:
- name: COLLECTOR
value: {{ $colname }}
volumes:
- name: storage
persistentVolumeClaim:
claimName: {{ $colname }}-claim
---
{{ end }}
helm version 的输出:version.BuildInfo{Version:"v3.2.0-rc.1", GitCommit:"7bffac813db894e06d17bac91d14ea819b5c2310", GitTreeState:"clean", GoVersion:"go1.13.10"}
kubectl version 的输出:客户端版本:version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.3", GitCommit:"06ad960bfd03b39c8310aaf92d1e7c12ce618213", GitTreeState:"clean", BuildDate: “2020-02-11T18:14:22Z”,GoVersion:“go1.13.6”,编译器:“gc”,平台:“linux/amd64”}
服务器版本:version.Info{Major:"1", Minor:"14+", GitVersion:"v1.14.9-eks-f459c0", GitCommit:"f459c0672169dd35e77af56c24556530a05e9ab1", GitTreeState:"clean", BuildDate:"2020-03 -18T04:24:17Z", GoVersion:"go1.12.12", 编译器:"gc", 平台:"linux/amd64"}
云提供商/平台(AKS、GKE、Minikube 等):EKS
有谁知道这是一个错误还是我以某种方式误用了 helm/kubernetes?
谢谢
【问题讨论】:
标签: kubernetes-helm kubernetes-pvc kubernetes-deployment