You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用Jfrog Artifactory的Helm Chart创建ACR仓库并更新AKS Pod

解决方案

1. 拉取并解析JFrog上的Helm Chart

先下载目标Helm包到本地:

curl -o abc-1.2-helm.tgz http://repository.test.com:8181/artifactory/compress-files/abc/abc-1.2-helm.tgz

解压后查看Chart内的镜像配置,确认当前使用的镜像地址:

tar zxf abc-1.2-helm.tgz && cd abc
cat values.yaml

重点关注image.repository和image.tag字段,后续需要替换为ACR地址。

2. 创建ACR及目标镜像仓库

如果还没有ACR实例,先创建(替换my-resource-group和myacr为你的资源组和全局唯一的ACR名称):

az acr create --resource-group my-resource-group --name myacr --sku Basic --admin-enabled true

ACR会在推送镜像时自动创建abc-1.2仓库,若需提前创建执行:

az acr repository create --name myacr --repository abc-1.2

3. 迁移容器镜像到ACR

假设原Chart引用的镜像为old-registry/abc:1.2,执行以下步骤迁移:

# 拉取原镜像
docker pull old-registry/abc:1.2
# 打ACR标签
docker tag old-registry/abc:1.2 myacr.azurecr.io/abc-1.2:1.2
# 登录ACR并推送
az acr login --name myacr
docker push myacr.azurecr.io/abc-1.2:1.2

验证镜像推送状态:

az acr repository show --name myacr --repository abc-1.2

4. 修改Helm Chart指向ACR镜像

编辑abc/values.yaml,替换镜像地址为ACR路径:

image:
  repository: myacr.azurecr.io/abc-1.2
  tag: 1.2

可选:重新打包Chart(直接用解压目录部署也可以):

helm package abc

5. 配置AKS访问ACR权限

使用托管身份给AKS分配ACR拉取权限:

# 获取AKS节点资源组和身份ID
AKS_NODE_RG=$(az aks show --name myaks --resource-group my-resource-group --query nodeResourceGroup -o tsv)
AKS_PRINCIPAL_ID=$(az aks show --name myaks --resource-group my-resource-group --query identity.principalId -o tsv)
# 分配AcrPull角色
az role assignment create --assignee $AKS_PRINCIPAL_ID --role AcrPull --scope $(az acr show --name myacr --resource-group my-resource-group --query id -o tsv)

6. 触发AKS滚动更新

若使用Helm部署:

直接升级现有Release,Helm会自动触发滚动更新:

helm upgrade abc-release ./abc --namespace your-namespace

若直接使用Deployment:

修改镜像地址触发更新:

kubectl set image deployment/abc-deployment abc-container=myacr.azurecr.io/abc-1.2:1.2 --namespace your-namespace

或编辑Deployment配置后保存:

kubectl edit deployment/abc-deployment --namespace your-namespace

7. 验证更新结果

确认新Pod正常运行并使用ACR镜像:

kubectl get pods -n your-namespace
kubectl describe pod <target-pod-name> -n your-namespace | grep Image

内容的提问来源于stack exchange,提问作者Susheel Bhatt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 03:35:44