零基础搭建k8s集群(三)- 提前放行相关的网络端口

关联文章列表

前言

本文讲解网络端口的放行,如果您是本地测试并且完全关闭了网络防火墙的,可以直接跳过本文介绍!

端口介绍

💡 防火墙需要放行哪些端口,通常需要开启以下端口:

  • TCP端口:6443、2379-2380、10250、10251、10252、10255、30000-32767
  • UDP端口:8285
端口协议说明
6443TCP用于 Kubernetes API Server 的访问
2379-2380TCP用于 etcd 数据库的通信
10250TCP用于 kubeletAPI Server 通信
10251TCP用于 kube-scheduler 的选举通信
10252TCP用于 kube-controller-manager 的选举通信
10255TCP用于 kubelet 的只读 API Server 通信
30000-32767TCP用于 NodePort 类型的 Service 的访问
8285UDP用于 kube-proxy 的 UDP 数据包转发
8472UDPflannel 网络使用的 VxLAN 端口

需要注意的是,这些端口只是 Kubernetes 集群中通信和交互的常用端口,实际使用时可能还需要根据具体情况进行调整和配置。同时,还需要根据集群环境和网络环境等因素,合理地配置防火墙规则,保证集群的安全性和稳定性。

添加防火墙规则

# 为 IPv4 添加规则放行 VRRP 通信(IP 协议号 112)
sudo iptables -I INPUT -s 10.12.3.0/24 -i eth0 -p 112 -j ACCEPT
# 
为 IPv6 添加规则(如果需要)
sudo ip6tables -I INPUT -s 10.12.3.0/24 -i eth0 -p 112 -j ACCEPT

# 如果您使用 Ingress 和 ClusterIP 类型的 Service 对外提供服务,而不是 NodePort 类型的服务,
# 那么您不需要放行 NodePort 范围内的端口(30000-32767)
# 所以下面的规则按照实际需要看看是否需要调整
sudo iptables -A INPUT -s 10.12.3.0/24 -p tcp -i eth0 -m multiport --dports 6443,2379:2380,10250,10251,10252,10255,30000:32767 -j ACCEPT
sudo iptables -A INPUT -s 192.168.3.0/24 -p tcp -i eth0 -m multiport --dports 6443,2379:2380,10250,10251,10252,10255,30000:32767 -j ACCEPT
sudo iptables -A INPUT -s 10.12.3.0/24 -p udp -i eth0 -m udp --dport 8285 -j ACCEPT
sudo iptables -A INPUT -s 192.168.3.0/24 -p udp -i eth0 -m udp --dport 8285 -j ACCEPT
sudo iptables -I INPUT -s 10.12.3.0/24 -p udp -i eth0 -m udp --dport 8472 -j ACCEPT
sudo iptables -I INPUT -s 192.168.3.0/24 -p udp -i eth0 -m udp --dport 8472 -j ACCEPT

# 保存 iptables 配置 centos 7 可用
sudo service iptables save
sudo service ip6tables save
# 对于 CentOS 8,您需要安装 iptables-services 软件包才能使用 iptables save 命令
sudo yum install -y iptables-services
sudo systemctl enable --now iptables
sudo systemctl enable --now ip6tables
sudo iptables-save > /etc/sysconfig/iptables
sudo ip6tables-save > /etc/sysconfig/ip6tables

# 将规则保存到 /etc/sysconfig/iptables文件中 
sudo iptables-save | sudo tee /etc/sysconfig/iptables
# 重启iptables服务使其生效
sudo systemctl restart iptables
# 需要注意的是,在添加规则之前,可以使用以下命令备份当前的iptables规则
sudo iptables-save > /etc/sysconfig/iptables.bak
# 如果需要恢复之前备份的 iptables 规则,可以使用以下命令
sudo iptables-restore < /etc/sysconfig/iptables.bak

# 【注意】 这条规则在集群搭建网络组件后执行
iptables -A RH-Firewall-1-INPUT -s 10.244.0.0/16 -m state --state NEW -j ACCEPT
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不认输的猴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值