如何操作AKS将工作负载更新至ACR中的最新镜像?
如何让AKS更新Pod至ACR中的最新镜像
以下是几种实用的操作方法,按需选择即可:
方法1:直接指定最新镜像
使用kubectl set image命令直接更新Deployment的镜像地址,适合镜像标签有变更(比如从v1升级到v2)的场景:
kubectl set image deployment/<你的Deployment名称> <容器名称>=<ACR镜像地址>:<新标签>
示例:
kubectl set image deployment/my-web-app my-web-app=myacr01.azurecr.io/my-web-app:v2.1
执行后Kubernetes会自动触发滚动更新,逐步替换旧Pod为拉取新镜像的Pod。
方法2:触发滚动重启(镜像标签不变时用)
如果你的镜像一直使用latest标签,或者不想修改镜像地址,可以直接重启Deployment强制更新:
kubectl rollout restart deployment/<你的Deployment名称>
这个命令会让Kubernetes逐步重启所有Pod,重启过程中Pod会重新拉取ACR中的最新镜像(需确保镜像拉取策略不是IfNotPresent,或提前清理节点镜像缓存)。
方法3:修改Deployment配置文件
- 在线编辑配置:
执行kubectl edit deployment/<你的Deployment名称>,找到spec.containers[0].image字段,替换为最新的ACR镜像地址和标签,保存退出后,Kubernetes会自动启动滚动更新。 - 本地文件更新:
修改本地的Deployment YAML文件中的镜像字段,然后执行:kubectl apply -f <你的Deployment配置文件.yaml>
关键注意事项
- 避免依赖
latest标签:推荐用唯一的版本号、Git commit哈希或时间戳作为镜像标签,这样能明确追踪版本,避免缓存导致的拉取异常或版本混乱。 - 确认AKS权限:确保AKS集群已配置ACR的访问权限(比如通过ACR集成或服务账号授权),否则Pod会因权限不足无法拉取新镜像。
内容的提问来源于stack exchange,提问作者Zapnologica
相关产品推荐
相关产品推荐

