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

Beispiel für das Hinzufügen und Löschen von Bereichspartitionen in MySQL 5.5

einführen Die RANGE-Partitionierung basiert auf e...

Docker installiert MySQL und löst das chinesische verstümmelte Problem

Inhaltsverzeichnis 1. Ziehen Sie das MySQL-Image ...

MySQL-Trigger: Beispielanalyse zum Erstellen mehrerer Trigger

Dieser Artikel beschreibt anhand eines Beispiels ...

Schritte zur Einführung von PWA in ein Vue-Projekt

Inhaltsverzeichnis 1. Abhängigkeiten installieren...

So fügen Sie Docker ein Zertifikat hinzu

1. Upgrade-Vorgang: sudo apt-get update Probleme ...

Einführung in HTML für Frontend-Entwickler

1 Einführung in HTML 1.1 Erste Erfahrungen mit Co...

So implementieren Sie eine MySQL-Datenbanksicherung in Golang

Hintergrund Navicat ist das beste MySQL-Visualisi...

So verwenden Sie Bind zum Einrichten eines DNS-Servers

DNS (Domain Name Server) ist ein Server, der Domä...

Zabbix benutzerdefinierte Überwachung Nginx Status Implementierungsprozess

Inhaltsverzeichnis Zabbix benutzerdefinierte Über...