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.
CanIPull, Azure Kubernetes Service (AKS) için bir tanılama aracıdır. Bunu, Azure Copilot'u veya bu makaledeki eksiksiz Kubernetes bildirimini kullanarak dağıtın. CanIPull seçilen bir düğümden küme kimliği yapılandırmasını okur, Azure Container Registry (ACR) kimlik doğrulama sunucusu için DNS çözümlemesini denetler ve ilk ACR belirteci değişimini doğrular.
Bu makalede, Azure Copilot veya Kubernetes bildirimi kullanarak CanIPull'ı çalıştırma işlemi gösterilmektedir. CanIPull v0.1.0 aynı anda bir AMD64 Linux düğümünde çalışır. Bağlantılarını veya yapılandırmasını karşılaştırmak için desteklenen diğer düğümlerde denetimi yineleyin.
Important
CanIPull uçtan uca görüntü çekme testi değildir. Başarılı bir sonuç bir depoya, görüntü bildirimine veya görüntü katmanına erişimi onaylamaz çünkü CanIPull bir görüntüyü seçmez veya çekmez.
Prerequisites
Başlamadan önce şunları yapmanız gerekir:
- En az bir AMD64 Linux düğümüne sahip mevcut bir AKS kümesi.
- Test etmek istediğiniz mevcut bir ACR örneği.
CanIPull'ı Azure Copilot ile dağıtmak için Azure portalında Azure Copilot erişiminiz de olmalıdır.
CanIPull'ı el ile dağıtmak için şunları da yapmanız gerekir:
- Azure CLI yüklendi.
- AKS kümesi için kullanıcı kimlik bilgilerini alma ve ACR örneğini okuma izinlerine sahip kimliği doğrulanmış bir Azure CLI oturumu.
-
kubectlAKS kümenize bağlanacak şekilde yapılandırıldı. - Küme kapsamında düğümleri listeleme;
defaultad alanında pod oluşturma, alma, listeleme, izleme ve silme; vedefaultad alanında pod günlüklerini alma için Kubernetes izinleri.
CanIPull'ı Azure Copilot ile dağıtma
Azure Copilot AKS kümesini, AMD64 Linux düğümünü ve ACR kimlik doğrulama sunucusunu seçip CanIPull'ı sizin için dağıtabilir. Tanılama, seçilen düğümden DNS çözümlemesini ve ACR belirteci değişimini denetler. Bir depoyu veya imajı seçmez ya da bunlara erişmez.
- Azure portalında Copilot açın.
- Aşağıdaki istemlerden birini girin:
Help me deploy CanIPull to my AKS cluster.Can an AMD64 Linux node in my AKS cluster resolve and authenticate to a specific Azure Container Registry?Help me test ACR token exchange from an AMD64 Linux node in my AKS cluster.
- CanIPull'ın çalışmasını istediğiniz AKS kümesini ve AMD64 Linux düğümünü seçin.
- DNS ve belirteç değişim denetimleri için kimlik doğrulama sunucusunu kullanmak istediğiniz ACR örneğini seçin.
- Seçimleri gözden geçirin ve dağıtımı onaylayın.
- Dağıtım tamamlandıktan sonra komut bölmesini açmak için istemi izleyin.
- DNS, küme kimliği ve ACR belirteci değişim sonuçları için CanIPull günlüklerini gözden geçirin.
Bu deneyim hakkında daha fazla bilgi için bkz. Azure Copilot ile CanIPull kullanma.
CanIPull'ı manuel olarak dağıtın
CanIPull'ı el ile dağıtmak için kümeye bağlanın, bir AMD64 Linux düğümü seçin, tam etki alanı adına sahip ACR oturum açma sunucusunu alın, bu bölümde sağlanan pod bildirimini eksiksiz olarak canipull.yaml olarak kaydedin ve kubectl apply --filename canipull.yaml komutunu çalıştırın. Tek kullanımlık pod, hedef düğümü seçmenize ve tanılama günlüklerini kubectl ile doğrudan incelemenize olanak tanır.
Important
Manifest, seçili düğümden /etc/kubernetes/azure.json mount eder. Bu dosya hassas küme kimliği yapılandırmasını içerir. Podu yalnızca güvenilir bir küme yöneticisiyseniz dağıtın. CanIPull ayrıntı düzeyini artırmayın; çünkü daha yüksek düzeyler erişim belirteçlerini yazdırabilir. Testi tamamlar tamamlamaz podu silin.
Kümeye bağlanın ve bir düğüm seçin
AKS kümesi ve ACR örneği için değişkenleri ayarlayın.
RESOURCE_GROUP=<resource-group> CLUSTER_NAME=<aks-cluster-name> ACR_NAME=<acr-name>Küme kimlik bilgilerini alın.
az aks get-credentials \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAMEACR oturum açma sunucusunu alın. CanIPull, ACR kaynak adı yerine
myregistry.azurecr.iogibi tam nitelikli oturum açma sunucusunu bekler.ACR_LOGIN_SERVER=$(az acr show \ --name $ACR_NAME \ --query loginServer \ --output tsv) echo $ACR_LOGIN_SERVERAMD64 Linux düğümlerini listeleyin ve tanılama denetimini çalıştırmak istediğiniz düğümü seçin. CanIPull
v0.1.0yalnızca AMD64 düğümlerini destekler.kubectl get nodes \ --selector kubernetes.io/os=linux,kubernetes.io/arch=amd64 \ --output wide
CanIPull bildiriminin tamamını oluşturma ve dağıtma
Bildirimin tamamını adlı
canipull.yamlbir dosyaya kopyalayın.<acr-login-server>ve<target-linux-node>yer tutucularını önceki bölümdeki düğüm adı ve ACR oturum açma sunucusuyla değiştirin. Bildirim CanIPull'ı seçili düğüme sabitler, hizmet hesabı belirteci bağlamasını ve ayrıcalık yükseltmesini devre dışı bırakır ve gerekli düğüm yapılandırmasını salt okunur olarak bağlar.apiVersion: v1 kind: Pod metadata: name: canipull namespace: default labels: app: canipull spec: automountServiceAccountToken: false nodeName: <target-linux-node> restartPolicy: Never containers: - name: canipull image: mcr.microsoft.com/aks/canipull:v0.1.0 imagePullPolicy: IfNotPresent args: - <acr-login-server> securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true volumeMounts: - name: azure-config mountPath: /etc/kubernetes/azure.json readOnly: true volumes: - name: azure-config hostPath: path: /etc/kubernetes/azure.json type: FilePod'u oluşturun.
kubectl apply --filename canipull.yamlPod'un bitmesini bekleyin.
kubectl get pod canipull --watchErrorCompletedC tuşlarına, pod durumu + veya olarak değiştiğinde basın.
CanIPull sonuçlarını gözden geçirme
Tanılama çıkışını görüntüleyin.
kubectl logs canipull
Başarılı bir test aşağıdaki sonuçları içerir:
- ACR kimlik doğrulama sunucusu DNS aracılığıyla çözümlenmektedir.
- CanIPull düğümden Azure yapılandırmasını okur.
- Kümenin kubelet kimliği veya hizmet sorumlusu kimlik doğrulaması yapabilir.
- ACR, ilk belirteç değişimini kabul eder.
Bu sonuçlar yalnızca seçilen düğümün ACR kimlik doğrulama sunucusunu çözümleyebildiğini ve küme kimliğinin ilk belirteç değişimini tamamlayabildiğini onaylar. CanIPull bir görüntüyü çekmez veya bir depoya, görüntü bildirimine veya görüntü katmanına erişimi doğrulamaz.
Aracın son başarı iletisi, testin kapsamından daha geniş bir ifade kullanır ve aşağıdaki çıktıya benzer:
Your cluster can pull images from <acr-login-server>!
Uçtan uca görüntü çekme işlemini doğrulamak için hedef depodaki bir görüntüye başvuran bir iş yükü dağıtın.
Test başarısız olursa, FAILED ile işaretlenen günlük satırını gözden geçirin. Yaygın nedenler şunlardır:
- ACR kimlik doğrulama sunucusu seçilen düğümden çözümlenmiyor.
- Seçili düğüm
/etc/kubernetes/azure.jsoniçermiyor. - Küme kimliği kimlik bilgileri geçerli değil.
- ACR, kubelet kimliği veya hizmet sorumlusu için belirteç değişimini reddeder.
Belirteç alışverişi, kimliğin ACR’ye erişim yetkisi olmadığından başarısız olursa AKS’den ACR’ye kimlik doğrulama bölümüne bakın.
Kaynakları temizle
CanIPull podunu silin ve düğüm yapılandırmasına erişimini kaldırın.
kubectl delete pod canipull