Jak naprawić błąd ImagePullbackoff w Kubernetes

Jak naprawić błąd ImagePullbackoff w Kubernetes
Czy wiesz, że Kubernetes jest zaprojektowany w celu ułatwienia zarówno deklaratywnych konfiguracji, jak i automatyzacji podczas zarządzania usługami i obciążeniami? Pozwala zarządzać wszystkimi kontenerami z tylko jedną płaszczyzną sterowania. Pojemnik ma jeden lub więcej węzłów używanych do uruchamiania kapsułów do różnych celów. Każdy węzeł w pojemniku używa obrazu pojemnika, aby mógł działać na tym węźle. Jeśli klaster Kubernetes nie wyciągnie obrazu kontenera, zostałby podniesiony błąd ImagePulbackoff. W tym artykule omówimy, czym jest błąd ImagPullbackoff i jak naprawić ten błąd w Kubernetes.

Co to jest pojemnik Kubernetes?

Kontener Kubernetes to lekka, przenośna i rozszerzalna maszyna wirtualna o swojej pamięci, przestrzeni, procesora, systemie plików itp. Jest uważany za lekką ze względu na możliwość udostępniania systemu operacyjnego między aplikacjami mającymi rozluźnione właściwości izolacji. Ponadto jest przenośny w chmurze i ma różne rozkłady systemów operacyjnych. Bez względu na to środowisko, w którym działa klaster Kubernetes, zawsze będzie przedstawiać takie same zachowanie dla wszystkich środowisk, ponieważ zależności zawarte w nim standaryzują swoją wydajność.

Przed ewolucją kontenerów zastosowano osobną maszynę wirtualną dla każdej aplikacji, ponieważ wszelkie zmiany współdzielonych zależności od jednej maszyny wirtualnej mogą powodować dziwne wyniki. Powoduje to utratę zasobów pamięci, marnotrawstwa procesora i niedobór innych zasobów. A potem pojawiły się kontenery, które wirtualizowały system operacyjny hosta i wyizolował zależności dla każdej aplikacji w tym samym środowisku. Silnik kontenerowy w kontenerze umożliwia aplikacjom korzystanie z tego samego systemu operacyjnego odizolowanego od innych aplikacji działających na maszynie wirtualnej hosta.

Co to jest obraz pojemnika?

Obraz pojemnika jest reprezentacją zależności zawartych w pojemniku w postaci danych binarnych. Jest to wykonywalny i gotowy do uruchomienia pakiet oprogramowania, który jest w stanie działać samodzielnie. Zawiera wszystkie zależności, w tym biblioteki aplikacji, biblioteki systemowe, kod, niezbędne ustawienia domyślne itp. wymagane do uruchomienia aplikacji w dowolnym środowisku Kubernetes lub systemie operacyjnym. Każdy węzeł w pojemniku używa obrazu kontenera do uruchamiania na nim aplikacji i kapsułek.

W klastrze Kubernetes agent Kubectl jest odpowiedzialny za uruchamianie obrazów kontenerów w każdym węźle. Ciągnie obraz na każdym węźle obecnym w klastrze. Odpowiedzialność jest również odpowiedzialna za zgłoszenie wszystkiego, co dzieje się ponownie do centralnego interfejsu API Kubernetes. Jeśli obraz kontenera nie istnieje już w węźle klastra, Kubectl instruuje pojemnik, aby pociągnął obraz w czasie wykonywania.

Jaki jest błąd ImagePullbackoff?

Są pewne sytuacje, w których Kubernetes może wystąpić problemy z wyciąganiem obrazu kontenera z rejestru kontenera. Jeśli te problemy powodują błąd, wówczas Pods Wprowadź stan ImagPullbackoff. Po utworzeniu nowego wdrożenia lub istniejącego wdrożenia jest aktualizowane w klastrze Kubernetes, obraz kontenera musi zostać pociągnięty. Kubectl wyciąga obraz w każdym węźle pracowniczym w klastrze, który pasuje do żądania planowania. Tak więc, gdy Kubectl nie wyciąga obrazu, staje w obliczu błędu ImagePullbackoff.

