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

 更新时间:2025年05月29日 10:55:53   作者:学亮编程手记  
这篇文章主要介绍了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 插件差异

  • Flannel:需开放 UDP 8472(VXLAN)。
  • Calico:需开放 TCP 179(BGP)、IPIP 协议(默认为 协议号 4)。
  • Weave:需开放 TCP 6783-6784 和 UDP 6783-6784。

离线环境特殊要求

  • 确保所有节点的防火墙规则在部署前已配置,避免因网络不通导致安装失败。
  • 如果使用私有镜像仓库,需开放其端口(如 HTTP 8080 或 HTTPS 443)。

安全建议

  • 使用 --zone=trusted 将 Pod 和 Service 网段加入信任区域(替换为实际 CIDR):
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 版本调整端口。

总结

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

相关文章

  • 详解k8s ConfigMap 中 subPath 字段和 items 字段

    详解k8s ConfigMap 中 subPath 字段和 items

    volumeMounts.subPath 属性可用于指定所引用的卷内的子路径,而不是其根路径,这篇文章主要介绍了详解k8s ConfigMap 中 subPath 字段和 items 字段,需要的朋友可以参考下
    2023-03-03
  • k8s 中的 service 如何找到绑定的 Pod 及实现 Pod 负载均衡的方法

    k8s 中的 service 如何找到绑定的 Pod 及实现 

    service 是一组具有相同 label pod 集合的抽象,集群内外的各个服务可以通过 service 进行互相通信,这篇文章主要介绍了k8s 中的 service 如何找到绑定的 Pod 以及如何实现 Pod 负载均衡,需要的朋友可以参考下
    2022-10-10
  • Rainbond调用Vue React项目的后端接口

    Rainbond调用Vue React项目的后端接口

    这篇文章主要为大家介绍了Rainbond调用Vue React项目的后端接口问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • k8s设置非强一致反亲和性示例

    k8s设置非强一致反亲和性示例

    这篇文章主要为大家介绍了k8s设置非强一致反亲和性示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • K8S之StatefulSet有状态服务详解

    K8S之StatefulSet有状态服务详解

    本文主要介绍了K8S之StatefulSet有状态服务详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Rainbond使用Dockerfile构建便捷应用运行流程

    Rainbond使用Dockerfile构建便捷应用运行流程

    这篇文章主要为大家介绍了Rainbond使用Dockerfile构建便捷应用运行流程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • Kubernetes Ingress实现细粒度IP访问控制

    Kubernetes Ingress实现细粒度IP访问控制

    这篇文章主要为大家介绍了Kubernetes Ingress实现细粒度IP访问控制,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • K8s实战教程之容器和 Pods资源分配问题

    K8s实战教程之容器和 Pods资源分配问题

    这篇文章主要介绍了K8s实战教程之容器和 Pods资源分配,本篇文章通过配置集群中运行的容器的 CPU 请求和限制,你可以有效利用集群上可用的 CPU 资源,通过将 Pod CPU 请求保持在较低水平,可以使 Pod 更有机会被调度,需要的朋友可以参考下
    2022-07-07
  • 二进制方式安装 Kubernetes1.18.3版本实现脚本

    二进制方式安装 Kubernetes1.18.3版本实现脚本

    这篇文章主要为大家介绍了二进制方式安装Kubernetes1.18.3版本实现脚本,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • 从小饭馆客流量变大论云原生负载均衡

    从小饭馆客流量变大论云原生负载均衡

    这篇文章主要为大家介绍了从小饭馆客流量变大来讨论云原生负载均衡,为大家做出更生动易懂的云原生解释说明有需要的朋友可以借鉴参考下
    2022-03-03

最新评论