Hinweis: Der folgende Artikel hilft Ihnen dabei: 4 Tipps zur Vorbeugung und Fehlerbehebung des ImagePullBackOff Kubernetes-Fehlers
Wenn Sie Kubernetes oder K8s verwenden, ist wahrscheinlich einer der häufigsten Fehler aufgetreten: ImagePullBackOff.
Der Umgang mit dem ImagePullBackOff-Fehler kann frustrierend und mühsam sein, wenn Sie mit dem Problem nicht vertraut sind.
Darüber hinaus verfügt Kubernetes über ein riesiges Ökosystem.
Ohne das entsprechende Wissen kann das Aufspüren der Ursache des Problems wie die Suche nach der Nadel im Heuhaufen sein – selbst wenn Sie Full-Stack-Überwachungslösungen für Ihre modernen Anwendungen einsetzen.
Die gute Nachricht ist, dass wir hier sind, um zu helfen.
In diesem Leitfaden erfahren Sie, was Sie über die Verhinderung und Fehlerbehebung des ImagePullBackOff-Fehlers in Kubernetes wissen müssen.
Was bedeutet Kubernetes ImagePullBackOff?
Der ImagePullBackOff-Status bedeutet, dass ein Pod nicht gestartet werden konnte, weil Kubernetes kein Container-Image abrufen konnte.
Der BackOff Ein Teil im Status bedeutet, dass Kubernetes weiterhin versucht, das Image mit zunehmender Verzögerung abzurufen (daher BackOff).
Lassen Sie uns dies weiter aufschlüsseln.
In Kubernetes, ein Agent in jedem Knoten (Kubelet genannt) ist dafür verantwortlich, Container im Knoten auszuführen und das Image abzurufen.
Sie können sich mehrere Lager vorstellen, wobei jedes Lager (Knoten) einen Gabelstapler (Kubelet) enthält, der den Container hebt und bewegt.
Da das Kubelet für die auf diesem Knoten ausgeführten Container verantwortlich ist, meldet es das Geschehen an die zentrale Kubernetes-API zurück.
Anschließend weist das Kubelet die Container-Laufzeit an, das Container-Image abzurufen, sofern es noch nicht auf einem Knoten vorhanden ist.
Wenn etwas die Container-Laufzeit daran hindert, ein Bild auf den Knoten zu ziehen – den Kubernetes für Ihren Pod geplant hat – meldet das Kubelet „ErrImagePull“ und dann „ImagePullBackOff“ zurück (und versucht es weiter).
Im Wesentlichen weist der ImagePullBackOff-Fehler darauf hin, dass etwas Kubernetes daran hindert, das gewünschte Image auf einen bestimmten Knoten zu ziehen.
Hauptursachen des ImagePullBackOff-Fehlers
Behebung des ImagePullBackOff Kubernetes-Fehlers erfordert ein Verständnis der Ursache des Problems.
Zu den häufigsten Ursachen für den ImagePullBackOff-Fehler gehören die folgenden.
Verwendung einer privaten Registrierung ohne Angabe der erforderlichen Anmeldeinformationen
Viele Unternehmen verwenden Kubernetes häufig mit einer privaten Container-Image-Registrierung, um interne Apps in Container-Image-Bibliotheken nicht öffentlich zu halten.
Wenn Sie ein Image aus privaten Registern abrufen möchten, stellen Sie sicher, dass Sie Kubernetes die erforderlichen Anmeldeinformationen bereitstellen, damit das Image abgerufen werden kann.
Sie müssen in Kubernetes ein Geheimnis erstellen – eine Möglichkeit, vertrauliche Informationen wie einen SSH-Schlüssel oder ein OAuth-Token zu speichern.
Sie müssen auch ein Geheimnis erstellen, wenn Sie Folgendes abrufen:
- Öffentlich zugängliche, aber passwortgeschützte Register
- Private Images auf GitHub Container Registry, Google Container Registry und anderen
Verweisen auf ein Tag oder ein Bild, das nicht existiert
Das Erstellen eines Pods, der auf ein nicht vorhandenes Bild oder Tag verweist, ist eine der häufigsten Ursachen für den ImagePullBackOff-Fehler und oft die Folge eines Tippfehlers.
Es kann auch Fälle geben, in denen das Bild vorhanden sein sollte und Sie den richtigen Namen verwenden, das Tag jedoch möglicherweise zurückgezogen wurde.
Wenn Sie einem alten Buch oder Tutorial folgen, das auf ein bestimmtes Bild-Tag verweist, prüfen Sie, ob das Tag noch vorhanden ist.
Wenn das Tag nicht mehr vorhanden ist, suchen Sie das Ersatz-Tag, das Sie besser verwenden sollten, damit der ImagePullBackOff-Fehler nicht auftritt.
Blockierung durch die Registrierung und andere Probleme
Für einige Registrierungsbibliotheken gelten Ratenbeschränkungen.
Sobald Sie das maximal zulässige Download-Limit erreicht haben, kann die Registrierung Sie blockieren, was möglicherweise den ImagePullBackOff-Fehler verursacht.
Sie müssen sich für ein Konto anmelden oder nach einem anderen Ort suchen, von dem Sie Ihr Bild beziehen können.
Der ImagePullBackOff-Fehler kann auch auftreten, wenn Sie dies nicht tun Richten Sie die SSL/TLS-Authentifizierung ordnungsgemäß ein die die Registrierung benötigt.
4 ImagePullBackOff Kubernetes-Tipps zur Fehlerbehebung
Im Folgenden finden Sie mehrere Möglichkeiten, den ImagePullBackOff-Fehler zu untersuchen und zu beheben.
1. Verwenden Sie kubectl beschreiben
Einer der ersten Schritte, um die Grundursache zu finden und den ImagePullBackOff-Fehler zu beheben, ist die Verwendung von kubectl discover.
Auf diese Weise können Sie das vollständige Fehlerprotokoll anzeigen und so die mögliche Ursache des Problems erkennen.
Wenn Sie beispielsweise einen Pod haben, der auf ein Bild verweist, das nicht existiert, erhalten Sie von kubectl beschreiben
Basierend auf den oben gezeigten Ereignissen zeigt der Fehler deutlich, dass Sie in diesem Szenario den Namen falsch eingegeben haben, was das ImaePullBackOff Kubernetes-Problem verursacht hat.
2. Überprüfen Sie Ihren Pod und Ihr Geheimnis, wenn Sie eine private Registrierung verwenden
Wenn Sie Bilder aus privaten Registern abrufen, stellen Sie sicher, dass Sie ein Geheimnis erstellen, das die erforderlichen Anmeldeinformationen für den Zugriff auf das Register enthält.
Stellen Sie außerdem sicher, dass Sie das Geheimnis im richtigen Namespace hinzufügen.
Sie müssen auch das Feld imagePullSecrets auf Ihrem Pod konfigurieren. Das Feld teilt Kubernetes mit, welches spezifische Geheimnis es bei der Authentifizierung bei der Registrierung verwenden soll.
Es sollte ungefähr so aussehen.
3. Bewerten Sie das Ausmaß des Problems
Finden Sie die genaue Ursache des Problems heraus, indem Sie Folgendes berücksichtigen:
- Laufen bereits andere Pods auf einem bestimmten Knoten? Wenn auf dem Knoten bereits andere Pods ohne Probleme ausgeführt werden, sollte es gut funktionieren, da der Knoten Daten aus derselben Registrierung abruft. Untersuchen Sie, was den Pod auszeichnet, um die Ursache des ImagePullBackOff-Fehlers zu ermitteln.
- Kann der Knoten (im Cluster) das Bild abrufen? Erwägen Sie, über SSH auf den Knoten zu springen und zu prüfen, ob Sie einen Docker-Pull ausführen und das Image abrufen können.
- Können Sie das Bild lokal abrufen? Ziehen Sie das Bild von Ihrer Workstation. Wenn es nicht funktioniert, versuchen Sie es mit Podman Pull oder Docker Pull, um zu sehen, ob Sie das Bild abrufen können. Dies kann Ihnen einen Hinweis darauf geben, warum das lokale Abrufen des Bildes fehlschlägt.
4. Erhöhen Sie die Kubelet-Protokollebenen
Wenn Sie auf die Knoten selbst zugreifen können, erhalten Sie weitere Informationen, indem Sie die Protokollebenen auf dem Kubelet erhöhen.
Sie müssen den Parameter „v“ festlegen, der die Ausführlichkeit der Protokollebene ändert.
Gehen Sie den ImagePullBackOff Kubernetes-Fehlern auf den Grund
Während verschiedene Gründe und Faktoren zu ImagePullBackOff-Fehlern führen können, muss die Behebung des Problems kein Hexenwerk sein.
Beginnen Sie damit, die Fehlermeldung zu untersuchen und zu lesen und die Tipps in diesem Handbuch zu befolgen.