我试图了解如何使用dockerized应用程序有效地完成开发,特别是在Kubernetes上。我正在努力找到正确的方法来进行实时编辑容器。
在过去使用Docker时,我会使用类似Nodemon的东西来监视本地更改的文件,然后当我完成应用程序时,我会将其停靠并部署。对于Kubernetes(minikube),我的第一印象是我应该在每次编辑时重建容器。当然,这不是人们在这里发展的方式 - 我错过了什么?我应该在本地进行编辑,然后使用dockerize-> k8s进行部署吗?这看起来不对。
我正在寻找一种方法将所有本地更改同步到一个docker容器,然后使用新的更改重新启动kubernetes pod,这样我就可以在开发期间从日志中读取。如果这很奇怪,请向我推荐一个更好的方法。
由于
答案 0 :(得分:5)
Kubernetes是一个容器编排工具。它不是一个开发平台。它旨在简化数百个容器的部署,并处理生命周期/网络/存储问题。
如果你正在开发你的应用程序,那么你现在真的不需要kubernetes / minikube。我建议的工作流程是:
使用Docker的好处是它将在本地笔记本电脑以及生产k8s群集上部署完全相同,因此一旦您到达准备好标记的阶段/推送图像,可以放心,部署过程将完全相同。
Minikube不适合本地开发,人们可以在本地测试kubernetes,并且可能自己开发kubernetes,它不是设计为流浪者的替代品。
答案 1 :(得分:0)
Kubernetes是用于支持immutable deployment模式的容器的运行时系统。容器没有修补,而是重建和重新部署。为了支持这一点,您需要使用Kubenetes实现ALM(应用程序生命周期管理)工作流程的功能。
查看以下在Kubernetes上添加容器构建工作流程的产品:
如果您是Java开发人员,以下项目可以为您的代码部署基于Jenkins的CD / CD管道:
Netflix项目Spinnaker现在支持Kubernetes作为托管应用程序的部署目标。
除了Openshift(参见minishift),上述项目可以作为minikube上的应用程序部署。玩得开心!