在kubernetes中使用pvc时如何避免覆盖容器目录?
How to avoid override the container directory when using pvc in kubernetes?
使用pvc持久化容器数据时,pvc好像总是覆盖容器的目录,目录中的原始数据将不可用,这是什么原因?
这是设计使然。 Kubelet 负责为您的容器准备挂载,它们可以来自不同的存储后端。在安装时它们是空的,kubelet 没有理由在其中放置任何内容。
也就是说,有一些方法可以通过使用 init 容器来实现您似乎期望的效果。在您的 pod 中,您使用 docker 图像定义初始化容器,将您的卷安装在其中的某个路径(即 /target),而不是 运行ning 常规容器的内容,运行 类似于
cp -r /my/dir/* /target/
这将以预期的内容启动您的目录并退出以允许进一步启动 pod
使用pvc持久化容器数据时,pvc好像总是覆盖容器的目录,目录中的原始数据将不可用,这是什么原因?
这是设计使然。 Kubelet 负责为您的容器准备挂载,它们可以来自不同的存储后端。在安装时它们是空的,kubelet 没有理由在其中放置任何内容。
也就是说,有一些方法可以通过使用 init 容器来实现您似乎期望的效果。在您的 pod 中,您使用 docker 图像定义初始化容器,将您的卷安装在其中的某个路径(即 /target),而不是 运行ning 常规容器的内容,运行 类似于
cp -r /my/dir/* /target/
这将以预期的内容启动您的目录并退出以允许进一步启动 pod