Azure Kubernetes 无法从 ACR 容器中提取图像
Azure Kubernetes cannot pull a image from ACR container
我需要一些有关 Azure AKS 和 ACR 集成的帮助。
我创建了一个 ACR 容器并将此容器附加到 AKS 群集。我在创建 AKS 时启用了托管身份,我希望 ACR 也使用托管身份
这是我正在使用的脚本..
az group create --name $RESOURCEGROUP --location eastus
az acr create -n $REGISTRYNAME -g $RESOURCEGROUP --sku Basic
az aks create -n $CLUSTERNAME -g $RESOURCEGROUP --node-count $NODECOUNT --enable-addons monitoring --generate-ssh-keys --enable-managed-identity --attach-acr $REGISTRYNAME
az aks get-credentials -g $RESOURCEGROUP -n $CLUSTERNAME
在 AKS 上,当我得到 pods 时,出现图像拉取错误
我看到 AKS 使用托管身份,ACR 使用主体 ID。我该如何解决这个问题
我尝试使用您提供的相同 cmdlet 后遇到类似问题。
您需要尝试设置 imagePullPolicy to Never
并且成功了。
由于kubectl describe pod mypd
,Kubectl
试图拉取镜像,当然这个镜像不存在于远程服务器上,因此失败。
以上 属性 将避免连接到注册表,并将使用来自 docker 本地图像缓存的图像。
用于使用 ACR 和 AKS
将图像导入 ACR
通过以下 运行 将图像从 docker 集线器导入您的 ACR:
az acr import -n <acr-name> --source docker.io/library/nginx:latest --image nginx:v1
建议您遵循此 Microsoft document 将示例映像从 ACR 部署到 AKS
spec:
containers:
- name: nginx
image: <acr-name>.azurecr.io/nginx:v1
imagePullPolicy: Never
ports:
- containerPort: 80
参考:
ErrImageNeverPull
错误表明您的 pod 规范列出了 imagePullPolicy: Never,这意味着 kubelet 只会查看节点自己的缓存,而不会尝试从 ACR 中拉取。如果你删除它,它应该可以工作。
我需要一些有关 Azure AKS 和 ACR 集成的帮助。 我创建了一个 ACR 容器并将此容器附加到 AKS 群集。我在创建 AKS 时启用了托管身份,我希望 ACR 也使用托管身份
这是我正在使用的脚本..
az group create --name $RESOURCEGROUP --location eastus
az acr create -n $REGISTRYNAME -g $RESOURCEGROUP --sku Basic
az aks create -n $CLUSTERNAME -g $RESOURCEGROUP --node-count $NODECOUNT --enable-addons monitoring --generate-ssh-keys --enable-managed-identity --attach-acr $REGISTRYNAME
az aks get-credentials -g $RESOURCEGROUP -n $CLUSTERNAME
在 AKS 上,当我得到 pods 时,出现图像拉取错误
我看到 AKS 使用托管身份,ACR 使用主体 ID。我该如何解决这个问题
我尝试使用您提供的相同 cmdlet 后遇到类似问题。
您需要尝试设置 imagePullPolicy to Never
并且成功了。
由于kubectl describe pod mypd
,Kubectl
试图拉取镜像,当然这个镜像不存在于远程服务器上,因此失败。
以上 属性 将避免连接到注册表,并将使用来自 docker 本地图像缓存的图像。
用于使用 ACR 和 AKS
将图像导入 ACR 通过以下 运行 将图像从 docker 集线器导入您的 ACR:
az acr import -n <acr-name> --source docker.io/library/nginx:latest --image nginx:v1
建议您遵循此 Microsoft document 将示例映像从 ACR 部署到 AKS
spec:
containers:
- name: nginx
image: <acr-name>.azurecr.io/nginx:v1
imagePullPolicy: Never
ports:
- containerPort: 80
参考:
ErrImageNeverPull
错误表明您的 pod 规范列出了 imagePullPolicy: Never,这意味着 kubelet 只会查看节点自己的缓存,而不会尝试从 ACR 中拉取。如果你删除它,它应该可以工作。