Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
CanIPull to narzędzie diagnostyczne dla Azure Kubernetes Service (AKS). Wdróż go przy użyciu Azure Copilot lub pełnego manifestu Kubernetes zamieszczonego w tym artykule. Program CanIPull odczytuje konfigurację tożsamości klastra z jednego wybranego węzła, sprawdza rozpoznawanie nazw DNS dla serwera uwierzytelniania Azure Container Registry (ACR) i weryfikuje początkową wymianę tokenów usługi ACR.
W tym artykule pokazano, jak uruchomić narzędzie CanIPull przy użyciu Azure Copilot lub manifestu platformy Kubernetes. Narzędzie CanIPull v0.1.0 działa na jednym węźle AMD64 Linux naraz. Powtórz sprawdzanie w innych obsługiwanych węzłach, aby porównać ich łączność lub konfigurację.
Ważna
CanIPull nie jest testem ściągania obrazu kompleksowego. Pomyślny wynik nie potwierdza dostępu do repozytorium, manifestu obrazu ani warstwy obrazu, ponieważ program CanIPull nie wybiera ani nie ściąga obrazu.
Wymagania wstępne
Przed rozpoczęciem potrzebne są następujące elementy:
- Istniejący klaster AKS z co najmniej jednym węzłem systemu Linux AMD64.
- Istniejąca instancja ACR, którą chcesz przetestować.
Aby wdrożyć aplikację CanIPull przy użyciu Azure Copilot, musisz również mieć dostęp do Azure Copilot w portalu Azure.
Aby wdrożyć narzędzie CanIPull ręcznie, potrzebne są również następujące elementy:
- Azure CLI zainstalowany.
- Uwierzytelniona sesja Azure CLI z uprawnieniami do pobierania poświadczeń użytkownika dla klastra usługi AKS i odczytywania wystąpienia usługi ACR.
-
kubectlskonfigurowany do łączenia z Twoim klastrem AKS. - Uprawnienia Kubernetes do wyświetlania listy węzłów na poziomie klastra; tworzenia, pobierania, wyświetlania, obserwowania i usuwania podów w przestrzeni nazw
default; oraz pobierania dzienników podów w przestrzeni nazwdefault.
Wdrażanie narzędzia CanIPull za pomocą Azure Copilot
Azure Copilot może wybrać za Ciebie klaster AKS, węzeł systemu Linux AMD64 i serwer uwierzytelniania ACR, a następnie wdrożyć narzędzie CanIPull. Diagnostyka sprawdza rozpoznawanie nazw DNS i wymianę tokenów usługi ACR z wybranego węzła. Nie wybiera ani nie uzyskuje dostępu do repozytorium ani obrazu.
- W portalu Azure otwórz Copilot.
- Wprowadź jeden z następujących monitów:
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.
- Wybierz klaster AKS i węzeł AMD64 Linux, w którym ma zostać uruchomiony program CanIPull.
- Wybierz wystąpienie usługi ACR, którego serwera uwierzytelniania chcesz użyć do sprawdzania DNS i wymiany tokenów.
- Przejrzyj wybrane opcje, a następnie potwierdź wdrożenie.
- Po zakończeniu wdrażania postępuj zgodnie z monitem, aby otworzyć okienko Uruchom polecenie .
- Przejrzyj dzienniki narzędzia CanIPull pod kątem wyników dotyczących systemu DNS, tożsamości klastra i wymiany tokenu ACR.
Aby uzyskać więcej informacji na temat tego środowiska, zobacz Use CanIPull with Azure Copilot (Używanie narzędzia CanIPull z Azure Copilot).
Ręczne wdrażanie aplikacji CanIPull
Aby wdrożyć program CanIPull ręcznie, połącz się z klastrem, wybierz węzeł AMD64 Linux, pobierz w pełni kwalifikowany serwer logowania usługi ACR, zapisz pełny manifest zasobnika podany w tej sekcji jako canipull.yaml, a następnie uruchom polecenie kubectl apply --filename canipull.yaml. Jednorazowy pod umożliwia wybranie węzła docelowego i bezpośrednie przeglądanie logów diagnostycznych przy użyciu kubectl.
Ważna
Manifest montuje /etc/kubernetes/azure.json z wybranego węzła. Ten plik zawiera poufną konfigurację tożsamości klastra. Wdróż zasobnik tylko wtedy, gdy jesteś zaufanym administratorem klastra. Nie zwiększaj poziomu gadatliwości CanIPull, ponieważ wyższe poziomy mogą wyświetlać tokeny dostępu. Usuń pod, gdy tylko zakończysz test.
Nawiązywanie połączenia z klastrem i wybieranie węzła
Ustaw zmienne dla klastra AKS i wystąpienia ACR.
RESOURCE_GROUP=<resource-group> CLUSTER_NAME=<aks-cluster-name> ACR_NAME=<acr-name>Pobierz poświadczenia klastra.
az aks get-credentials \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAMEPobierz serwer logowania usługi ACR. CanIPull oczekuje w pełni kwalifikowanej nazwy serwera logowania, takiej jak
myregistry.azurecr.io, a nie nazwy zasobu ACR.ACR_LOGIN_SERVER=$(az acr show \ --name $ACR_NAME \ --query loginServer \ --output tsv) echo $ACR_LOGIN_SERVERWyświetl listę węzłów AMD64 Linux i wybierz węzeł, w którym chcesz uruchomić test diagnostyczny. Aplikacja CanIPull
v0.1.0obsługuje tylko węzły AMD64.kubectl get nodes \ --selector kubernetes.io/os=linux,kubernetes.io/arch=amd64 \ --output wide
Tworzenie i wdrażanie kompletnego manifestu CanIPull
Skopiuj kompletny manifest do pliku o nazwie
canipull.yaml. Zastąp<target-linux-node>i<acr-login-server>nazwą węzła i serwerem logowania ACR z poprzedniej sekcji. Manifest przypisuje CanIPull do wybranego węzła, wyłącza montowanie tokenu konta usługi i eskalację uprawnień oraz montuje wymaganą konfigurację węzła w trybie tylko do odczytu.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: FileUtwórz pod.
kubectl apply --filename canipull.yamlPoczekaj, aż pod zakończy działanie.
kubectl get pod canipull --watchNaciśnij Ctrl+C, gdy stan poda zmieni się na
CompletedlubError.
Przejrzyj wyniki aplikacji CanIPull
Wyświetl dane wyjściowe diagnostyki.
kubectl logs canipull
Udany test daje następujące wyniki:
- Serwer uwierzytelniania ACR jest rozwiązywany przez system DNS.
- Program CanIPull odczytuje konfigurację Azure z węzła.
- Tożsamość kubelet klastra lub jednostka usługi głównej może uwierzytelniać się.
- Usługa ACR akceptuje początkową wymianę tokenów.
Te wyniki potwierdzają tylko, że wybrany węzeł może rozpoznać serwer uwierzytelniania usługi ACR i że tożsamość klastra może zakończyć początkową wymianę tokenów. Program CanIPull nie ściąga obrazu ani nie weryfikuje dostępu do repozytorium, manifestu obrazu ani warstwy obrazu.
Końcowy komunikat o powodzeniu narzędzia używa szerszego sformułowania niż zakres testu i przypomina następujące dane wyjściowe:
Your cluster can pull images from <acr-login-server>!
Aby zweryfikować pełny proces pobierania obrazu, wdróż obciążenie robocze odwołujące się do obrazu w repozytorium docelowym.
Jeśli test zakończy się niepowodzeniem, przejrzyj wiersz dziennika oznaczony jako FAILED. Typowe przyczyny:
- Serwer uwierzytelniania usługi ACR nie jest rozpoznawany z wybranego węzła.
- Wybrany węzeł nie zawiera
/etc/kubernetes/azure.json. - Poświadczenia tożsamości klastra są nieprawidłowe.
- ACR odrzuca wymianę tokenu dla tożsamości kubelet lub nazwy głównej usługi.
Jeśli wymiana tokenów zakończy się niepowodzeniem, ponieważ tożsamość nie jest autoryzowana do uzyskiwania dostępu do usługi ACR, zobacz Uwierzytelnianie za pomocą usługi ACR z usługi AKS.
Uprzątnij zasoby
Usuń pod CanIPull i usuń mu dostęp do konfiguracji węzła.
kubectl delete pod canipull