docker - Kubernetes - 以声明方式包含配置文件的简单方法?
问题描述
试图复制一个 nginx conf 文件供我的 pod 使用(位于<project>/nginx.conf
)。使用 Docker compose 我只需执行以下操作...
image: "nginx:alpine"
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
最佳实践?不确定,因为这对我来说是新事物。它似乎运作良好。我想通过 kubernetes 部署来完成同样的任务,但我没有找到一种直接的方法来以声明方式执行此操作。我在ConfigMap上遇到了一点,但是当立即遇到以下情况时有点抗拒......
使用 kubectl create configmap 命令从目录、文件或文字值创建配置映射
我不希望在文本文件中散布大量的记住这些命令,而是更喜欢 compose 所示的文件方法。这是可以实现的吗?到目前为止,我的规格看起来是这样的......
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
name: http
帮我在这里获取配置?
解决方案
ConfigMaps 绝对是要走的路。您可以使用如下规范创建配置映射:
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx
namespace: default
data:
nginx.conf: |-
user www;
worker_processes 5;
...
# all nginx.conf file contents goes here
使用 kubectl 应用配置映射后,您可以通过在 PodSpec 中指定以下内容将其挂载到容器中:
containers:
- name: ...
...
volumeMounts:
- name: nginx-volume
mountPath: <path where you want to put nginx.conf>
volumes:
- name: nginx-volume
configMap:
name: nginx
请注意,您将选择作为 nginx.conf 文件的挂载点的目录将仅包含该文件(隐藏该目录中已经存在的所有其他文件),就像在 linux 中将设备挂载到非空目录时一样.
更多关于配置图的详细信息:https ://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/
推荐阅读
- python - 缩短长条件测试`if find_num_3 != None and find_num_3 != i and find_num_3 != j:
- angular - 如果配置文件图片已更新,如何通知另一个组件以反映更改
- javascript - How to close a window in which a mail containing confirmation link is opened by clicking on the link
- keras - Creating Variable Length Output for RNN in Keras
- javascript - Tree-shaking with rollup
- google-kubernetes-engine - GKE Ingress error: The server encountered a temporary error and could not complete your request
- php - Importing commission junctions vouchers
- asp.net - Video file is not playing through IIS server
- r - 如何用具有相同参考值的另一行的数据填充行?
- python - 如何检查代码是在本地运行还是在 Python 中的集群上运行