Kubernetes 集群所需的端口

Posted

技术标签:

【中文标题】Kubernetes 集群所需的端口【英文标题】:Needed ports for Kubernetes cluster 【发布时间】:2017-01-10 15:09:17 【问题描述】:

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

kubectl - 8080

ui - 80 或 443 或 9090

etcd - 2379、2380

【问题讨论】:

【参考方案1】:

kubernetes 的端口如下:

来自 CoreOS docs。

【讨论】:

CoreOS 文档中提到的端口是否也适用于其他 Kubernetes 实现,例如kops、EKS、GKE?【参考方案2】:

Kubernetes 需求:

主节点:

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

工作节点(minions):

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

【讨论】:

对于编织你需要 6783/6784 tcp&udp 你能给个链接吗?谢谢! kubernetes.io/docs/setup/independent/install-kubeadm/…官方文档 这些官方文档是您获取好列表的最佳位置。 'Used by' 列不在上面,如果你真的想要一个安全的系统而不只是为每个人开放端口,它可能很重要。太糟糕了,这方面的官方文档并不是那么容易找到。 Oracle 说,这些端口:docs.oracle.com/en/operating-systems/olcne/1.1/start/ports.html【参考方案3】:

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

掌握

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

从节点(kubelet、kube-proxy、pods)和用户(kubectl、...)到 API 服务器的客户端连接

节点

10250(默认不安全!)

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

节点还应该能够在用于 Kubernetes pod 的网络结构(法兰绒、编织、印花布……)上的几乎任何端口上接收来自其他节点和主节点的流量

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

【讨论】:

谢谢。那么,不需要暴露 etcd 吗? 是和否:如果 etcd 在与 API 服务器相同的主机上独立运行,它可以在 localhost 上侦听。如果你有一个单独的 etcd 集群(通常是 3 个主机),你应该允许来自运行 API 服务器的主机的流量。在这种情况下,请确保在 etcd 上启用 TLS,因为默认情况下 etcd 不需要任何身份验证。 再次感谢您。那么,节点基本上只需要访问 K2s 主节点吗?即使我使用 Flannel、Calico 或 Weave 也是如此? 编辑,抱歉,“Enter”发表评论。所以澄清一下,如果我有 3 台服务器,它们都在 Internet 上。基本上,我需要打开的唯一端口是 K8s 的 8080? 109.74.199.100 Master >:8080 109.74.199.101 节点1 109.74.199.102 节点2 master 还必须在每个节点上建立与 kubelet 的连接,如我的回答中所述,并且防火墙应该在 Kubernetes 网络上完全禁用(要求可能因您的解决方案而异选择)

以上是关于Kubernetes 集群所需的端口的主要内容,如果未能解决你的问题,请参考以下文章

kubernates 组件(第二集)

了解kubernates对象(第三集)

Kafka集群安装和配置

Kafka集群安装和配置

云原生技术kubernates 基础组件(第六集)

01-Kubernetes 组件介绍