Was ist ein Kubernetes -Container?
Ein Kubernetes -Container ist eine leichte, tragbare und erweiterbare virtuelle Maschine mit Speicher, Speicherplatz, CPU, Dateisystem usw. Dies gilt aufgrund seiner Möglichkeit, das Betriebssystem unter Anwendungen mit entspannten Isolationseigenschaften zu teilen. Darüber hinaus ist es in der Cloud tragbar und verfügt über unterschiedliche Betriebssystemverteilungen. Unabhängig davon, in welcher Umgebung der Kubernetes -Cluster ausgeführt wird, zeigt er immer das gleiche Verhalten für alle Umgebungen, da die in IT enthaltenen Abhängigkeiten seine Leistung standardisieren.
Vor der Entwicklung von Containern wurde für jede Anwendung eine separate virtuelle Maschine verwendet, da Änderungen in den gemeinsam genutzten Abhängigkeiten von einer virtuellen Maschine seltsame Ergebnisse verursachen können. Dies führt zu einem Verlust von Speicherressourcen, CPU -Verschwendung und Mangel an anderen Ressourcen. Und dann kamen die Container, die das Host -Betriebssystem virtualisierten und die Abhängigkeiten für jede Anwendung in derselben Umgebung isolierten. Mit der Containermotor im Container können die Anwendungen das gleiche Betriebssystem verwenden, das von anderen Anwendungen isoliert ist, die auf dem virtuellen Host -Computer ausgeführt werden.
Was ist ein Containerbild?
Ein Containerbild ist die Darstellung der im Container enthaltenen Abhängigkeiten in Form von Binärdaten. Es handelt sich um ein ausführbares und rede-zu-fertiges Softwarepaket, das Standalone ausführen kann. Es enthält alle Abhängigkeiten, einschließlich Anwendungsbibliotheken, Systembibliotheken, Code, wesentliche Standardeinstellungen usw. erforderlich, um eine Anwendung in einer Kubernetes -Umgebung oder einem Betriebssystem auszuführen. Jeder Knoten im Container verwendet das Containerbild, um Anwendungen und Schoten darauf auszuführen.
Im Kubernetes -Cluster ist das Kubectl -Agent für das Ausführen von Containerbildern auf jedem Knoten verantwortlich. Es zieht das Bild auf jedem im Cluster vorhandenen Knoten. Es ist auch verantwortlich, alles zu melden, was wiederum der Central Kubernetes -API passiert. Wenn das Containerbild bereits auf dem Clusterknoten vorhanden ist, weist Kubectl den Container an, das Bild zur Laufzeit zu ziehen.
Was ist der ImagePullbackoff -Fehler?
Es gibt einige Situationen, in denen Kubernetes Probleme beim Abziehen des Containerbildes aus der Registrierung des Containers erleben kann. Wenn diese Probleme zu einem Fehler führen, geben die Pods den ImagePullbackoff -Status ein. Wenn eine neue Bereitstellung erstellt oder eine vorhandene Bereitstellung im Kubernetes -Cluster aktualisiert wird, muss das Containerbild gezogen werden. Kubectl zieht das Bild auf jedem Arbeiterknoten im Cluster, der mit der Planungsanforderung entspricht. Wenn Kubectl das Bild nicht abzieht.
Mit anderen Worten, der Abschnitt "ImagePull" des ImagePullbackoff -Fehlers bezieht sich auf die Unfähigkeit von Kubernetes, das Bild des Containers aus einem öffentlichen oder privaten Containerregister zu ziehen. Der Abschnitt "Backoff" bezieht sich auf das kontinuierlich erhöhte Backoff -Verzögerungsabschnitt, das das Bild abzieht. Die Backoff -Verzögerung nimmt mit jedem Versuch zu, bis die Backoff -Grenze 5 Minuten erreicht. Der Haupt- oder offensichtliche Grund für den ImagePullbackoff -Fehler ist, dass Kubernetes das Containerbild zur Laufzeit nicht abzieht. Es kann jedoch viele Ursachen für dieses Problem geben, einschließlich der folgenden:
So lösen Sie den ImagePullbackoff -Fehler in Kubernetes?
Wenn eine der oben angegebenen Situationen auftritt. Der beste Weg, um diesen Fehler zu beheben, besteht darin, den Kubernetes -Cluster zu beheben. Sie können Fehler beheben, indem Sie den folgenden Anweisungen folgen:
Schritt 1: Erstellen Sie einen Pod und weisen Sie ihm einen Bildnamen zu
Die Schoten laufen auf den Knoten, die den Bildbehälter ausführen. Jedes Bild hat einen bestimmten Namen und wenn Sie sich auf einen Bildnamen beziehen, der nicht vorhanden ist oder fälschlicherweise einen falschen Namen eingibt. Hier demonstrieren wir den ImagePullbackoff -Fehler, der aufgrund eines falschen Bildnamens auftritt. Lassen Sie uns also einen Schoten erstellen und ihm einen Unsinnsbildnamen zuweisen. Wir können dies tun, indem wir den folgenden Befehl ausführen:
> kubectl run Demo1 -image = nicht existimage/nicht exist: blaDer Befehl 'kubectl run' erstellt einen Pod namens 'Demo1' und der Bildname '-image = nicht existimage/nicht auszurecherst: bla' zugewiesen.
Schritt 2: Zeigen Sie alle Pods an
Der nächste Schritt besteht darin, alle Pods anzuzeigen, um ihren Status zu überprüfen. Kubectl bietet den Befehl "GET", um die Liste der Pods mit ihren zugehörigen Eigenschaften wie Name, Bereit, Status, Alter usw. zu erhalten. Verwenden Sie den unten angegebenen Befehl, um alle Pods anzuzeigen:
> Kubectl erhalten Sie PodSiehe die Ausgabe im folgenden Screenshot:
Aus der oben angegebenen Ausgabe können Sie sehen, dass es viele Pods gibt und jeder seinen Status hat. Einige befinden sich im "laufenden" Zustand, einige befinden sich im Status "Errimagepull" und einige im Status "ImagePullbackoff".
Schritt 3: Fehlerbehebung bei der Pod
Nachdem wir wissen, dass es im Cluster viele Schoten gibt, die jeweils ihren eigenen Status haben, können wir uns speziell mit dem gewünschten Pod befassen. Dies kann mit Hilfe des hier gegebenen Befehls erfolgen:
> Kubectl beschreiben POD Demo1Das 'Demo1' ist der Pod, den wir zuvor erstellt haben, und der Befehl "Beschreibung" gibt uns eine detaillierte Beschreibung des 'Demo1' Pod. Siehe die unten angegebene Ausgabe:
Wir haben den ImagePullbackoff -Fehler in der Kubernetes -Umgebung untersucht. Wir haben etwas über den Kubernetes -Cluster, das Cluster -Bild erfahren und auch die Gründe für den ImagePullbackoff -Fehler untersucht. Der Haupt- und offensichtliche Grund für den ImagePullbackoff -Fehler ist die Unfähigkeit von Kubernetes, ein Bild des Containers zu ziehen.