2017-04-03 41 views
5

我想了解如何使用dockerized应用程序,特别是Kubernetes高效地完成开发。我正在努力寻找正确的方式来进行实时编辑容器。Minikube和码头上的开发工作流程

与码头工人过去,我只想用类似Nodemon观看的文件,以局部改变,然后当我有应用程序完成后,我会dockerize它和部署。对于Kubernetes(minikube),我的第一印象是我应该在每次编辑时重建容器。当然,这不可能是人们在这里发展的方式 - 我错过了什么?我应该在本地编辑然后dockerize-> k8s部署?这看起来不错。

我正在寻找一种方式来同步我的所有本地更改泊坞窗的容器,然后重新启动与新变化kubernetes吊舱,这样我就可以在开发过程中从日志中读取。如果这很奇怪,请推荐我一个更好的方法。

感谢

回答

4

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

如果您正在开发应用程序时,你真的不此刻需要kubernetes/minikube。我建议的工作流程为:

  • 在本地泊坞窗容器中开发您的应用程序。迭代,直到你快乐。
  • 创建快照版本,为泊坞窗图像添加标签并将其推送到回购站
  • 然后部署它。
  • 当您需要更新时,应用新的标签。

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

Minikube不适合当地发展,它是人们在本地测试出kubernetes,并可能发展kubernetes本身,它不是设计成一个无业游民的选择。

+0

假设我想为每个客户创建一个新的吊舱,我该如何去做?制作模板图片,然后用存储在数据库容器中的数据填充它?我本来以为只是生产出一种新的豆荚,但如果我在本地开发,我不能想出一种方法来测试它。 – dallinn

+0

吊舱是Kubernetes中的一个逻辑单元,就是这样。为什么不为每个客户启动一个新的码头集装箱,以便验证数据?您的开发周期中是否真的有5到10个不同的客户容器?我认为你需要退后一步,尽量不要过分复杂。 – jaxxstorm

0

Kubernetes为设计成支持immutable deployment图案容器的运行时系统。容器没有打补丁,而是重建和重新部署。为了支持这个功能,您需要实现与Kubenetes相关的ALM(应用程序生命周期管理)工作流程的功能。

看看那加容器建立在Kubernetes的顶部工作流程如下产品:

如果你是一个Java开发人员的下列项目可以部署基于Jenkins的CD/CD管道代码:

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

随着Openshift除外(见minishift)上述项目可以被部署为在minikube的顶部的应用程序。玩的开心!