Kubernetes:使 pod 目录可写

Kubernetes: make pod directory writable

我有 docker 图像,里面有配置文件夹。 Logback.xml 位于那里。 所以我希望能够更改 pod 中的 logback.xml(例如动态地提高日志级别) 首先,我想过使用 epmtyDir 卷,但是这个东西重写了目录,它变成了空的。 那么是否有一些简单的方法可以使目录可写到 pod 中?

你好,希望你享受你的 kubernetes 之旅,如果我理解,你希望在 pod 中有一个文件并能够在需要时修改它,

这里你需要的是根据你的 logback.xml 文件创建一个 configmap(可以用命令式或声明式的 kubernetes 配置来完成,这里是命令式的:

kubectl create configmap logback --from-file logback.xml

在此之后,只需在您的 deployment/pod yaml 清单中使用 volume 和 volumeMount 子路径将这个文件挂载到您的目录位置:

...
        volumeMounts:
        - name: "logback"
          mountPath: "/CONFIG_FOLDER/logback.xml"
          subPath: "logback.xml"
      volumes:
        - name: "logback"
          configMap:
            name: "logback"
...

在此之后,您将能够修改您的 logback.xml 配置,方法是编辑/重新创建配置映射并重新启动您的 pod。

但是,请记住:

1:pod 文件不应该被即时修改,这违背了容器理念(参见 Pet vs Cattle)

2:但是,根据您的容器镜像用户权限,所有 pods 目录都可以写入...