在 Kubernetes 部署中将 configMap 作为参数传递

Pass configMap as argument in a Kubernetes deployment

我有一个 Dockerfile 使用此命令启动 java 进程 CMD java -jar application.jar serve /path-to-file/setting.yaml

现在,我想让 settings.yaml 成为 configMap,这样我就可以在 kubernetes 中管理它,而不是每次更新设置时都构建一个新的 docker 映像。

我的问题是:既然我不会在 Dockerfile 中传递 setting.yaml,而是将 kubernetes yaml 作为 confiMap,现在可以实现这个吗?

  containers:
  - name: java-container
    image: javaimage:1.0
    command: [""]
    args: ["pass the file here"]

是否可以在 args[""]

上将 kubernetes 部署中的文件作为 configMap 传递

首先,您将创建一个 ConfigMap:

cat <<EOF >file.yaml
[...]
EOF
kubectl create -n my-namespace configmap my-app-config --from-file=settings.yaml=file.yaml

然后,根据容器映像 CMD 中加载的配置文件的路径,将 ConfigMap 挂载到正确的位置:

containers:
- name: app
  [ ... ]
  volumeMounts:
  - name: config-volume
    path: /path-to-file/settings.yaml
    subPath: settings.yaml
[ ... ]
volumes:
- name: config-volume
  configMap:
    name: my-app-config