kubernetes 是否可以在POD的容器中替换正在运行的可执行文件?

lskq00tm  于 2022-11-02  发布在  Kubernetes
关注(0)|答案(2)|浏览(257)

我正在Ubuntu上开发一个Go可执行文件,并在minikube上运行一个kubernetes集群。minikube上运行的pod+容器是基于Ubuntu的,我只想替换容器中的可执行文件。或多或少地绕过了重新制作容器的需要,因为可执行文件是唯一需要更改的东西。当我的更改“准备好”时,我计划重新制作容器所基于的映像,等等。但那是以后的事了
我希望迭代的速度更快一点。
这可能吗?有更好的办法吗?

mznpcxlj

mznpcxlj1#

仅用于开发目的(相当笨拙的解决方案),你可以让你的Ubuntu-Go容器运行tail -f /dev/null来阻止它完成,并使用hostPath来挂载包含可执行文件的路径到你的容器中。你可以通过运行kubectl exec来运行你的Go应用程序,你对你的主机上的应用程序所做的任何更改都会反映在容器中。你可以重新启动应用程序,每次更新可执行文件时都再次使用kubectl exec
Here是一个很好的自述文件,介绍了如何使用minikube的hostPath。
请记住,在生产中使用正确的二进制文件重建容器,定义正确的入口点,并修复部署/pod定义以排除hostPath。

xqkwcwgp

xqkwcwgp2#

使用“kubectl edit deployment”,您可以更改pod中指定容器的映像。当您关闭修改后的部署yaml文件时,pod将停止并重新启动。

相关问题