如何使用配置映射在容器中创建单个文件?
How to use a config map to create a single file within container?
我正在尝试在 Openshift 上配置 Nginx 容器。我的最终目标是覆盖 Nginx 配置文件。我知道可以使用配置映射。因为修改 Nginx 配置目录的任何失败都会导致容器崩溃,暂时我的目标是在 /opt/app-root/src 目录中创建一个 index.html 文件。
我面临两个问题,具体取决于配置
- 配置映射覆盖整个 /opt/app-root/src 目录
- config map 创建 index.html 目录,其中包含索引文件
配置图:
apiVersion: v1
data:
index: |-
<html>
<body>
yo yo!
</body>
</html>
kind: ConfigMap
metadata:
creationTimestamp: '2020-01-16T12:53:25Z'
name: index-for-nginx
namespace: some-namespace
部署配置(部分,与主题相关):
spec:
containers:
- image: someimage
...
volumeMounts:
- mountPath: /opt/app-root/src/index.html
name: index
volumes:
- configMap:
defaultMode: 420
name: index-for-nginx
name: index
时间:
volumeMounts:
- mountPath: /opt/app-root/src/index.html
它在 /opt/app-root/src
中创建 index.html 目录和索引文件(具有适当的内容)
时间:
volumeMounts:
- mountPath: /opt/app-root/src/
覆盖/opt/app-root/src目录
我的问题是 - 我应该如何配置它以在 /opt/app-root/src 中创建 index.html 文件而不覆盖目录?
您可以使用subPath
挂载您想要的单个文件。
volumeMounts:
- mountPath: /opt/app-root/src/index.html
subPath: index
name: index
https://kubernetes.io/docs/concepts/storage/volumes/#using-subpath
您可以执行以下操作,摘自此 GitHub 问题
containers:
- volumeMounts:
- name: config-volumes
mountPath: /opt/app-root/src/index.html
subPath: index
volumes:
- name: config-volumes
configMap:
name: index-for-nginx
注意:使用 ConfigMap 作为子路径卷的容器将不会收到 ConfigMap 更新。
我正在尝试在 Openshift 上配置 Nginx 容器。我的最终目标是覆盖 Nginx 配置文件。我知道可以使用配置映射。因为修改 Nginx 配置目录的任何失败都会导致容器崩溃,暂时我的目标是在 /opt/app-root/src 目录中创建一个 index.html 文件。
我面临两个问题,具体取决于配置
- 配置映射覆盖整个 /opt/app-root/src 目录
- config map 创建 index.html 目录,其中包含索引文件
配置图:
apiVersion: v1
data:
index: |-
<html>
<body>
yo yo!
</body>
</html>
kind: ConfigMap
metadata:
creationTimestamp: '2020-01-16T12:53:25Z'
name: index-for-nginx
namespace: some-namespace
部署配置(部分,与主题相关):
spec:
containers:
- image: someimage
...
volumeMounts:
- mountPath: /opt/app-root/src/index.html
name: index
volumes:
- configMap:
defaultMode: 420
name: index-for-nginx
name: index
时间:
volumeMounts:
- mountPath: /opt/app-root/src/index.html
它在 /opt/app-root/src
中创建 index.html 目录和索引文件(具有适当的内容)时间:
volumeMounts:
- mountPath: /opt/app-root/src/
覆盖/opt/app-root/src目录
我的问题是 - 我应该如何配置它以在 /opt/app-root/src 中创建 index.html 文件而不覆盖目录?
您可以使用subPath
挂载您想要的单个文件。
volumeMounts:
- mountPath: /opt/app-root/src/index.html
subPath: index
name: index
https://kubernetes.io/docs/concepts/storage/volumes/#using-subpath
您可以执行以下操作,摘自此 GitHub 问题
containers:
- volumeMounts:
- name: config-volumes
mountPath: /opt/app-root/src/index.html
subPath: index
volumes:
- name: config-volumes
configMap:
name: index-for-nginx
注意:使用 ConfigMap 作为子路径卷的容器将不会收到 ConfigMap 更新。