Beheben Sie das Problem, dass die Docker-Installation abgeschlossen und gemeldet wird: bridge-nf-call-iptables ist deaktiviert

Beheben Sie das Problem, dass die Docker-Installation abgeschlossen und gemeldet wird: bridge-nf-call-iptables ist deaktiviert

Nachdem die Docker-Installation auf der CentOS-Maschine abgeschlossen ist, geben Sie den Befehl „Docker Info“ ein. Daraufhin werden die folgenden Warninformationen gemeldet:

1) Die Warnmeldung lautet:

WARNUNG: bridge-nf-call-iptables ist deaktiviert

WARNUNG: bridge-nf-call-ip6tables ist deaktiviert

2) Lösung:

Ändern Sie die Systemdatei, um den Maschinenbrückenmodus zu aktivieren

Stellen Sie die Maschine so ein, dass sie beim Start die folgenden beiden Befehle ausführt

Bearbeiten Sie vim /etc/rc.d/rc.local und fügen Sie die folgenden beiden Befehle hinzu

echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables

echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables

CentOS 7 muss die Ausführungsberechtigungen erhöhen:

chmod +x /etc/rc,d/rc.local

3) Starten Sie das System neu

Zusatzwissen: Mehrere Möglichkeiten zum Neustarten von Kubernetes Pod

Vorwort

Wenn wir Docker verwenden, können wir den Container mit docker restart {container_id} neu starten, aber in Kubernetes gibt es keinen Neustartbefehl (kein kubectl restart {podname}). Manchmal wird unser Pod aufgrund eines Fehlers unerwartet beendet, sodass wir den Pod neu starten müssen, aber es gibt keine gute Möglichkeit, insbesondere ohne eine YAML-Datei, daher habe ich die folgenden Möglichkeiten zum Neustarten des Pods zusammengefasst.

Methode 1

Es sind die neuesten YAML-Dateien vorhanden.

Wenn eine YAML-Datei vorhanden ist, können Sie direkt „kubectl replace --force -f xxxx.yaml“ verwenden, um den Ersatz des API-Objekts des Pods zu erzwingen und so den Zweck des Neustarts zu erreichen. wie folgt:

[root@test-129-70 viua]# kubectl replace --force -f viua.yml
Namespace „viua“ gelöscht
Dienst "viua-app-cms" gelöscht
deployment.apps "viua-app-cms" gelöscht
Dienst "viua-app-command" gelöscht
deployment.apps "viua-app-command" gelöscht
Dienst "viua-show-service" gelöscht
deployment.apps "viua-show-service" gelöscht
Dienst "viua-skills-service" gelöscht
deployment.apps "viua-skills-service" gelöscht
Namespace/Viua ersetzt
secret/xa-harbour-ca ersetzt
service/viua-app-cms ersetzt
deployment.apps/viua-app-cms ersetzt
service/viua-app-command ersetzt
deployment.apps/viua-app-command ersetzt
service/viua-show-service ersetzt
deployment.apps/viua-show-service ersetzt
service/viua-skills-service ersetzt
deployment.apps/viua-skills-service ersetzt

Methode 2

Es gibt keine YAML-Datei, sondern es wird ein Deployment-Objekt verwendet.

kubectl scale deploy viua-app-cms --replicas=0 -n viua

kubectl scale deploy {Bereitstellungsobjekt} --replicas=0 -n {namespace}

[root@test-129-70 pvd]# kubectl get deploy -n viua
NAME BEREIT AKTUELL VERFÜGBAR ALTER
viua-app-cms 1/1 1 1 48m
viua-app-Befehl 1/1 1 1 48 m
viua-show-service 1/1 1 1 48m
viua-kompetenz-service 1/1 1 1 48m
[root@test-129-70 pvd]# kubectl scale deploy viua-app-cms --replicas=0 -n viua
deployment.apps/viua-app-cms skaliert
[root@test-129-70 pvd]# kubectl get deploy -n viua
NAME BEREIT AKTUELL VERFÜGBAR ALTER
viua-app-cms 0/0 0 0 49m
viua-app-Befehl 1/1 1 1 49 m
viua-show-service 1/1 1 1 49m
viua-kompetenz-service 1/1 1 1 49m
[root@test-129-70 pvd]# kubectl get po -n viua
NAME BEREIT STATUS NEUSTART ALTER
viua-app-command-95f7b6f7f-rb7mh 1/1 Wird ausgeführt 0 49 m
viua-show-service-85565b9dcf-ss8qp 1/1 Läuft 0 49m
viua-skills-service-65447f9b94-fhqhr 1/1 Laufen 0 49m

