Weryfikowanie połączenia z rejestrem kontenerów
Ten artykuł jest częścią serii. Zacznij od omówienia.
Aby pomyślnie wdrożyć konteneryzowane aplikacje w klastrze usługi Azure Kubernetes Service (AKS), należy zweryfikować łączność między klastrem a rejestrem kontenerów. Ten krok gwarantuje, że węzły procesu roboczego mają niezbędne uprawnienia do ściągania wymaganych obrazów kontenerów z rejestru.
Identyfikowanie objawów
Gdy narzędzie kubelet uruchamiane w węźle agenta tworzy kontenery dla zasobnika, co najmniej jeden kontener może skończyć się w stanie oczekiwania z powodu błędu ImagePullBackOff
. ImagePullBackoff to typowy komunikat o błędzie w rozwiązaniu Kubernetes wskazujący, że nie można ściągnąć wymaganego obrazu kontenera z rejestru publicznego lub prywatnego. Różne czynniki mogą powodować ten błąd, w tym problemy z łącznością sieciową, nieprawidłową nazwę obrazu lub tag, niewystarczające uprawnienia lub brakujące poświadczenia.
Część BackOff
stanu oznacza, że platforma Kubernetes stale próbuje ściągnąć obraz z rosnącym opóźnieniem między poszczególnymi kolejnymi próbami. Opóźnienie stopniowo wzrasta do momentu osiągnięcia wstępnie określonego limitu, który jest zwykle ustawiony na 300 sekund (5 minut) na platformie Kubernetes.
Ważne jest, aby dokładnie sprawdzić nazwę rejestru i obrazu pod kątem dokładności. Ponadto upewnij się, że klaster usługi AKS ma niezbędne uprawnienia do ściągania obrazów z odpowiedniego rejestru kontenerów.
Przypisania ról
Po dołączeniu rejestru kontenerów do istniejącego klastra usługi AKS rola AcrPull zostanie automatycznie przypisana do rejestru do tożsamości zarządzanej firmy Microsoft Entra skojarzonej z pulami agentów w klastrze usługi AKS. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie za pomocą usługi Container Registry z usługi AKS.
Uruchom następujące polecenie, aby pobrać tożsamość zarządzaną kubelet klastra Kubernetes i jego bieżące przypisania ról:
# Get the kubelet managed identity.
ASSIGNEE=$(az aks show -g $RESOURCE_GROUP -n $NAME --query identityProfile.kubeletidentity.clientId -o tsv)
az role assignment list --assignee $ASSIGNEE --all -o table
Uruchom następujące polecenie, aby przypisać AcrPull
rolę do tożsamości zarządzanej kubelet:
AZURE_CONTAINER_REGISTRY_ID=$(az acr show --name <container-registry-name> --query id --output tsv)
az role assignment create --assignee $ASSIGNEE --scope $AZURE_CONTAINER_REGISTRY_ID --role acrpull
Rozwiązywanie problemów z usługą Container Registry
Poniższe sekcje zawierają przewodniki, które można znaleźć w przypadku napotkania problemów z siecią, logowaniem lub wydajnością w rejestrze kontenerów platformy Azure.
Rozwiązywanie problemów z siecią
Jeśli wystąpią problemy związane z uzyskiwaniem dostępu do rejestru kontenerów platformy Azure w sieci wirtualnej lub za zaporą lub serwerem proxy, rozważ następujące rozwiązania:
- Skonfiguruj dostęp do zapory klienta.
- Skonfiguruj publiczny dostęp do rejestru.
- Konfigurowanie dostępu do sieci wirtualnej.
- Konfigurowanie dostępu dla usług.
Rozwiązywanie problemów z logowaniem
Jeśli podczas logowania się do rejestru kontenerów platformy Azure wystąpią problemy z uwierzytelnianiem i autoryzacją, rozważ następujące rozwiązania:
- Sprawdź konfigurację platformy Docker w środowisku.
- Określ poprawną nazwę rejestru.
- Sprawdź poświadczenia, aby uzyskać dostęp do rejestru.
- Skonfiguruj publiczny dostęp do rejestru.
- Rozwiązywanie problemów z logowaniem do rejestru.
- Sprawdź, czy poświadczenia nie wygasły.
Rozwiązywanie problemów z wydajnością
Jeśli wystąpią problemy z wydajnością w rejestrze kontenerów platformy Azure, rozważ następujące rozwiązania:
- Włącz pamięć podręczną artefaktów.
- Sprawdź szybkość połączenia sieciowego.
- Sprawdź sprzęt klienta, który może mieć wpływ na kompresję warstwy obrazu lub szybkość wyodrębniania.
- Przejrzyj skonfigurowane limity w warstwie usługi rejestru lub środowisku.
- Skonfiguruj rejestr replikowany geograficznie w celu uzyskania optymalnej wydajności z replikami w pobliskich regionach.
- Zoptymalizuj konfigurację DNS pod kątem ściągania z geograficznie odległej repliki rejestru.
Te przewodniki mogą pomóc w zapewnieniu bezproblemowego pobierania obrazów dla klastra usługi AKS i zapewnienia bezproblemowego działania obciążeń.
Integrowanie rejestru kontenerów innej firmy
W przypadku korzystania z rejestru kontenerów innej firmy należy utworzyć odpowiednie ImagePullSecret
poświadczenia dla rejestru, aby klaster usługi AKS mógł bezpiecznie uzyskiwać dostęp do obrazów kontenerów. Aby uzyskać więcej informacji, zobacz Tworzenie wpisu tajnego ściągania obrazu. Upewnij się, że skonfigurowano odpowiednie uprawnienia i poświadczenia, aby można było zweryfikować połączenie z rejestrem kontenerów i umożliwić klastrowi usługi AKS pomyślne ściąganie wymaganych obrazów kontenerów podczas wdrożeń. To najlepsze rozwiązanie pomaga zapewnić bezproblemowe i niezawodne wykonywanie konteneryzowanych obciążeń na platformie Kubernetes.
Współautorzy
Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.
Autorzy zabezpieczeń:
- Paolo Salvatori | Główny inżynier klienta
- Franciszek Simy FrancisZki | Starszy specjalista techniczny
Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.