更新docker映像后,自动在azure kubernates上部署:可能吗?

时间:2019-06-24 10:28:40

标签: azure kubernetes azure-kubernetes

我已经使用azure的kubernates服务创建了一个应用程序。 在我的Yaml中,我为我正在使用的每个图像都指定了“最新”作为图像版本。

是否有任何选择,以便在我更新映像注册表以使“最新”更改时,kubernates会自动进行部署?并管理所有内容,使其仅更新一个副本,然后进行扩展,以使服务在部署期间不会中断?

3 个答案:

答案 0 :(得分:2)

  

是否有任何选择,以便在我更新映像注册表以使“最新”更改时,kubernates会自动进行部署?

解决这个问题不是kubernetes的工作。有两个方法可以解决这个问题:

  • 在docker注册表上添加webhook,对于docker-hub,它是Docker Hub Webhooks。将新映像推送到注册表后,您可以向某个地方发送POST请求作为通知。

  • 部署CI / CD以接收该通知并滚动更新您的应用程序。或者只是创建一个简单的HTTP Server来处理通知请求并执行类似kubectl ...的操作。

  

是否管理了所有内容,以便仅更新一个副本然后进行扩展,以使服务在部署期间不会中断?

Kubernetes通过rolling update处理此问题。对于DeploymentStatefulSet,当前的kubernetes通过滚动更新来自动更新pod,您只需要做kubectl apply -f new-spec.yaml

答案 1 :(得分:0)

Kubernetes不了解注册表中的更改,它不监视新的容器映像。您将需要创建一个在发布新版本时触发的过程,并更新您的Kubernetes部署。您可以为此使用CI / CD工具,或使用Azure Functions,Azure Automation等工具。

要在不停机的情况下进行部署,您需要查看滚动更新。

答案 2 :(得分:0)

您应该为此真正使用发布管理,或者使用诸如gitops之类的发布管理,当新版本的容器可用时,它们会触发更新。为此使用Azure Functions \ Automation是不正确的。但这并不意味着它很复杂\不可靠。