目录中的示例文件:
.
├── test21.css
├── test22.css
├── test2.xml
└── test.xml
Create configmap:
kubectl create configmap example --from-file=./
示例配置图:
apiVersion: v1
data:
test.xml: |
test1
test1
test2.xml: |
test2
test2
test21.css: |
test21
test21
test22.css: |
test22
test22
kind: ConfigMap
具有投影 ConfigMap 键的卷的示例 pod:
apiVersion: v1
kind: Pod
metadata:
name: busy
spec:
containers:
- name: busybox
image: k8s.gcr.io/busybox
command: ["/bin/sh"]
args: ["-c", "sleep 200"]
volumeMounts:
- mountPath: /test
name: data1
volumes:
- name: data1
configMap:
name: example
items:
- key: test.xml
path: test.xml
- key: test2.xml
path: test2.xml
- key: test21.css
path: layout/test21.css
- key: test22.css
path: layout/test22.css
笔记:
您可以基于每个文件将密钥投射到特定路径和特定权限。
您可以使用投影卷将此示例与不同的源(如秘密和配置映射)结合起来:投影卷将多个现有卷源映射到同一目录中。
apiVersion: v1
kind: Pod
metadata:
name: busy
spec:
containers:
- name: busybox
image: k8s.gcr.io/busybox
command: ["/bin/sh"]
args: ["-c", "sleep 200"]
volumeMounts:
- mountPath: /test
name: data1
volumes:
- name: data1
projected:
sources:
- configMap:
name: example
items:
- key: test.xml
path: test.xml
- key: test2.xml
path: test2.xml
- key: test21.css
path: layout/test21.css
- key: test22.css
path: layout/test22.css
另一种方法是使用 zip/jar 文件作为 configmap(configmap 支持二进制文件),因此在安装后可以将其解压缩到容器内的所需路径,或使用 init 容器准备适当的文件夹结构或使用重新填充的数据构建图像。
资源:
希望这有帮助。