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

更新docker映像时在azure kubernates上自动部署:可能吗?,azure,kubernetes,azure-aks,Azure,Kubernetes,Azure Aks,我使用azure的kubernates服务创建了一个应用程序。 在我的yaml中,我为我使用的每个图像指定了“最新”的图像版本 是否有任何选项可供选择,以便在我更新映像注册表以便“最新”更改时,kubernates自动部署该更改?所有内容都得到了管理,所以它只更新一个副本,然后进行扩展,以便在部署过程中不会中断服务 Kubernetes不知道您注册表中的更改,它不监视新的容器映像。您需要创建一个在发布新版本并更新Kubernetes部署时触发的流程。你可以使用CI/CD工具,或者类似Azure功

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


是否有任何选项可供选择,以便在我更新映像注册表以便“最新”更改时,kubernates自动部署该更改?所有内容都得到了管理,所以它只更新一个副本,然后进行扩展,以便在部署过程中不会中断服务

Kubernetes不知道您注册表中的更改,它不监视新的容器映像。您需要创建一个在发布新版本并更新Kubernetes部署时触发的流程。你可以使用CI/CD工具,或者类似Azure功能、Azure自动化等


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

您应该真正使用发布管理,或者类似gitops的东西,在新版本的容器可用时触发更新。为此使用Azure Functions\Automation是不对的。这并不是故意的,它会很复杂\不可靠

是否有任何选项可供选择,以便在我更新映像注册表以便“最新”更改时,kubernates自动部署该更改

处理这件事不是库伯内特斯的工作。在这方面有两项工作要做:

  • 在docker注册表上添加webhook,对于docker hub,它是。当新图像被推送到注册表时,您可以向某处发送
    POST
    请求作为通知

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

所有内容都得到了管理,所以它只更新一个副本,然后进行扩展,以便在部署过程中不会中断服务


库伯内特斯会处理这件事的。对于
Deployment
StatefulSet
,当前的kubernetes通过滚动更新自动更新pod,您所需要做的就是
kubectl apply-f new-spec.yaml

似乎是一个很好的起点!是否可以始终使用“最新”标签?或者我需要总是增加版本吗?当然,只要设置
imagePullPolicy=always
,docker就会检查注册表中的最新映像是否与本地映像相同。