gpt4 book ai didi

kubernetes - ConfigMap 挂载在 Persistent Volume Claims 上

转载 作者:行者123 更新时间:2023-12-02 11:55:34 24 4
gpt4 key购买 nike

在我的部署中,我想将持久卷声明与配置映射挂载结合使用。例如,我想要以下内容:

volumeMounts:
- name: py-js-storage
mountPath: /home/python
- name: my-config
mountPath: /home/python/my-config.properties
subPath: my-config.properties
readOnly: true
...
volumes:
- name: py-storage
{{- if .Values.py.persistence.enabled }}
persistentVolumeClaim:
claimName: python-storage
{{- else }}
emptyDir: {}
{{- end }}

这是一种可行且可行的方法吗?有没有更好的方法来处理这种情况?

最佳答案

由于您没有给出您的用例,我的回答将基于是否可能。事实上:是的。

我假设您希望从 configMap 挂载文件在已经包含其他文件的挂载点中,以及您使用 subPath 的方法是正确的!

当需要在同一路径挂载不同的卷时,需要指定subPath否则原始目录的内容将被隐藏

换句话说,如果你想保留两个文件(从挂载点从 configMap)你必须使用 subPath .

为了说明这一点,我使用下面的部署代码进行了测试。我在那里挂载了 hostPath /mnt包含一个名为 filesystem-file.txt 的文件在我的 pod 和文件中 /mnt/configmap-file.txt来 self 的配置图 test-pd-plus-cfgmap :

Note: I'm using Kubernetes 1.18.1

配置图:

apiVersion: v1
kind: ConfigMap
metadata:
name: test-pd-plus-cfgmap
data:
file-from-cfgmap: file data

部署:


apiVersion: apps/v1
kind: Deployment
metadata:
name: test-pv
spec:
replicas: 3
selector:
matchLabels:
app: test-pv
template:
metadata:
labels:
app: test-pv
spec:
containers:
- image: nginx
name: nginx
volumeMounts:
- mountPath: /mnt
name: task-pv-storage
- mountPath: /mnt/configmap-file.txt
subPath: configmap-file.txt
name: task-cm-file
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: task-pv-claim
- name: task-cm-file
configMap:
name: test-pd-plus-cfgmap

部署完成后,可以在/mnt看到如下内容 pod :

$ kubectl exec test-pv-5bcb54bd46-q2xwm -- ls /mnt
configmap-file.txt
filesystem-file.txt

你可以查看这个 github issue进行相同的讨论。

Here你可以阅读更多关于卷的内容subPath .

关于kubernetes - ConfigMap 挂载在 Persistent Volume Claims 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61266532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com