将应用程序配置文件添加到 kubernetes pod 的最佳实践

bab*_*ckr 2 containers configuration-files kubernetes

我有以下设置:

一个天蓝色的 kubernetes 集群,其中有一些节点,我的应用程序(由多个 pod 组成)正在运行。我正在寻找一种好方法来为两个已部署的容器及其副本提供特定于项目的配置文件(几百行) 。

我的项目之间的配置文件不同,但容器则不然。

我正在寻找诸如在容器中安装只读文件之类的东西,但还没有找到好方法。我尝试过持久卷声明,但除了复制(包括 uri 和秘密管理)之外,似乎没有自动文件放置的可能性。

最好的事情是kubectl 可以使用 yaml 文件来访问我的开发人员计算机上的特定文件夹,以将我的配置文件推送到集群中。

  • ConfigMap 不是执行此操作的正确方法(因为数据必须位于 yaml 内,并且我的文件很大且不断变化)

  • 对于卷来说,似乎没有在创建时自动将文件放入其中的方法

有人可以指导我找到适合我的情况的好解决方案吗?

chr*_*sse 5

您可以为此使用 configmap,但 configmap 包含您的配置文件。您可以通过以下方式使用配置文件的内容创建配置映射:

kubectl create configmap my-config --from-file=my-config.ini=/path/to/your/config.ini
Run Code Online (Sandbox Code Playgroud)

并将其绑定为 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
Run Code Online (Sandbox Code Playgroud)

之后,您的配置将在您的 pod 中可用/config/my-config.ini