k8s
因为涉及到的组件太多了,所以端口有很多,这里整理了日常所接触的接口,后续有新的再更新。
- 如果是通过公网
IP
进行安装的时候需要根据实际情况有选择的进行放开;一般只有云厂商会提供公网 IP 访问,自建的话不建议k8s
集群通过公网 IP 进行通信,除非做了网络安全配置和管理;大多数情况下,k8s
是通过内网IP
进行通信的。 - 如果是使用的内网环境进行部署,可以设置防火墙允许内网网段访问,不做限制;比如, 在
firewalld
中,规则是应用到区域(zone
)的,可以将想要完全放开的网段添加到一个区域中。
【注】初次安装 k8s 所需端口,仅仅是针对于刚开始安装 k8s,主要是先让集群跑起来,并没有太多要求;如果需要其他组件时,则根据需要有选择的暴露端口;比如安装 Calico
(CNI
网络插件) 则需要 179
、4789
、9099
端口。
类型 | 端口 | 描述 | 使用者 | 初次安装 k8s 所需端口 |
---|---|---|---|---|
TCP | 22 | SSH 连接端口 | ||
TCP/UDP | 53 | 集群 DNS 服务 | 需要 | |
TCP | 179 | CNI网络插件 calico | ||
TCP | 2375 | 主机驱动与 Docker 守护进程通信的 TLS 端口,容器运行时可以选择使用不同的端口,默认情况下 Docker 使用 2375 和 2376。 | ||
TCP | 2376 | 主机驱动与 Docker 守护进程通信的 TLS 端口,容器运行时可以选择使用不同的端口,默认情况下 Docker 使用 2375 和 2376。 | ||
TCP | 2379 | etcd 客户端请求(供客户端访问)。 | 控制面:kube-apiserver, etcd | 需要 |
TCP | 2380 | etcd 节点通信,用于 etcd 集群中的成员之间进行通信。 | 控制面:kube-apiserver, etcd | 需要 |
UDP | 8472 | Canal/Flannel VXLAN overlay 网络 | ||
UDP | 4789 | Flannel VXLAN overlay 网络、Calico 使用 VXLAN 封装来进行 Overlay 网络通信,该端口用于汇聚 VXLAN 流量。 | ||
TCP | 9099 | Canal/Flannel 健康检查、Calico 控制面板端口 | ||
TCP | 9796 | 集群监控拉取节点指标的默认端口(仅需要内网可达) | ||
TCP | 6783 | Weave 端口 | ||
UDP | 6783,6784 | Weave UDP 端口 | ||
TCP/UDP | 30000-32767 | NodePort 端口范围,NodePort 是 Kubernetes Service 类型之一,它将某个 Service 暴露在 Node 的固定端口上。 | 所有 | 需要 |
TCP | 6443 | k8s kube-apiserver, 用于与 API Server 进行通信 | 所有 | 需要 |
TCP | 9443 | Rancher Webhooks | ||
TCP | 80 | Rancher 节点 | ||
TCP | 443 | Rancher 节点 | ||
TCP | 10250 | kubelet API;用于与 Kubelet 进行通信。 | 控制面:自身、工作节点:自身 | 需要 |
TCP | 10251 | kube-schedule,用于与 Scheduler 进行通信。 | 控制面:自身 | 需要 |
TCP | 10252 | kube-control,用于与 Controller Manager 进行通信 | 需要 | |
TCP | 10254 | Ingress Controller 健康检查 | ||
TCP | 10255 | kubelet API(只读) | 需要 | |
TCP | 10256 | kube-proxy | ||
TCP | 10257 | kube-controller-manager | 控制面:自身 | |
TCP | 10259 | kube-schedule,用于与 Scheduler 进行通信。 | 控制面:自身 | |
TCP | 8080 | k8s kube-apiserver,HTTP 非安全端口,一般都是用 6443 |