tou*_*med 3 kubernetes kubernetes-pod
我使用 configMap 来存储挂载路径值,但是当我调用 pod 时,它不起作用,似乎无法将 mountPath 属性分配给环境变量。
这是我的代码:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
env:
- name: MOUNT_PATH
valueFrom:
configMapKeyRef:
name: my-configMap
key: MOUNT_PATH
volumeMounts:
- name: nginx-volume
mountPath: $(MOUNT_PATH)
volumes:
- name: nginx-volume
persistentVolumeClaim:
claimName: my-pvc
---
apiVersion: v1
kind: ConfigMap
metadata:
name: my-configMap
namespace: default
data:
MOUNT_PATH: "/opt/somepath"
Run Code Online (Sandbox Code Playgroud)
如果您使用 k8s 1.17 或更高版本,您可以使用subPath实现您想要的效果。
env:
- name: MOUNT_PATH
valueFrom:
configMapKeyRef:
name: myconfigmap
key: MOUNT_PATH
volumeMounts:
- name: nginx-volume
mountPath: /opt
subPathExpr: $(MOUNT_PATH)
volumes:
- name: nginx-volume
persistentVolumeClaim:
claimName: my-pvc
---
apiVersion: v1
kind: ConfigMap
metadata:
name: myconfigmap
namespace: default
data:
MOUNT_PATH: "somepath"
Run Code Online (Sandbox Code Playgroud)
容器内的结果:
# ls -l /opt
total 4
drwxrwxrwx 2 root root 4096 Oct 29 14:58 somepath
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9682 次 |
| 最近记录: |