使用 firewalld 打开端口
|
启用 firewalld 可能会导致严重的网络通信问题。 为了确保网络正常运行,必须在运行 RKE2 的系统上禁用 firewalld。 Firewalld 与 Canal,RKE2 的默认网络栈,存在冲突。 在运行 Kubernetes 1.19 及更高版本的系统上,firewalld 也必须被禁用。 如果在运行 Kubernetes 1.18 或更早版本的系统上启用 firewalld,请理解这可能会导致网络问题。Kubernetes 中的 CNI 会动态更新 iptables 和网络规则,而不依赖于任何外部防火墙,例如 firewalld。当 CNI 和外部防火墙发生冲突时,这可能会导致意外行为。 |
某些基于 RHEL 的 Linux 发行版 包括 Oracle Linux, 可能具有默认的防火墙规则,阻止与 Helm 的通信。
例如,AWS 中的一个 Oracle Linux 镜像具有 REJECT 规则,阻止 Helm 与 Tiller 的通信:
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
您可以使用以下命令检查默认的防火墙规则:
sudo iptables --list
本节描述如何使用 firewalld 来应用高可用性 Rancher 服务器集群中节点的 防火墙端口规则。
先决条件
安装 v7.x 或更高版本的 firewalld:
yum install firewalld
systemctl start firewalld
systemctl enable firewalld
应用防火墙端口规则
在 Rancher 高可用性安装说明中,Rancher 服务器在三个具有所有三个 Kubernetes 角色的节点上设置:etcd、controlplane 和 worker。如果您的 Rancher 服务器节点具有所有三个角色,请在每个节点上运行以下命令:
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
如果您的 Rancher 服务器节点具有不同的角色,请根据节点的角色使用以下命令:
# 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
在节点上运行 firewall-cmd 命令后,使用以下命令启用防火墙规则:
firewall-cmd --reload
*结果:*防火墙已更新,以便 Helm 可以与 Rancher 服务器节点进行通信。