我正在Ubuntu上开发一个Go可执行文件,并在minikube上运行一个kubernetes集群。minikube上运行的pod+容器是基于Ubuntu的,我只想替换容器中的可执行文件。或多或少地绕过了重新制作容器的需要,因为可执行文件是唯一需要更改的东西。当我的更改“准备好”时,我计划重新制作容器所基于的映像,等等。但那是以后的事了
我希望迭代的速度更快一点。
这可能吗?有更好的办法吗?
我正在Ubuntu上开发一个Go可执行文件,并在minikube上运行一个kubernetes集群。minikube上运行的pod+容器是基于Ubuntu的,我只想替换容器中的可执行文件。或多或少地绕过了重新制作容器的需要,因为可执行文件是唯一需要更改的东西。当我的更改“准备好”时,我计划重新制作容器所基于的映像,等等。但那是以后的事了
我希望迭代的速度更快一点。
这可能吗?有更好的办法吗?
2条答案
按热度按时间mznpcxlj1#
仅用于开发目的(相当笨拙的解决方案),你可以让你的Ubuntu-Go容器运行
tail -f /dev/null
来阻止它完成,并使用hostPath
来挂载包含可执行文件的路径到你的容器中。你可以通过运行kubectl exec
来运行你的Go应用程序,你对你的主机上的应用程序所做的任何更改都会反映在容器中。你可以重新启动应用程序,每次更新可执行文件时都再次使用kubectl exec
。Here是一个很好的自述文件,介绍了如何使用minikube的hostPath。
请记住,在生产中使用正确的二进制文件重建容器,定义正确的入口点,并修复部署/pod定义以排除hostPath。
xqkwcwgp2#
使用“kubectl edit deployment”,您可以更改pod中指定容器的映像。当您关闭修改后的部署yaml文件时,pod将停止并重新启动。