Innymi słowy, sekcja „ImagePull” błędu ImagPullbackoff odnosi się do niezdolności Kubernetes do wyciągnięcia obrazu kontenera z publicznego lub prywatnego rejestru kontenera. Sekcja „wstecz” odnosi się do ciągłego rosnącego opóźnienia wycofania obrazu. Opóźnienie wycofania wciąż rośnie z każdą próbą, aż limit wycofania osiągnie 5 minut. Głównym lub oczywistym powodem błędu Imagpullbackoff jest to, że Kubernetes nie wyciąga obrazu kontenera w czasie wykonywania. Jednak może istnieć wiele przyczyn tego problemu, w tym następujące:

  • Ścieżka obrazu jest nieprawidłowa.
  • Kubeclt nie uwierzytelnia się w rejestrze kontenera.
  • Awaria sieci.
  • Limity szybkości rejestru kontenerów.
  • Niepoprawna nazwa rejestru kontenerów
  • Niepowodzenie uwierzytelniania ze względu na prywatny obraz.
  • Niepoprawna nazwa obrazu i tag.
  • Obraz nie istnieje.
  • Uwierzytelnianie jest wymagane przez rejestr obrazu.
  • Limit pobierania przekroczony w rejestrze.

Jak rozwiązać błąd ImagePullbackoff w Kubernetes?

Jeśli pojawi się jakakolwiek z powyższych sytuacji, kapsułka w klastrze kończy się w stanie ImagePullbackoff. Najlepszym sposobem naprawy tego błędu jest rozwiązywanie problemów z klastrem Kubernetes. Możesz rozwiązać problemy, postępując zgodnie z poniższymi instrukcjami:

Krok # 1: Utwórz kapsułkę i przypisz go nazwa obrazu

Kapsuły działają na węzłach, które uruchamiają pojemnik na obraz. Każdy obraz ma określoną nazwę, a jeśli odniesiesz się do nazwy obrazu, który nie istnieje, lub błędnie wprowadza nieprawidłową nazwę, spowoduje błąd ImagePullbackoff. Tutaj zademonstrujemy błąd ImagePullbackoff występujący z powodu nieprawidłowej nazwy obrazu. Utwórzmy więc kapsułkę i przypiszmy ją nonsensowną nazwę obrazu. Możemy to zrobić, wykonując następujące polecenie:

> Kubectl Run Demo1 -image = UnsistentImage/Unsxist: Bla

Polecenie „Kubectl uruchom” utworzy kapsułkę o nazwie „Demo1” i nazwę obrazu '-Image = UnsistentImage/Unsxist: Bla' przypisany do niego.

Krok # 2: Wyświetl wszystkie kapsuły

Następnym krokiem jest wyświetlenie wszystkich kapsułów, aby sprawdzić ich status. Kubectl zapewnia polecenie „Get”, aby uzyskać listę kapsuł z powiązanymi właściwościami, takimi jak nazwa, gotowa, status, wiek itp. Użyj polecenia podanego poniżej, aby wyświetlić wszystkie kapsuły:

> kubectl get Pod

Patrz dane wyjściowe podane na zrzucie ekranu poniżej:

Z wyżej podanego powyżej można zobaczyć, że istnieje wiele strąków, a każdy z nich ma swój status. Niektóre są w stanie „działające”, niektóre są w stanie „ErrimagePull”, a niektóre są w stanie „ImagePullbackoff”.

Krok # 3: Rozwiązywanie problemów z kapsułką

Teraz, gdy wiemy, że w klastrze działa wiele strąków, z których każda ma swój własny status, możemy konkretnie spojrzeć na pożądany kapsułek. Można to zrobić za pomocą podanego tutaj polecenia:

> Kubectl Opisz pod Demo1

„Demo1” to kapsuła, którą stworzyliśmy wcześniej, a polecenie „Opis” poda szczegółowy opis kapsuły „Demo1”. Patrz wyniki podane poniżej:

Wniosek

Zbadaliśmy błąd ImagePullbackoff w środowisku Kubernetes. Dowiedzieliśmy się o klastrze Kubernetes, obrazie klastra, a także zbadaliśmy przyczyny błędu ImagePullbackoff. Głównym i oczywistym powodem błędu ImagePullbackoff jest niezdolność Kubernetes do pociągnięcia obrazu kontenera.