Wenn Sie schon lange mit Kubernetes zusammengearbeitet haben, haben Sie wahrscheinlich auf die ImagePullbackoff -Bedingung gestoßen. Wenn Sie mit diesem Problem nicht vertraut sind, kann es frustrierend sein. In diesem Artikel führen Sie Sie durch die Grundlagen dieses Problems, wie Sie es Fehler beheben können, welche typischen Gründe sind und wo Sie anfangen sollen, wenn Sie sich darauf stellen können.
Was ist der ImagePullbackoff -Fehler?
Das Thema ImagePullbackoff wird durch Ihre Kubernetes -Container -Laufzeit verursacht. Kubernetes zieht das Bild ständig mit einer wachsenden Backoff -Verzögerung, wie die Backoff -Komponente angezeigt wird. Mit jedem Versuch erhöht Kubernetes die Verzögerung, bis sie die fünfminütige Einschränkung erfüllt.
Es mag wie eine breite Aussage erscheinen, um vorzuschlagen, dass die Laufzeit der Container (ob Docker, Container oder etwas anderes) das Bild nicht aus der Registrierung abrufen, aber schauen wir uns die verschiedenen Ursachen an, die Sie im nächsten Abschnitt finden können.
Die vorhergehenden Abschnitte werden die verschiedenen Gründe überschreiten, warum Ihr Pod beim Starten Ihres Containers im Bildpullbackoff -Status sein kann. Sie werden auch lernen, wie Sie diesen gefürchteten Fehler beheben und beheben können.
Was bewirkt, dass der ImagePullbackoff -Fehler auftritt?
Im Folgenden finden Sie einige Gründe, warum Ihr Pod möglicherweise im ImagePullbackoff -Zustand steckt:
So fördern Sie ImagePullbackoff?
Schauen wir uns einige der wahrscheinlichen Ursachen an, die in der Kugelliste aufgeführt sind.
1. Das Containerbild ist nicht verfügbar oder der verwendete Name ist ungenau
Das Problem wird normalerweise erzeugt, wenn ein Tippfehler vorliegt oder die Tatsache, dass das auf die Containerregistrierung gedrängte Bild fehlgeschlagen ist, aber Sie beziehen sich auf ein Bild, das nicht da ist. Versuchen wir, dies neu zu erstellen, indem wir einen Pod mit einem fiktiven Bildnamen machen. Der folgende Befehl erreicht dies.
Wie Sie sehen können, wird die Pod erstellt.
Wenn wir versuchen, die Details des Pod mit dem Befehl Get Pod zu erhalten, wie Sie unten sehen können.
$ Kubectl Holen Sie sich PodHier wird gezeigt, dass das Bild nicht da ist und wir es nicht ziehen können.
Sie können den Befehl kubectl beschreiben, um die Hauptursache zu ermitteln und weitere Informationen zu diesem Problem zu finden. Da der Befehl eine Menge Ausgabe erzeugt, werden wir nur die Abschnitte anzeigen, die für unsere Diskussion relevant sind. Die reale Fehlermeldung wird in der folgenden Ausgabe unter Ereignissen in der Meldungsspalte angezeigt:
$ Kubectl beschreiben POD NewappEinige Abschnitte des produzierten Ergebnisses sind wie folgt nach der Ausführung des Befehls beschreiben.
2. Tag existiert nicht
Es ist möglich, dass die Bild -Tags, die Sie erhalten möchten. Unter bestimmten Umständen steckt Ihr Pod noch einmal im ImagePullbackoff -Status fest, wie in der folgenden Codeprobe gezeigt. Um dieses Problem zu reproduzieren, verwendeten wir absichtlich den fehlerhaften Tag -Namen Lates anstelle der neuesten.
Der obige Befehl hat den Pod mit dem von Ihnen gegebenen Namen erstellt.
Danach erhalten wir die Details des Pod mit dem Befehl Get Pod.
$ kubectl Holen Sie sich PodInfolgedessen fällt das Bild ab.
Jetzt verwenden wir erneut den Befehl beschreiben, um die Ursache dieses Status zu verstehen.
$ kubectl beschreiben pod ApptwoIn diesem Abschnitt der Ereignisse können Sie den Grund für den ImagePullbackoff -Fehler sehen.
Der Grund wird hier deutlich für Ihr besseres Verständnis gezeigt.
3. Falsche Anmeldeinformationen und private Bildregistrierung
Hier versuchen wir, das Problem zu reproduzieren, und dafür haben wir einen Pod gegessen, der versucht, ein Bild aus einem Privatregister zu ziehen.
$ kubectl run AppThree -Image = Docker.io/hiyou/nameofimageDer obige Befehl gibt das folgende Ergebnis an.
Danach haben wir den Befehl beschreiben.
Der beschriebene Befehl zeigt die Gesamtdetails des Pods und erwähnt auch die Gründe für den ImagePullbackoff -Fehler.
Wir haben Kubernetes kein Geheimnis hinzugefügt oder einen Verweis darauf in die POD -Definition aufgenommen. Der Pod wird noch einmal im ImagePullbackoff -Zustand stecken, und die Benachrichtigung überprüft, dass der Zugang zur Registrierung abgelehnt wird:
Sie können ein Geheimnis mit dem folgenden Befehl kubectl erstellen, um diesen Fehler zu beheben. Der Befehl kubectl wird dann verwendet, um ein Geheimnis für eine Docker -Registrierung zu erstellen (privat).
4. Registrierungsrate Grenzwerte
Wenn Sie einige Ihrer Anmeldeinformationen wie Registrierungs -URL, Details und Tagennamen überprüfen, können Sie imagePullbackoff aufgrund von Registrierungsrate -Grenzen erhalten. Sie können jetzt nur alle sechs Stunden auf Docker Hub 100 Behälter ziehen. Wenn Sie Ihre Anmeldedaten angeben, steigen dies alle sechs Stunden auf 200 Zugs. In einem lebhaften Cluster mit zahlreichen häufig eingesetzten Pods konnte diese Grenze schnell erreicht werden.
Sie müssen warten, bis die Kappe nach einer bestimmten Frist erreicht ist. Kubernetes sollte jetzt in der Lage sein, das Bild erfolgreich zu ziehen und Ihre Schoten zu starten.
Erwägen Sie, Sie in der Cluster-Registrierung zusammen mit einem Proxy zu verwenden, um Ihre relevanten Bilder zu zwischenstrahlen. Dies kann Ihnen helfen, in den Ratenbeschränkungen zu bleiben, indem Sie die Häufigkeit verringern, mit der Sie die Server von Docker getroffen haben.
Abschluss
Wenn ein Knoten ein Bild nicht abzieht. KuBelet wird den Zug regelmäßig versuchen, sodass vorübergehende Probleme keine manuelle Intervention erfordern. In diesem Artikel wurde ImagePullbackoff und drei potenzielle Quellen des Problems erörtert. Obwohl es mehrere Ursachen geben kann, kann das Lesen der Fehlermeldung schnell die wahre Ursache des Problems aufzeigen. Wenn Sie die obigen Verfahren untersuchen und befolgen, sollte die Behebung dieses Problems einfach sein.