如何为Kubernetes创建本地开发环境?

Wer*_*ght 107 docker google-cloud-platform openshift-origin kubernetes

Kubernetes似乎都是将容器部署到集群云.它似乎没有触及的是开发和登台环境(或类似环境).

在开发期间,您希望尽可能接近生产环境并进行一些重要更改:

  • 在本地部署(或至少在您和您可以访问的地方部署)
  • 在页面刷新时使用最新的源代码(假设它是一个网站;理想情况下,本地文件保存页面自动刷新,如果您安装源代码并使用像Yeoman这样的东西可以完成).

同样,人们可能希望非公共环境进行持续集成.

Kubernetes是否支持这种开发环境,或者是必须构建的东西,希望在生产过程中它仍然可以工作?

Rob*_*ley 62

更新(2016-07-15)

随着Kubernetes 1.3的发布,Minikube现在是在本地机器上运行Kubernetes进行开发的推荐方式.


您可以通过Docker在本地运行Kubernetes.运行节点后,您可以启动具有简单Web服务器的pod,并从主机安装卷.当您点击Web服务器时,它将从卷读取,如果您更改了本地磁盘上的文件,它可以提供最新版本.

  • Docs说这不再是推荐的方法方法了,"Minikube是在本地机器上运行Kubernetes的推荐方法." (3认同)
  • 你是对的,我已经更新了我的答案. (2认同)

小智 9

我们一直在研究这样做的工具.基本思想是你有远程Kubernetes集群,实际上是一个临时环境,然后你在本地运行代码,它被代理到远程集群.您可以获得透明的网络访问,复制的环境变量,访问卷...尽可能接近远程环境,但您的代码可以在本地运行,并且可以完全控制.

所以你可以做现场开发.http://telepresence.io上的文档


Cla*_*ton 5

那种"热重载"是我们计划添加的东西,但并不像今天那么容易.但是,如果您有冒险精神,可以使用rsync与docker exec,kubectl exec或osc exec(大致都做同样的事情)将本地目录同步到容器中.您可以将rsync与kubectl或osc exec一起使用,如下所示:

# rsync using osc as netcat
$ rsync -av -e 'osc exec -ip test -- /bin/bash' mylocalfolder/ /tmp/remote/folder
Run Code Online (Sandbox Code Playgroud)