Minikube和docker

时间:2017-04-03 17:05:59

标签: node.js docker workflow kubernetes minikube

我试图了解如何使用dockerized应用程序有效地完成开发,特别是在Kubernetes上。我正在努力找到正确的方法来进行实时编辑容器。

在过去使用Docker时,我会使用类似Nodemon的东西来监视本地更改的文件,然后当我完成应用程序时,我会将其停靠并部署。对于Kubernetes(minikube),我的第一印象是我应该在每次编辑时重建容器。当然,这不是人们在这里发展的方式 - 我错过了什么?我应该在本地进行编辑,然后使用dockerize-> k8s进行部署吗?这看起来不对。

我正在寻找一种方法将所有本地更改同步到一个docker容器,然后使用新的更改重新启动kubernetes pod,这样我就可以在开发期间从日志中读取。如果这很奇怪,请向我推荐一个更好的方法。

由于

2 个答案:

答案 0 :(得分:5)

Kubernetes是一个容器编排工具。它不是一个开发平台。它旨在简化数百个容器的部署,并处​​理生命周期/网络/存储问题。

如果你正在开发你的应用程序,那么你现在真的不需要kubernetes / minikube。我建议的工作流程是:

  • 在本地docker容器中开发应用程序。在你开始的时候迭代,直到你开心。
  • 创建快照发布,标记泊坞窗图像并将其推送到仓库
  • 然后部署它。
  • 如果需要更新,请应用新标记。

使用Docker的好处是它将在本地笔记本电脑以及生产k8s群集上部署完全相同,因此一旦您到达准备好标记的阶段/推送图像,可以放心,部署过程将完全相同。

Minikube不适合本地开发,人们可以在本地测试kubernetes,并且可能自己开发kubernetes,它不是设计为流浪者的替代品。

答案 1 :(得分:0)

Kubernetes是用于支持immutable deployment模式的容器的运行时系统。容器没有修补,而是重建和重新部署。为了支持这一点,您需要使用Kubenetes实现ALM(应用程序生命周期管理)工作流程的功能。

查看以下在Kubernetes上添加容器构建工作流程的产品:

如果您是Java开发人员,以下项目可以为您的代码部署基于Jenkins的CD / CD管道:

Netflix项目Spinnaker现在支持Kubernetes作为托管应用程序的部署目标。

除了Openshift(参见minishift),上述项目可以作为minikube上的应用程序部署。玩得开心!