Networking Kubernetes群集所需的端口

Networking Kubernetes群集所需的端口,networking,kubernetes,firewall,Networking,Kubernetes,Firewall,假设我想在裸机服务器上创建一个k8s集群,有1个主节点和2个节点。我必须在防火墙中打开哪些端口,以便主机和节点可以通过Internet进行通信?(我知道我可以使用VPN,但我只想知道我需要哪些端口)。我想我至少需要以下端口。我还需要更多吗?如果我用法兰绒或印花布呢?我想创建一个全面的列表,列出所有可能的k8s服务和所需的端口。多谢各位 kubectl-8080 ui-80或443或9090 etcd-23792380如果API服务器、etcd、计划程序和控制器管理器在同一台机器上运行,则在没有V

假设我想在裸机服务器上创建一个k8s集群,有1个主节点和2个节点。我必须在防火墙中打开哪些端口,以便主机和节点可以通过Internet进行通信?(我知道我可以使用VPN,但我只想知道我需要哪些端口)。我想我至少需要以下端口。我还需要更多吗?如果我用法兰绒或印花布呢?我想创建一个全面的列表,列出所有可能的k8s服务和所需的端口。多谢各位

kubectl-8080

ui-80或443或9090


etcd-23792380

如果API服务器、etcd、计划程序和控制器管理器在同一台机器上运行,则在没有VPN的情况下,需要公开打开的端口有:

主人
  • 6443(如果TLS被禁用,则为8080)

    从节点(kubelet、kube代理、pods)和用户(kubectl,…)到API服务器的客户端连接

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

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

此外,节点应该能够在Kubernetes吊舱(法兰绒、编织、印花布等)所用的网络结构上的几乎任何端口上接收来自其他节点和主节点的流量


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

kubernetes的端口如下所示:

来自CoreOS。

Kubernestes需要:

主节点:

工作节点(仆从):


非常感谢。所以,您不需要公开etcd?是和否:如果etcd在与API服务器相同的主机上独立运行,它可以在本地主机上侦听。如果您有一个单独的etcd集群(通常为3台主机),则应允许来自运行API服务器的主机的流量。在这种情况下,请确保在etcd上启用TLS,因为etcd默认不需要任何身份验证。再次感谢。那么,节点基本上只需要访问K2s主节点?这是真的,即使我使用法兰绒、印花布或编织?编辑,抱歉,“输入”张贴评论。为了澄清,如果我有3台服务器,它们都在互联网上。基本上,我需要打开的唯一端口是K8s的8080?109.74.199.100主机>:8080 109.74.199.101节点1 109.74.199.102节点2主机还必须在每个节点上建立与kubelet的连接,如我在回答中所述,Kubernetes网络上的防火墙应该完全禁用(要求可能因您选择的解决方案而异)对于weave,您需要6783/6784 tcp和UDPCA,请提供源代码的链接?非常感谢。官方文件这些官方文件是你获取好名单的最佳场所。上面没有“Used by”列,如果您真的想拥有一个安全的系统,而不仅仅是为每个人开放端口,那么这一点可能很重要。遗憾的是,关于这一点的官方文档没有那么直接地找到。CoreOS文档中提到的端口是否也适用于其他Kubernetes实现,例如kops、EKS、GKE?
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
TCP     10250       Kubelet API
TCP     10255       Read-Only Kubelet API
TCP     30000-32767 NodePort Services