概括
应该通过..data
符号链接还是通过正常路径访问 K8s 配置映射?
细节
我们通过以下方式将 configmap 附加到 pod
...
volumeMounts:
- mountPath: /var/opt/app_configs
name: app-config
readOnly: true
...
volumes:
- name: app-config
configMap:
name: app-kubernetes-configmap
然后,似乎在 pod 中,我们可以通过以下任一方式访问配置文件
- 使用 Kubernetes 符号链接 -
/var/opt/app_configs/..data/app-config.yaml
- 配置文件的“正常”路径 -
/var/opt/app_configs/app-config.yaml
推荐什么?
在这里寻找的主要区别是:
如果使用
ConfigMap
挂载subPath
,则在 pod 重新启动之前它不会更新。如果您将其挂载为目录(不带
subPath
),您的容器将获得持续更新的配置文件,无需重新启动。使用示例
subPath
:使用目录的示例:
请注意,容器内的文件实际上是一个
symlink
.所以,回答你的问题:
在您的用例中,您可以在挂载目录时采用两种方式。
我的朋友 Vitalii 也通过他的回答分享了一些关于这个话题的观点。