AKS无法从GitHub Private注册表中提取映像,但Minikube可以提取相同的映像



我正在尝试构建一个应用程序,但当我尝试创建部署时,容器在创建阶段失败,错误为:

"docker.pkg.github.com/XXXXX/XXXXXX/XXXXXXXXXXXX:latest": rpc error: code = NotFound desc = failed to pull and unpack image "docker.pkg.github.com/XXXXX/XXXXXXX/XXXXXXXXXX:latest": failed to copy: httpReaderSeeker: failed open: content at https://docker.pkg.github.com/v2/XXXXXXX/XXXXXX/XXXXXXX/manifests/sha........ not found: not found

我完全遵循了本教程:https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/

我在Cloudshell和我的本地机器上都尝试了kubectl,同一个问题:

然后,我在本地机器上尝试了minikube,并使用YAML进行部署,创建的部署没有任何问题。此外,docker pull也在工作。我想这不应该是github凭据的问题。

我真的不明白为什么kubernetes在azure和minikube上表现得如此不同。如果您能提供有关如何排除故障和解决此问题的帮助,我们将不胜感激。

仅供参考,我使用下面的shell cmd在Azure上创建资源,想知道我是否错过了任何步骤:

az group create 
--name $RESOURCE_GROUP 
--location $REGION_NAME

az network vnet create 
--resource-group $RESOURCE_GROUP 
--location $REGION_NAME 
--name $VNET_NAME 
--address-prefixes 10.0.0.0/8 
--subnet-name $SUBNET_NAME 
--subnet-prefixes 10.240.0.0/16

SUBNET_ID=$(az network vnet subnet show 
--resource-group $RESOURCE_GROUP 
--vnet-name $VNET_NAME 
--name $SUBNET_NAME 
--query id -o tsv)

VERSION=$(az aks get-versions 
--location $REGION_NAME 
--query 'orchestrators[?!isPreview] | [-1].orchestratorVersion' 
--output tsv)

az aks create 
--resource-group $RESOURCE_GROUP 
--name $AKS_CLUSTER_NAME 
--vm-set-type VirtualMachineScaleSets 
--node-count 1 
--load-balancer-sku standard 
--location $REGION_NAME 
--kubernetes-version $VERSION 
--network-plugin azure 
--vnet-subnet-id $SUBNET_ID 
--service-cidr 10.2.0.0/24 
--dns-service-ip 10.2.0.10 
--docker-bridge-address 172.17.0.1/16 
--generate-ssh-keys
echo 'xxxxxxx' | docker login https://docker.pkg.github.com -u xxxxxxx --password-stdin

失败是因为最新版本的AKS(1.20或更高版本(已弃用docker作为容器运行时(请改用ContainerD(。在我切换到1.18的旧版本后,问题解决了。

最新更新