Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
CanIPull je diagnostický nástroj pro Azure Kubernetes Service (AKS). Nasaďte ho pomocí Azure Copilot nebo kompletního manifestu Kubernetes v tomto článku. CanIPull přečte konfiguraci identity clusteru z jednoho vybraného uzlu, zkontroluje překlad DNS pro ověřovací server Azure Container Registry (ACR) a ověří počáteční výměnu tokenů ACR.
Tento článek ukazuje, jak spustit CanIPull pomocí Azure Copilot nebo manifestu Kubernetes. CanIPull v0.1.0 běží na jednom linuxovém uzlu AMD64 najednou. Opakujte kontrolu na jiných podporovaných uzlech a porovnejte jejich připojení nebo konfiguraci.
Important
CanIPull není kompletní test přijetí změn obrázku. Úspěšný výsledek nepotvrzuje přístup k úložišti, manifestu image nebo vrstvě image, protože CanIPull nevybere ani nevytáhne image.
Předpoklady
Než začnete, potřebujete:
- Existující cluster AKS s alespoň jedním linuxovým uzlem AMD64.
- Existující instance služby ACR, kterou chcete otestovat.
Pokud chcete nasadit CanIPull s Azure Copilot, potřebujete také přístup k Azure Copilot na portálu Azure.
Pokud chcete Nasadit CanIPull ručně, potřebujete také:
- Azure CLI nainstalován.
- Ověřená relace Azure CLI s oprávněními k získání přihlašovacích údajů uživatele pro cluster AKS a čtení instance ACR.
-
kubectlnakonfigurováno pro připojení ke clusteru AKS. - Oprávnění Kubernetes k vypsání uzlů na úrovni clusteru; vytváření, získávání, vypisování, sledování a odstraňování podů v oboru názvů
default; a získávání protokolů podů v oboru názvůdefault.
Nasazení CanIPull s využitím Azure Copilot
Azure Copilot může vybrat cluster AKS, linuxový uzel AMD64 a server pro ověřování ACR a pak za vás nasadit CanIPull. Diagnostika zkontroluje překlad DNS a výměnu tokenu ACR z vybraného uzlu. Nevybere úložiště ani obraz a nemá k nim přístup.
- Na portálu Azure otevřete Copilot.
- Zadejte jednu z následujících výzev:
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.
- Vyberte cluster AKS a linuxový uzel AMD64, ve kterém chcete spustit CanIPull.
- Vyberte instanci ACR, jejíž ověřovací server chcete použít pro kontroly DNS a výměny tokenů.
- Zkontrolujte výběry a potvrďte nasazení.
- Po dokončení nasazení postupujte podle pokynů a otevřete podokno příkazu Spustit.
- Projděte si záznamy CanIPull pro DNS, identitu clusteru a výsledky výměny tokenů ACR.
Další informace o tomto prostředí najdete v tématu Použití canIPull s Azure Copilot.
Nasadit CanIPull ručně
Pokud chcete Nasadit CanIPull ručně, připojte se ke clusteru, vyberte uzel AMD64 Linux, získejte plně kvalifikovaný přihlašovací server ACR, uložte úplný manifest podu uvedený v této části jako canipull.yamla spusťte kubectl apply --filename canipull.yaml. Jednorázový pod umožňuje zvolit cílový uzel a zkontrolovat diagnostické protokoly přímo pomocí kubectl.
Important
Manifest připojuje /etc/kubernetes/azure.json z vybraného uzlu. Tento soubor obsahuje konfiguraci citlivé identity clusteru. Nasaďte pod jenom v případě, že jste důvěryhodný správce clusteru. Nezvětšujte úroveň podrobností CanIPull, protože vyšší úrovně můžou tisknout přístupové tokeny. Jakmile test dokončíte, odstraňte ho.
Připojení ke clusteru a výběr uzlu
Nastavte proměnné pro cluster AKS a instanci ACR.
RESOURCE_GROUP=<resource-group> CLUSTER_NAME=<aks-cluster-name> ACR_NAME=<acr-name>Získejte přihlašovací údaje clusteru.
az aks get-credentials \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAMEZískejte přihlašovací server ACR. CanIPull očekává plně kvalifikovaný název přihlašovacího serveru, například
myregistry.azurecr.io, nikoli název prostředku ACR.ACR_LOGIN_SERVER=$(az acr show \ --name $ACR_NAME \ --query loginServer \ --output tsv) echo $ACR_LOGIN_SERVERVypište linuxové uzly AMD64 a zvolte uzel, na kterém chcete spustit diagnostickou kontrolu. CanIPull
v0.1.0podporuje pouze uzly AMD64.kubectl get nodes \ --selector kubernetes.io/os=linux,kubernetes.io/arch=amd64 \ --output wide
Vytvoření a nasazení kompletního manifestu CanIPull
Zkopírujte úplný manifest do souboru s názvem
canipull.yaml. Nahraďte<target-linux-node>a<acr-login-server>názvem uzlu a přihlašovacím serverem ACR uvedenými v předchozí části. Manifest připne CanIPull na vybraný uzel, zakáže připojení tokenu účtu služby a eskalaci oprávnění a připojí požadovanou konfiguraci uzlu jen pro čtení.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: FileVytvořte pod.
kubectl apply --filename canipull.yamlPočkejte, až se pod dokončí.
kubectl get pod canipull --watchStiskněte ctrl+C , když se stav podu změní na
CompletedneboError.
Zkontrolujte výsledky CanIPull
Zobrazení výstupu diagnostiky
kubectl logs canipull
Úspěšný test obsahuje následující výsledky:
- Ověřovací server ACR se překládá prostřednictvím DNS.
- CanIPull přečte konfiguraci Azure z uzlu.
- Identita kubeletu clusteru nebo instanční objekt služby se může autentizovat.
- Služba ACR přijímá počáteční výměnu tokenů.
Tyto výsledky potvrzují pouze to, že vybraný uzel dokáže přeložit název ověřovacího serveru ACR a že identita clusteru může dokončit počáteční výměnu tokenů. CanIPull nenačítá image ani neověřuje přístup k úložišti, manifestu image nebo vrstvě image.
Konečná zpráva o úspěchu nástroje používá širší formulaci než obor testu a podobá se následujícímu výstupu:
Your cluster can pull images from <acr-login-server>!
Chcete-li ověřit stažení image v rámci kompletního procesu, nasaďte pracovní zátěž, která používá image z cílového repozitáře.
Pokud test selže, zkontrolujte řádek protokolu označený FAILED. Mezi běžné příčiny patří:
- Ověřovací server ACR se nepřeloží z vybraného uzlu.
- Vybraný uzel neobsahuje
/etc/kubernetes/azure.json. - Přihlašovací údaje identity clusteru nejsou platné.
- ACR odmítne výměnu tokenu pro identitu služby kubelet nebo instanční objekt služby.
Pokud výměna tokenů selže, protože identita nemá oprávnění pro přístup k ACR, přečtěte si téma Ověřování pomocí ACR z AKS.
Vyčistěte zdroje
Odstraňte pod CanIPull a odeberte jeho přístup ke konfiguraci uzlu.
kubectl delete pod canipull