即使授予权限,AKS也无法从ACR中撤出

时间:2019-08-31 04:57:11

标签: azure docker kubernetes azure-aks

我已经按照本文档的说明提供了对AKS的ACR访问:https://docs.microsoft.com/en-us/azure/container-registry/container-registry-auth-aks,但是仍然出现身份验证失败错误。有人可以帮我弄这个吗?

env:
- name: no_cpu
  valueFrom:
    resourceFieldRef:
      containerName: proxy
      resource: requests.cpu
imagePullSecrets:
- name: acr-auth

2 个答案:

答案 0 :(得分:0)

您需要从pod \ deployment定义中删除imagepullsecrets属性。这样,您将指示kubernetes使用内部aks \ acr auth

答案 1 :(得分:0)

确保您已在ACR资源上(从门户网站,IAM选项卡上或使用脚本)分配了acrpull角色给AKS SP:

#!/bin/bash

AKS_RESOURCE_GROUP=myAKSResourceGroup
AKS_CLUSTER_NAME=myAKSCluster
ACR_RESOURCE_GROUP=myACRResourceGroup
ACR_NAME=myACRRegistry

# Get the id of the service principal configured for AKS
CLIENT_ID=$(az aks show --resource-group $AKS_RESOURCE_GROUP --name $AKS_CLUSTER_NAME --query "servicePrincipalProfile.clientId" --output tsv)

# Get the ACR registry resource id
ACR_ID=$(az acr show --name $ACR_NAME --resource-group $ACR_RESOURCE_GROUP --query "id" --output tsv)

# Create role assignment
az role assignment create --assignee $CLIENT_ID --role acrpull --scope $ACR_ID

)。

然后通过命令行创建拉密钥:

kubectl create secret docker-registry acr-auth --docker-server <acr-login-server> --docker-username <service-principal-ID> --docker-password <service-principal-password> --docker-email <email-address>

apiVersion: v1
kind: Secret
metadata:
  name: acr-auth
type: docker-registry
data:
  username: <base64encoded username>
  password: <base64encoded password> 

两者都是等效的。

相关问题