这是我的volumeMount:
volumeMounts:
- name: interpreter-spec-volume
mountPath: /zeppelin/k8s/interpreter
Run Code Online (Sandbox Code Playgroud)
这是我的卷:
volumes:
- name: interpreter-spec-volume
configMap:
name: zeppelin-files
items:
- key: interpreter-spec.yaml
path: interpreter-spec.yaml
Run Code Online (Sandbox Code Playgroud)
如何安装卷会出现问题。我的volumeMount安装为:
kubectl exec -ti zeppelin-759db57cb6-xw42b -- ls -la /zeppelin/k8s/interpreter
total 0
drwxrwxrwx. 3 root root 88 Jul 7 13:18 .
drwxr-xr-x. 3 root root 53 Jun 8 12:12 ..
drwxr-xr-x. 2 root root 35 Jul 7 13:18 ..2020_07_07_13_18_32.149716995
lrwxrwxrwx. 1 root root 31 Jul 7 13:18 ..data -> ..2020_07_07_13_18_32.149716995
lrwxrwxrwx. 1 root root 28 Jul 7 13:18 interpreter-spec.yaml -> ..data/interpreter-spec.yaml
Run Code Online (Sandbox Code Playgroud)
为什么它的安装..data目录是自己的?
Vit*_*Vit 14
我能说什么 - 这几乎没有记录预期行为。这是由于秘密和配置映射如何安装到正在运行的容器中。
当您将 Secret 或 configmap 作为卷挂载时,Kubernetes 将挂载它的路径将包含将相同名称符号链接到 ..data 目录的根级别项,该目录是到真实挂载点的符号链接。
例如,
kubectl exec -ti zeppelin-759db57cb6-xw42b -- ls -la /zeppelin/k8s/interpreter
total 0
drwxrwxrwx. 3 root root 88 Jul 7 13:18 .
drwxr-xr-x. 3 root root 53 Jun 8 12:12 ..
drwxr-xr-x. 2 root root 35 Jul 7 13:18 ..2020_07_07_13_18_32.149716995
lrwxrwxrwx. 1 root root 31 Jul 7 13:18 ..data -> ..2020_07_07_13_18_32.149716995
lrwxrwxrwx. 1 root root 28 Jul 7 13:18 interpreter-spec.yaml -> ..data/interpreter-spec.yaml
Run Code Online (Sandbox Code Playgroud)
真正的挂载点(上例中的..2020_07_07_13_18_32.149716995)将在每次更新秘密或configmap(在您的情况下)时发生变化,因此您的interpreter-spec.yaml的真实路径将在每次更新后发生变化。
您可以做的是使用中的子路径选项volumeMounts。根据设计,使用机密和配置映射作为子路径卷挂载的容器将不会接收更新。您可以利用此功能来单独挂载文件。每次在秘密/配置映射中添加/删除任何文件时,您都需要更改 Pod 规范,并且每次秘密/配置映射更新后都需要部署部署来应用更改。
volumeMounts:
- name: interpreter-spec-volume
mountPath: /zeppelin/k8s/interpreter
subPath: interpreter-spec.yaml
volumes:
- name: interpreter-spec-volume
configMap:
name: zeppelin-files
Run Code Online (Sandbox Code Playgroud)
我还想提一下Kubernetes 配置映射符号链接 (..data/) :有没有办法避免它们?在这里提问,您可以在其中找到更多信息。
| 归档时间: |
|
| 查看次数: |
6718 次 |
| 最近记录: |