Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar.

Öffnen von Ports mit firewalld

Das Aktivieren von firewalld kann ernsthafte Probleme bei der Netzwerkkommunikation verursachen.

Für eine ordnungsgemäße Netzwerkfunktion muss firewalld auf Systemen, die RKE2 ausführen, deaktiviert werden. Firewalld steht im Konflikt mit Canal, dem standardmäßigen Netzwerk-Stack von RKE2.

Firewalld muss auch auf Systemen, die Kubernetes 1.19 und höher ausführen, deaktiviert werden.

Wenn Sie firewalld auf Systemen aktivieren, die Kubernetes 1.18 oder früher ausführen, sollten Sie verstehen, dass dies zu Netzwerkproblemen führen kann. CNIs in Kubernetes aktualisieren iptables und Netzwerkregeln dynamisch unabhängig von externen Firewalls wie firewalld. Dies kann unerwartetes Verhalten verursachen, wenn die CNI und die externe Firewall in Konflikt stehen.

Einige Linux-Distributionen die von RHEL abgeleitet sind,, einschließlich Oracle Linux, haben möglicherweise standardmäßig Firewall-Regeln, die die Kommunikation mit Helm blockieren.

Zum Beispiel hat ein Oracle Linux-Image in AWS REJECT-Regeln, die verhindern, dass Helm mit Tiller kommuniziert:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Sie können die standardmäßigen Firewall-Regeln mit diesem Befehl überprüfen:

sudo iptables --list

Dieser Abschnitt beschreibt, wie firewalld verwendet wird, um die Firewall-Port-Regeln für Knoten in einem hochverfügbaren Rancher-Server-Cluster anzuwenden.

Voraussetzung

Installieren Sie v7.x oder höher von firewalld:

yum install firewalld
systemctl start firewalld
systemctl enable firewalld

Anwenden von Firewall-Portregeln

In den Installationsanweisungen für die hochverfügbare Rancher-Installation wird der Rancher-Server auf drei Knoten eingerichtet, die alle drei Kubernetes-Rollen haben: etcd, controlplane und worker. Wenn Ihre Rancher-Server-Knoten alle drei Rollen haben, führen Sie die folgenden Befehle auf jedem Knoten aus:

firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=2376/tcp
firewall-cmd --permanent --add-port=2379/tcp
firewall-cmd --permanent --add-port=2380/tcp
firewall-cmd --permanent --add-port=6443/tcp
firewall-cmd --permanent --add-port=8472/udp
firewall-cmd --permanent --add-port=9099/tcp
firewall-cmd --permanent --add-port=10250/tcp
firewall-cmd --permanent --add-port=10254/tcp
firewall-cmd --permanent --add-port=30000-32767/tcp
firewall-cmd --permanent --add-port=30000-32767/udp

Wenn Ihre Rancher-Server-Knoten separate Rollen haben, verwenden Sie die folgenden Befehle basierend auf der Rolle des Knotens:

# For etcd nodes, run the following commands:
firewall-cmd --permanent --add-port=2376/tcp
firewall-cmd --permanent --add-port=2379/tcp
firewall-cmd --permanent --add-port=2380/tcp
firewall-cmd --permanent --add-port=8472/udp
firewall-cmd --permanent --add-port=9099/tcp
firewall-cmd --permanent --add-port=10250/tcp

# For control plane nodes, run the following commands:
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=2376/tcp
firewall-cmd --permanent --add-port=6443/tcp
firewall-cmd --permanent --add-port=8472/udp
firewall-cmd --permanent --add-port=9099/tcp
firewall-cmd --permanent --add-port=10250/tcp
firewall-cmd --permanent --add-port=10254/tcp
firewall-cmd --permanent --add-port=30000-32767/tcp
firewall-cmd --permanent --add-port=30000-32767/udp

# For worker nodes, run the following commands:
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=2376/tcp
firewall-cmd --permanent --add-port=8472/udp
firewall-cmd --permanent --add-port=9099/tcp
firewall-cmd --permanent --add-port=10250/tcp
firewall-cmd --permanent --add-port=10254/tcp
firewall-cmd --permanent --add-port=30000-32767/tcp
firewall-cmd --permanent --add-port=30000-32767/udp

Nachdem die firewall-cmd Befehle auf einem Knoten ausgeführt wurden, verwenden Sie den folgenden Befehl, um die Firewall-Regeln zu aktivieren:

firewall-cmd --reload

Ergebnis: Die Firewall wird aktualisiert, damit Helm mit den Rancher-Server-Knoten kommunizieren kann.