将应用程序配置文件添加到 kubernetes 的最佳实践 pods
Best practice for adding app configuration files into kubernetes pods
我有以下设置:
一个 azure kubernetes 集群 有一些节点,我的应用程序(由多个 pods 组成)是 运行。
我正在寻找一种好方法来制作 项目特定的配置文件 (几百行) 可用于两个已部署的容器 和他们的副本。
我的项目之间的配置文件不同,但容器不同。
我正在寻找容器中的只读文件挂载之类的东西,但还没有找到好的方法。我玩弄了持久卷声明,但除了复制(包括 uri 和秘密管理)之外似乎没有自动文件放置的可能性。
最好的办法是 kubectl 使用 yaml 文件 访问我的开发机器上的特定文件夹,以将我的配置文件推送到集群中。
ConfigMaps 不是一个正确的方法(因为数据必须在 yaml 中并且我的文件很大并且不断变化)
对于 卷,似乎没有在创建时自动将文件放入其中的方法。
谁能指导我找到适合我情况的好的解决方案?
您可以为此使用 configmap,但 configmap 包含您的配置文件。您可以通过以下方式使用配置文件的内容创建配置映射:
kubectl create configmap my-config --from-file=my-config.ini=/path/to/your/config.ini
并将其绑定为您的 pod 中的卷:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: mypod
...
volumeMounts:
- name: config
mountPath: "/config"
readOnly: true
volumes:
- name: config
configMap:
name: my-config #the name of your configmap
之后,您的配置在 /config/my-config.ini
下的 pod 中可用
我有以下设置:
一个 azure kubernetes 集群 有一些节点,我的应用程序(由多个 pods 组成)是 运行。 我正在寻找一种好方法来制作 项目特定的配置文件 (几百行) 可用于两个已部署的容器 和他们的副本。
我的项目之间的配置文件不同,但容器不同。
我正在寻找容器中的只读文件挂载之类的东西,但还没有找到好的方法。我玩弄了持久卷声明,但除了复制(包括 uri 和秘密管理)之外似乎没有自动文件放置的可能性。
最好的办法是 kubectl 使用 yaml 文件 访问我的开发机器上的特定文件夹,以将我的配置文件推送到集群中。
ConfigMaps 不是一个正确的方法(因为数据必须在 yaml 中并且我的文件很大并且不断变化)
对于 卷,似乎没有在创建时自动将文件放入其中的方法。
谁能指导我找到适合我情况的好的解决方案?
您可以为此使用 configmap,但 configmap 包含您的配置文件。您可以通过以下方式使用配置文件的内容创建配置映射:
kubectl create configmap my-config --from-file=my-config.ini=/path/to/your/config.ini
并将其绑定为您的 pod 中的卷:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: mypod
...
volumeMounts:
- name: config
mountPath: "/config"
readOnly: true
volumes:
- name: config
configMap:
name: my-config #the name of your configmap
之后,您的配置在 /config/my-config.ini