云其它

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > 云其它 > K8S集群需要开放的端口说明

K8S集群需要开放的端口说明介绍

作者:学亮编程手记

这篇文章主要介绍了K8S集群需要开放的端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

在离线环境中部署 Kubernetes (K8S) 集群时,需要确保各节点(Master 和 Worker)的防火墙(如 firewalld)开放必要的端口,以确保组件间的正常通信。

以下是需要开放的端口分类说明:

一、Master 节点需开放的端口

端口范围协议用途
6443TCPKubernetes API Server(所有节点和外部访问的核心端口)
2379-2380TCPetcd 客户端和服务端通信(若使用外部 etcd 需额外配置)
10250TCPKubelet API(Master 与 Worker 间的指标、日志、执行命令通信)
10259TCPkube-scheduler 的 metrics 和健康检查(≥1.23 版本)
10257TCPkube-controller-manager 的 metrics 和健康检查(≥1.23 版本)
8472UDPFlannel CNI 的 VXLAN overlay 网络(根据 CNI 插件调整,如 Calico 不同)
30000-32767TCPNodePort 服务的外部访问端口范围(可自定义)

二、Worker 节点需开放的端口

端口范围协议用途
10250TCPKubelet API(Master 访问 Worker 的指标、日志等)
30000-32767TCPNodePort 服务的外部访问端口
8472UDPFlannel CNI 的 VXLAN 通信(其他 CNI 如 Calico 可能用 IPIP 或 TCP)
9796TCP部分监控工具(如 Prometheus)的指标采集端口(非必需)

三、所有节点需开放的端口

端口协议用途
22TCPSSH 管理访问(建议限制来源 IP)
6783-6784TCPWeave CNI 的通信端口(若使用 Weave)
53TCP/UDPCoreDNS 或 kube-dns 的 DNS 解析

四、防火墙配置示例(firewalld)

1. Master 节点命令

sudo firewall-cmd --permanent --add-port=6443/tcp
sudo firewall-cmd --permanent --add-port=2379-2380/tcp
sudo firewall-cmd --permanent --add-port=10250/tcp
sudo firewall-cmd --permanent --add-port=10257/tcp
sudo firewall-cmd --permanent --add-port=10259/tcp
sudo firewall-cmd --permanent --add-port=8472/udp
sudo firewall-cmd --permanent --add-port=30000-32767/tcp
sudo firewall-cmd --reload

2. Worker 节点命令

sudo firewall-cmd --permanent --add-port=10250/tcp
sudo firewall-cmd --permanent --add-port=30000-32767/tcp
sudo firewall-cmd --permanent --add-port=8472/udp
sudo firewall-cmd --reload

五、关键注意事项

CNI 插件差异

离线环境特殊要求

安全建议

sudo firewall-cmd --permanent --zone=trusted --add-source=10.244.0.0/16  # Flannel 默认网段
sudo firewall-cmd --permanent --zone=trusted --add-source=10.96.0.0/12   # Service 网段

验证端口

sudo firewall-cmd --list-all  # 查看已开放端口

通过以上配置,可确保离线 K8S 集群各组件间的通信正常。根据实际使用的 CNI 插件和 Kubernetes 版本调整端口。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文