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

我正在Ubuntu上开发Go可执行文件,并在minikube中运行kubernetes集群。 minikube中运行的pod + container基于Ubuntu,我只想替换容器中的可执行文件。 因为可执行文件是唯一需要更改的东西,所以或多或少地绕过了重新制作容器的需要。 当我的更改“准备就绪”时,我打算重新制作容器所基于的图像,等等,但是这已经行之有效了。</ p>

我实际上希望更快地进行迭代。 </ p>

这可能吗? 有更好的方法吗?</ p>
</ div>

展开原文

原文

I'm developing a Go executable on Ubuntu and running a kubernetes cluster in minikube. The pod+container that's running in minikube is based on Ubuntu, and I just want to replace the executable in the container. More or less bypassing the need to remake the container because executable is the only thing that needs to change. When my changes are 'ready' I plan to remake the image the container is based on, etc., but that's down the road.

I'm looking to iterate a bit quicker really.

Is this possible? Is there a better way?

dounao1875
dounao1875 kubernetes的方法是改为使用Deployment并更新部署。这样,更换吊舱时您就不会停机。您可能可以找到一种方法来替换docker中的可执行文件,具体取决于您的docker设置,但是我认为这不是前进的好方法,也不是像“kubernetes一样”。您当前的工作流程有什么问题?更换吊舱仅需几秒钟。
一年多之前 回复

1个回答



仅出于开发目的(非常棘手的解决方案),您可以让Ubuntu-Go容器运行 tail -f / dev / null </ code>以防止其完成,并使用 hostPath </ code>将包含可执行文件的路径安装到容器中。 您可以通过运行 kubectl exec </ code>来运行Go应用程序,对主机上的应用程序所做的任何更改都将反映在容器中。 每当可执行文件更新时,您都可以再次使用 kubectl exec </ code>重新启动应用程序。 </ p>

此处 是有关如何使用minikube的hostPath的很好的自述文件。</ p>

在生产中记住,使用正确的二进制文件重建容器,定义正确的入口点,并修复部署/ pod定义以排除hostPath 。</ p>

希望有帮助!</ p>
</ div>

展开原文

原文

For development purposes ONLY (quite hacky solution), you can have your Ubuntu-Go container running tail -f /dev/null to keep it from finishing, and use a hostPath to mount the path containing your executable to your container. You can run your Go application by running a kubectl exec and any changes you make to your application on your host will be reflected in the container. You can restart the application, again with kubectl exec whenever the executable is updated.

Here is a good readme on how to use minikube's hostPath.

REMEMBER IN PRODUCTION to rebuild your container with the correct binary, define the correct entrypoint, and fix your deployment/pod definition to exclude the hostPath.

Hope this helps!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