Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Kubernetes Service (AKS) ile Azure Container Registry (ACR) kullanırken bir kimlik doğrulama mekanizması oluşturmanız gerekir. Azure CLI, Azure PowerShell veya Azure portalını kullanarak ACR ile AKS arasında gerekli izinleri yapılandırabilirsiniz. Bu makalede, Azure CLI veya Azure PowerShell kullanarak bu Azure hizmetleri arasında kimlik doğrulamasını yapılandırma örnekleri sağlanır.
AKS ile ACR tümleştirmesi, AKS kümenizdeki aracı havuzuyla ilişkili Microsoft Entra ID yönetilen kimliğine AcrPull rolünü atar. AKS yönetilen kimlikleri hakkında daha fazla bilgi için Yönetilen kimliklerin özeti bölümüne bkz.
Önemli
ACR eklenirken Microsoft Entra gruplarında gecikme sorunu yaşanıyor. AcrPull rolü bir Microsoft Entra grubuna verilirse ve kubelet kimliği RBAC yapılandırmasını tamamlamak için gruba eklenirse, RBAC grubunun etkili olması için bir gecikme olabilir. RBAC yapılandırmasının tamamlanmasını gerektiren bir otomasyon çalıştırıyorsanız geçici çözüm olarak Kendi kubelet kimliğinizi getirin seçeneğini kullanmanızı öneririz. Kullanıcı tarafından atanan bir kimliği önceden oluşturabilir, Microsoft Entra grubuna ekleyebilir ve ardından kimliği kubelet kimliği olarak kullanarak AKS kümesi oluşturabilirsiniz. Bu, kubelet tarafından belirteç oluşturulmadan önce kimliğin Microsoft Entra grubuna eklenmesini sağlar ve bu da gecikme sorununu önler.
Not
Bu makale AKS ile ACR arasında otomatik kimlik doğrulamayı kapsar. Özel bir dış kayıt defterinden bir görüntü çekmeniz gerekiyorsa, bir görüntü çekme gizliliği kullanın.
Başlamadan önce
- Azure aboneliğinizde Sahip, Azure hesap yöneticisi veya Azure ortak yönetici rolüne ihtiyacınız vardır.
- Bu rollerden birine ihtiyaç duymamak için, AKS'den ACR'ye kimlik doğrulaması yapmak amacıyla mevcut bir yönetilen kimliği kullanabilirsiniz. Daha fazla bilgi için bkz ACR'ye kimlik doğrulamak için Azure yönetilen kimliğini kullanma.
- Azure CLI kullanıyorsanız bu makale, Azure CLI 2.7.0 veya sonraki bir sürümünü çalıştırmanızı gerektirir. Sürümü bulmak için
az --version
komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme. - Azure PowerShell kullanıyorsanız, bu makalede Azure PowerShell sürüm 5.9.0 veya sonraki bir sürümü kullanmanız gerekir. Sürümü bulmak için
Get-InstalledModule -Name Az
komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse bkz. Azure PowerShell yükleme. - Terraform'un ACR yapılandırması için kullanılmasına yönelik örnekler ve söz dizimi Terraform başvurusunda bulunabilir.
Yeni ACR oluşturma
Henüz bir ACR'niz yoksa,
az acr create
komutunu kullanarak bir ACR oluşturun. Aşağıdaki örnek, değişkeniniMYACR
ACR, mycontainerregistry adına ayarlar ve kayıt defterini oluşturmak için değişkenini kullanır. ACR adınız genel olarak benzersiz olmalı ve yalnızca küçük harfler kullanmalıdır.MYACR=mycontainerregistry az acr create --name $MYACR --resource-group myContainerRegistryResourceGroup --sku basic
Yeni bir AKS kümesi oluşturma ve mevcut bir ACR ile tümleştirme
Yeni bir AKS kümesi oluşturun ve
az aks create
komutunu--attach-acr
parametresiyle kullanarak mevcut bir ACR ile entegre edin. Bu komut, aboneliğinizde var olan bir ACR'yi yetkilendirmenize olanak tanır ve yönetilen kimlik için uygun AcrPull rolünü yapılandırabilir.MYACR=mycontainerregistry az aks create --name myAKSCluster --resource-group myResourceGroup --generate-ssh-keys --attach-acr $MYACR
Bu komutun tamamlanması birkaç dakika sürebilir.
Not veya Bilgi (depending on specific context, but keeping "Not" for simplicity and direct meaning)
AKS kümenizden farklı bir abonelikte bulunan bir ACR kullanıyorsanız veya ACR adı yerine ACR kaynak kimliğini kullanmayı tercih ediyorsanız, bunu aşağıdaki söz dizimini kullanarak yapabilirsiniz:
az aks create -n myAKSCluster -g myResourceGroup --generate-ssh-keys --attach-acr /subscriptions/<subscription-id>/resourceGroups/myContainerRegistryResourceGroup/providers/Microsoft.ContainerRegistry/registries/myContainerRegistry
Mevcut AKS kümesi için ACR tümleştirmesini yapılandırma
Mevcut AKS kümesine ACR ekleme
Mevcut bir ACR'yi mevcut bir AKS kümesiyle
az aks update
komutunu,--attach-acr
parametresi ve acr-name veya acr-resource-id için geçerli bir değer kullanarak tümleştirin.# Attach using acr-name az aks update --name myAKSCluster --resource-group myResourceGroup --attach-acr <acr-name> # Attach using acr-resource-id az aks update --name myAKSCluster --resource-group myResourceGroup --attach-acr <acr-resource-id>
Not
komutu,
az aks update --attach-acr
ACR rol atamasını oluşturmak için komutunu çalıştıran kullanıcının izinlerini kullanır. Bu rol kubelet yönetilen kimliğine atanır. AKS yönetilen kimlikleri hakkında daha fazla bilgi için Yönetilen kimliklerin özeti bölümüne bakın.
AKS kümesinden ACR ayırma
az aks update
komutunu,--detach-acr
parametresi ile ve acr-name veya acr-resource-id için geçerli bir değerle kullanarak bir ACR ile bir AKS kümesi arasındaki tümleştirmeyi kaldırın.# Detach using acr-name az aks update --name myAKSCluster --resource-group myResourceGroup --detach-acr <acr-name> # Detach using acr-resource-id az aks update --name myAKSCluster --resource-group myResourceGroup --detach-acr <acr-resource-id>
ACR ve AKS ile çalışma
Görüntüyü ACR'nize aktarma
komutunu kullanarak Docker Hub'daki bir görüntüyü ACR'nize aktarın
az acr import
.az acr import --name <acr-name> --source docker.io/library/nginx:latest --image nginx:v1
Örnek görüntüyü ACR'den AKS'ye dağıtma
komutunu kullanarak uygun AKS kimlik bilgilerine sahip olduğunuzdan
az aks get-credentials
emin olun.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Aşağıdaki örnek YAML'yi kullanarak acr-nginx.yaml adlı bir dosya oluşturun ve acr-name değerini ACR'nizin adıyla değiştirin.
apiVersion: apps/v1 kind: Deployment metadata: name: nginx0-deployment labels: app: nginx0-deployment spec: replicas: 2 selector: matchLabels: app: nginx0 template: metadata: labels: app: nginx0 spec: containers: - name: nginx image: <acr-name>.azurecr.io/nginx:v1 ports: - containerPort: 80
komutunu kullanarak
kubectl apply
AKS kümenizde dağıtımı çalıştırın.kubectl apply -f acr-nginx.yaml
komutunu kullanarak
kubectl get pods
dağıtımı izleyin.kubectl get pods
Çıkış, aşağıdaki örnek çıktıda gösterildiği gibi çalışan iki pod göstermelidir:
NAME READY STATUS RESTARTS AGE nginx0-deployment-669dfc4d4b-x74kr 1/1 Running 0 20s nginx0-deployment-669dfc4d4b-xdpd6 1/1 Running 0 20s
Sorun giderme
- komutunu kullanarak
az aks check-acr
kayıt defterinin AKS kümesinden erişilebilir olduğunu doğrulayın. - ACR izleme hakkında daha fazla bilgi edinin.
- ACR sağlığı hakkında daha fazla bilgi edinin.
Azure Kubernetes Service