首页 > 解决方案 > 将文件从k8s中的容器管道传输到本地机器,编辑并复制回k8s中的容器?

问题描述

我需要使用本地编辑器更新在 k8s 中运行的容器中的文件,并将更新保存回容器中的原始文件,而无需重新启动/重新部署容器。

现在我做:

$ kubectl exec tmp-shell -- cat /root/motd > motd && vi motd && kubectl cp motd tmp-shell:/root/motd

有没有更好的方法来做到这一点?

我看过:

https://github.com/ksync/ksync

但对于这种“简单”的东西来说似乎是重量级的。

注意:

我不想使用容器内可能可用或不可用的编辑器 - 因为不能保证编辑器可用。

标签: kubernetesvim

解决方案


可能可用的一个选项是临时调试容器,但它们是 alpha 功能,因此在撰写本文时可能未为您启用。除此之外,是的,您所说的是一种选择。可能不言而喻,但这是一个非常糟糕的主意,如果目标文件不可写(在大多数情况下不应如此),或者因为文件权限或容器正在运行,则可能根本不起作用不可变模式。此外,这仅在使用该文件的事物将检测到更改而不重新加载时才重要。

更好的中期计划是将内容存储在 ConfgMap 中并将其安装到位。这样您就可以随时更新它。


推荐阅读