有没有办法告诉 kubernetes 更新你的容器?

Is there a way to tell kubernetes to update your containers?

我有一个 kubernetes 集群,我想知道如何(最佳实践)更新容器。我知道这个想法是拆除旧容器并安装新容器,但是有没有我可以使用的单层容器,我是否必须删除复制控制器或 pod,然后启动新的(pods 或复制控制器)?有了这个,我正在使用一个自托管的私有库,我知道我必须从 Dockerfile 构建它并推送到它,我可以使用 gulp(或任何其他构建工具)自动化,我可以自动化 kubernetes update/tear上下?

发现他们在 Kubernetes 文档中提到更新的地方:https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/replication-controller.md#rolling-updates。希望它更加自动化,但它确实有效。

编辑 1

为了实现自动化,我发现 https://www.npmjs.com/package/node-kubernetes-client 因为我已经使用节点进程自动化了其余的构建和部署,所以这会非常有效。

Kubectl 可以为您自动化滚动更新的过程。在此处查看文档: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/kubectl_rolling-update.md

现有复制控制器 foo 运行 Docker 映像 bar:1.0 到映像 bar:2.0 的滚动更新可以像 运行 kubectl rolling-update foo --image=bar:2.0.

OpenShift Origin 项目 (https://github.com/openshift/origin) 运行嵌入式 Kubernetes 集群,但如果您不想推出自己的解决方案,它会在您的集群之上提供自动化构建和部署工作流程。

我建议看这里的例子: https://github.com/openshift/origin/tree/master/examples/sample-app

未来一些构建和部署挂钩可能会向上游移动到 Kubernetes 项目中,但这将作为一个很好的例子,说明如何在 Kubernetes 之上构建部署解决方案。