端口和协议
在网络边界严格的环境中运行 Kubernetes 时,例如带有物理网络防火墙的本地数据中心或公共云中的虚拟网络,了解 Kubernetes 组件使用的端口和协议很有用。
控制平面
协议 | 方向 | 端口范围 | 目的 | 使用者 |
---|---|---|---|---|
TCP | 入站 | 6443 | Kubernetes API 服务器 | 所有 |
TCP | 入站 | 2379-2380 | etcd 服务器客户端 API | kube-apiserver, etcd |
TCP | 入站 | 10250 | Kubelet API | 自身, 控制平面 |
TCP | 入站 | 10259 | kube-scheduler | 自身 |
TCP | 入站 | 10257 | kube-controller-manager | 自身 |
尽管 etcd 端口包含在控制平面部分中,你也可以在外部或自定义端口上托管你自己的 etcd 集群。
工作节点
协议 | 方向 | 端口范围 | 目的 | 使用者 |
---|---|---|---|---|
TCP | 入站 | 10250 | Kubelet API | 自身, 控制平面 |
TCP | 入站 | 10256 | kube-proxy | 自身, 负载均衡器 |
TCP | 入站 | 30000-32767 | NodePort Service† | 所有 |
† NodePort Service 的默认端口范围。
所有默认端口号都可以被覆盖。使用自定义端口时,需要开放这些端口而不是此处提及的默认端口。
一个常见的例子是 API 服务器端口有时会切换到 443。或者,保持默认端口不变,将 API 服务器置于负载均衡器后,负载均衡器监听 443 并将请求路由到默认端口上的 API 服务器。
最后修改于 2024 年 3 月 25 日 下午 11:47 (PST): 在 ports-and-protocols.md 中添加 kube-proxy healthz 端口 (d917d5020c)