这个问题的答案其实非常简单,而且Projected Volume是k8s从1.11版本就已经具备的一个功能,在此之前我们如果希望将 secret和configmap挂载到同一个目录下面,是无法完成的,因为目录挂载会发生覆盖,后挂载的目录会覆盖之前的内容。
Projected Volume可以将 secret、downwardAPI 以及 configMap 挂载到同一个目录。下面的Yaml是一个将 secret、downwardAPI 、configMap 挂载到一个目录“/projected-volume”的demo。
apiVersion: v1
kind: Pod
metadata:
name: volume-test
spec:
containers:
- name: container-test
image: nginx
volumeMounts:
- name: all-in-one
mountPath: "/projected-volume"
readOnly: true
volumes:
- name: all-in-one
projected:
sources:
- secret:
name: mysecret
- downwardAPI:
items:
- path: "labels"
fieldRef:
fieldPath: metadata.labels
- path: "cpu_limit"
resourceFieldRef:
containerName: container-test
resource: limits.cpu
- configMap:
name: myconfigmap
进入容器后可以查看具体内容的
# kubectl exec -it volume-test sh
# cd /projected-volume
# ls
config cpu_limit labels username
# cat config
myconfig
# cat username
myusername
# exit
补充一下,我们需要提前创建上面的configmap和secret。
# echo "myconfig"> config
# echo "myusername"> username
# kubectl create secret generic mysecret --from-file=username
# kubectl create configmap myconfigmap --from-file=config
页面更新:2024-04-26
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号