Denn das Deployment-Objekt steuert nicht direkt das Pod-Objekt, sondern das ReplicaSet-Objekt, und das ReplicaSet-Objekt besteht aus der Definition der Anzahl der Replikate und der Pod-Vorlage. Dieser Befehl skaliert also die Anzahl der Replikationssätze auf 0 und dann wieder zurück auf 1. Anschließend wird der Pod neu gestartet.

Methode 3

Es gibt auch keine YAML-Datei, sondern es wird ein Deployment-Objekt verwendet.

Verwenden Sie den Befehl kubectl delete pod {podname} -n {namespace}

Diese Methode ist sehr einfach und grob. Löschen Sie einfach den Pod. Da Kubernetes eine deklarative API ist, stimmt das Pod-API-Objekt nach dem Löschen nicht mit dem erwarteten überein. Daher wird der Pod automatisch neu erstellt, um die Übereinstimmung mit dem erwarteten Objekt aufrechtzuerhalten. Wenn jedoch viele Pod-Objekte von ReplicaSet verwaltet werden, ist es mühsam, sie einzeln manuell zu löschen. Daher können Sie den Befehl kubectl delete replicaset {rs_name} -n {namespace} verwenden, um ReplicaSet zu löschen.

Methode 4

Es gibt keine YAML-Datei, das Pod-Objekt wird direkt verwendet.

Verwenden Sie den Befehl kubectl get pod {podname} -n {namespace} -o yaml | kubectl replace --force -f -

Da in diesem Fall keine YAML-Datei vorhanden ist und das Pod-Objekt gestartet wird, kann es nicht direkt gelöscht oder auf 0 skaliert werden, aber es kann mit dem obigen Befehl neu gestartet werden. Mit diesem Befehl können Sie die YAML-Deklaration des aktuell ausgeführten Pods abrufen und die Ausgabe zur Standardeingabe des Befehls „kubectl replace“ umleiten, um den Neustartzweck zu erreichen.

Zusammenfassen

Wir können Objekte auf viele Arten neu starten. Im Allgemeinen ist die am meisten empfohlene Methode die Verwendung von kubectl get pod {podname} -n {namespace} -o yaml | kubectl replace --force -f -, da dies auf viele Objekte anwendbar ist. Darüber hinaus behebt ein Neustart des Pods den Fehler im laufenden Programm nicht. Wenn Sie die unerwartete Beendigung des Programms beheben möchten, müssen Sie den Fehler am Ende dennoch beheben.

Der obige Artikel zur Lösung des Problems der Docker-Installationsabschlussmeldung: „bridge-nf-call-iptables ist deaktiviert“ ist der gesamte Inhalt, den der Herausgeber mit Ihnen geteilt hat. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung zur Installation von Redis im Docker und zum Starten als Konfigurationsdatei
  • Docker-Installations-Tutorial zu RocketMQ (am ausführlichsten)
  • Detaillierte Erläuterung zum Bereitstellen und Installieren der chinesischen Version von Redash in Docker
  • Detaillierte Schritte zur Installation von Docker in 5 Minuten

<<:  Wie erreicht MySQL eine Master-Slave-Synchronisierung?

>>:  Detaillierte Schritte zum Debuggen von VUE-Projekten in IDEA

Artikel empfehlen

So erstellen Sie eine MySQL-Master-Slave-Datenbank mit Docker unter MacOS

1. Ziehen Sie das MySQL-Image Holen Sie sich das ...

Der Grund, warum MySQL den B+-Baum als zugrunde liegende Datenstruktur verwendet

Wir alle wissen, dass die zugrunde liegende Daten...

js zur Realisierung der automatischen Sperrbildschirmfunktion

1. Anwendungsszenarien Es gibt eine solche Anford...

Sortieren von MySQL-Aggregatfunktionen

Inhaltsverzeichnis MySQL-Ergebnissortierung - Agg...

MySQL max_allowed_packet-Einstellung

max_allowed_packet ist ein Parameter in MySQL, de...

Löschen von Dateien mit Leerzeichen in Linux (keine Verzeichnisse)

In unserer täglichen Arbeit kommen wir oft mit Da...

Docker benennt den Imagenamen und die TAG-Operation um

Bei der Verwendung von Docker-Images können Image...

Zusammenfassung der Datenspeicherstruktur des Nginx-HTTP-Moduls

Ab diesem Abschnitt erklären wir das Implementier...

So verbinden Sie Navicat mit der Docker-Datenbank auf dem Server

Starten Sie den MySQL-Container in Docekr Verwend...

Beispiel für die Implementierung eines globalen Wasserzeichens in Vue

Inhaltsverzeichnis 1. Erstellen Sie eine Wasserze...

Analyse der Verschachtelungsregeln von XHTML-Tags

In der XHTML-Sprache wissen wir alle, dass das ul...