在Minikube和docker上开发工作stream程

我正试图了解如何有效地开发dockerized应用程序,特别是Kubernetes。 我正在努力寻找正确的方式去实时编辑容器。

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

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

谢谢

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

如果您正在开发应用程序,那么您现在确实不需要kubernetes / minikube。 我build议的工作stream程是:

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

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

Minikube不适合本地开发,它可以让人们在本地testingkubernetes,也可能开发kubernetes本身,它不是一个stream浪的select。

Kubernetes是一个用于支持不可变部署模式的容器的运行时系统。 容器没有补丁,而是重build和重新部署。 为了支持这个function,您需要实现Kubenetes的ALM(应用程序生命周期pipe理)工作stream程的function。

看看下面这些在Kubernetes之上添加容器构build工作stream程的产品:

  • DEIS
  • Openshift

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

  • Fabric8

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

  • 三angular帆

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