关于网络:Kubernetes集群所需的端口

Needed ports for Kubernetes cluster

假设我想在具有1个主节点和2个节点的裸机服务器上创建k8s集群。 我必须在防火墙中打开哪些端口,以便主服务器和节点可以通过Internet进行通信? (我知道我可以使用VPN,但是我只想知道我需要哪些端口)。 我想我至少需要以下端口。 我需要更多吗? 如果我使用Flannel或Calico怎么样? 我想创建所有可能的k8s服务和所需端口的完整列表。 谢谢。

kubectl-8080

ui-80或443或9090

蚀刻-2379,2380


kubernetes的端口如下:

enter image description here

来自CoreOS文档。


Kubernestes需要:

主节点:

1
2
3
4
5
6
TCP     6443*       Kubernetes API Server
TCP     2379-2380   etcd server client API
TCP     10250       Kubelet API
TCP     10251       kube-scheduler
TCP     10252       kube-controller-manager
TCP     10255       Read-Only Kubelet API

工作节点(小兵):

1
2
3
TCP     10250       Kubelet API
TCP     10255       Read-Only Kubelet API
TCP     30000-32767 NodePort Services


假设API服务器,etcd,调度程序和控制器管理器在同一台机器上运行,那么在没有VPN的情况下您需要公开打开的端口是:

  • 6443(如果禁用了TLS,则为8080)

    从节点(kubelet,kube-proxy,pod)和用户(kubectl等)到API服务器的客户端连接

节点数

  • 10250(默认情况下不安全!)

    Kubelet端口,接受来自API服务器(主服务器)的连接。

此外,节点还应该能够在用于Kubernetes Pod(绒布,编织,印花布等)的网络结构上的几乎任何端口上,从其他节点和主服务器接收流量。

如果使用NodePort服务或Ingress资源公开应用程序,则相应的端口也应在节点上打开。