helm读取配置文件挂载到pod中

本文主要记录了如何使用configMap读取配置文件并挂载到pod中。

helm安装包结构

1
2
3
4
5
6
7
8
9
10
11
# tree
.
├── Chart.yaml
├── etc
│   └── kv.json
├── README.md
├── templates
│   ├── service.yaml
│   └── statefulset.yaml
└── values.yaml
目标读取etc目录下的配置文件并放入到pod的/etc/config目录下

定义configmap.yaml文件

1
2
3
4
5
6
7
8
在templates目录下创建configmap.yaml文件,内容如下:
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-template
data:
{{ (.Files.Glob "etc/*").AsConfig | indent 2 }}
表示读取etc/下面的所有文件

修改statefulset.yaml

1
2
3
4
5
6
7
8
在volumeMounts:下添加:
- name: config
mountPath: /etc/config
在volumes:下添加:
- name: config
configMap:
name: {{ .Release.Name }}-template
表示configMap挂载在pod的/etc/config下。

安装

1
helm install ./xxx --name {pod} --namespace {namespace}

查看是否挂载成功

1
2
3
4
5
6
进入pod
kubectl exec -ti {pod} -n {namespace} /bin/sh
查看目录/etc/config/
/ # ls etc/config/
kv.json
能够读取到kv.json
ulysses wechat
订阅+