本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

端口要求

为了正常运行,Rancher 需要在 Rancher 节点和下游 Kubernetes 集群节点上开放多个端口。

Rancher 节点

下表列出了需要对运行 Rancher 服务器的节点开放的端口。

端口要求根据 Rancher 服务器架构而有所不同。

Rancher 可以安装在任何 Kubernetes 集群上。对于在 K3s、RKE 或 RKE2 Kubernetes 集群上安装的 Rancher,请参阅下面的选项卡。对于其他 Kubernetes 发行版,请参阅该发行版的文档以获取集群节点的端口要求。

备注:
  • Rancher 节点可能还需要额外的出站访问权限,以便访问配置的任何外部身份验证提供者(例如 LDAP)。

  • Kubernetes 建议使用 TCP 30000-32767 作为节点端口服务。

  • 对于防火墙,可能需要在集群和 Pod CIDR 内启用流量。

  • Rancher 节点可能还需要对用于存储集群备份(例如 Minio)的外部 S3 位置进行出站访问。

上的 Rancher 服务器节点的端口SUSE® Rancher Prime: K3s

点击展开

K3s 服务器需要所有节点都能访问 6443 端口。

当使用 Flannel VXLAN 时,节点需要能够通过 UDP 端口 8472 访问其他节点。节点不应在任何其他端口上侦听。K3s 使用反向隧道,使得节点与服务器之间建立出站连接,所有 kubelet 流量都通过该隧道传输。但是,如果您不使用 Flannel 并提供自己的自定义 CNI,则 K3s 不需要 8472 端口。

如果您希望使用指标服务器,您需要在每个节点上打开端口 10250。

重要说明:

节点上的 VXLAN 端口不应暴露给外部,因为这会使您的集群网络被任何人访问。在防火墙/安全组后运行您的节点,禁用对 8472 端口的访问。

下表详细列出了入站和出站流量的端口要求:

Table 1. Rancher 服务器节点的入站规则
协议 端口 说明

TCP

80

进行外部 SSL 终止的负载均衡器/代理

当使用外部 SSL 终止时的 Rancher UI/API

TCP

443

<ul><li>服务器节点</li><li>代理节点</li><li>托管/注册的 Kubernetes</li><li>任何需要能够使用 Rancher UI 或 API 的来源</li></ul>

Rancher 代理、Rancher UI/API、kubectl

TCP

6443

K3s 服务器节点

Kubernetes API

UDP

8472

K3s 服务器和代理节点

仅在使用 Flannel VXLAN 时需要。

TCP

10250

K3s 服务器和代理节点

kubelet

Table 2. Rancher 节点的出站规则
协议 端口 目标 说明

TCP

22

使用节点驱动程序创建的节点的任何节点 IP

使用节点驱动程序,通过 SSH 对节点进行配置。

TCP

443

git.rancher.io

Rancher 目录

TCP

2376

使用节点驱动程序创建的节点的任何节点 IP

Docker Machine 使用的 Docker 守护程序 TLS 端口。

TCP

6443

托管/导入的 Kubernetes API

Kubernetes API 服务器

上的 Rancher 服务器节点的端口SUSE® Rancher Prime: RKE2

点击展开

RKE2 服务器需要端口 6443 和 9345 可被集群中的其他节点访问。

当使用 Flannel VXLAN 时,所有节点需要能够通过 UDP 端口 8472 访问其他节点。

如果您希望使用指标服务器,您需要在每个节点上打开端口 10250。

重要说明:

节点上的 VXLAN 端口不应暴露给外部,因为这会使您的集群网络被任何人访问。在防火墙/安全组后运行您的节点,禁用对 8472 端口的访问。

Table 3. RKE2 服务器节点的入站规则
协议 端口 说明

TCP

9345

RKE2 服务器和代理节点

节点注册。所有服务器节点上的端口应对集群中的所有其他节点开放。

TCP

6443

RKE2 代理节点

Kubernetes API

UDP

8472

RKE2 服务器和代理节点

仅在使用 Flannel VXLAN 时需要

TCP

10250

RKE2 服务器和代理节点

kubelet

TCP

2379

RKE2 服务器节点

etcd 客户端端口

TCP

2380

RKE2 服务器节点

etcd 对等端口

TCP

30000-32767

RKE2 服务器和代理节点

NodePort 端口范围。可以使用 TCP 或 UDP。

TCP

5473

Calico-node pod 连接到 typha pod。

在使用Calico进行部署时需要。

HTTP

80

进行外部 SSL 终止的负载均衡器/代理

当使用外部 SSL 终止时的 Rancher UI/API

HTTPS

443

<ul><li>托管/注册的 Kubernetes</li><li>任何需要能够使用 Rancher UI 或 API 的来源</li></ul>

Rancher代理,Rancher UI/API,kubectl。如果您有负载均衡器进行TLS终止,则不需要。

通常,所有出站流量都是允许的。

Docker中Rancher Server的端口

点击展开

以下表格详细列出了Rancher节点的端口要求,包括入站和出站流量:

Table 4. Rancher节点的入站规则
协议 端口 说明

TCP

80

进行外部 SSL 终止的负载均衡器/代理

当使用外部 SSL 终止时的 Rancher UI/API

TCP

443

<ul><li>托管/注册的 Kubernetes</li><li>任何需要能够使用 Rancher UI 或 API 的来源</li></ul>

Rancher 代理、Rancher UI/API、kubectl。

Table 5. Rancher节点的出站规则
协议 端口 说明

TCP

22

使用节点驱动程序创建的节点的任何节点 IP

使用节点驱动程序,通过 SSH 对节点进行配置。

TCP

443

git.rancher.io

Rancher 目录

TCP

2376

从使用节点驱动程序创建的节点的任何节点IP

Docker Machine 使用的 Docker 守护程序 TLS 端口。

TCP

6443

托管/导入的 Kubernetes API

Kubernetes API 服务器

下游 Kubernetes 集群节点。

下游 Kubernetes 集群运行您的应用和服务。本节描述了在下游集群节点上需要开放哪些端口,以便 Rancher 能够与它们通信。

端口要求因下游集群的启动方式而异。下面的每个选项卡列出了不同集群类型所需打开的端口。

以下图表描绘了为每个集群类型打开的端口。

基本端口要求
Figure 1. Rancher管理平面的端口要求

如果安全性不是一个大问题,并且您可以接受打开一些额外的端口,您可以使用 常用端口 中的表格作为您的端口参考,而不是下面的综合表格。

集群的SUSE Virtualization端口

有关 Harvester 端口要求的更多信息,请参阅 SUSE Virtualization 集成概述

使用节点池的 Rancher 启动的 Kubernetes 集群的端口

点击展开

下表描述了为 Rancher 启动的 Kubernetes(其节点由 基础设施提供商 创建)所需的端口要求。

在诸如 Amazon EC2 或 DigitalOcean 等云提供商中创建集群时,Rancher 会自动打开所需的端口。

From / To Rancher Nodes etcd Plane Nodes Control Plane Nodes Worker Plane Nodes External Rancher Load Balancer Internet

Rancher Nodes (1)

22 TCP

git.rancher.io

2376 TCP

etcd Plane Nodes

443 TCP (3)

2379 TCP

443 TCP

2380 TCP

6443 TCP

8472 UDP

9099 TCP (4)

Control Plane Nodes

443 TCP (3)

2379 TCP

443 TCP

2380 TCP

6443 TCP

8472 UDP

10250 TCP

9099 TCP (4)

10254 TCP (4)

Worker Plane Nodes

443 TCP (3)

6443 TCP

443 TCP

8472 UDP

9099 TCP (4)

10254 TCP (4)

Kubernetes API Clients

6443 TCP (5)

Workload Clients or Load Balancer

30000-32767 TCP / UDP
(nodeport)

80 TCP (Ingress)

443 TCP (Ingress)

Notes:

1. Nodes running standalone server or Rancher HA deployment.
2. Required to fetch Rancher chart library.
3. Only without external load balancer in front of Rancher.
4. Local traffic to the node itself (not across nodes).
5. Only if Authorized Cluster Endpoints are activated.

使用自定义节点的 Rancher 启动的 Kubernetes 集群的端口

点击展开

下表描述了使用 自定义节点Rancher 启动的 Kubernetes 的端口要求。

From / To Rancher Nodes etcd Plane Nodes Control Plane Nodes Worker Plane Nodes External Rancher Load Balancer Internet

Rancher Nodes (1)

git.rancher.io

etcd Plane Nodes

443 TCP (3)

2379 TCP

443 TCP

2380 TCP

6443 TCP

8472 UDP

4789 UDP (6)

9099 TCP (4)

Control Plane Nodes

443 TCP (3)

2379 TCP

443 TCP

2380 TCP

6443 TCP

8472 UDP

4789 UDP (6)

10250 TCP

9099 TCP (4)

10254 TCP (4)

Worker Plane Nodes

443 TCP (3)

6443 TCP

443 TCP

8472 UDP

4789 UDP (6)

9099 TCP (4)

10254 TCP (4)

Kubernetes API Clients

6443 TCP (5)

Workload Clients or Load Balancer

30000-32767 TCP / UDP
(nodeport)

80 TCP (Ingress)

443 TCP (Ingress)

Notes:

1. Nodes running standalone server or Rancher HA deployment.
2. Required to fetch Rancher chart library.
3. Only without external load balancer in front of Rancher.
4. Local traffic to the node itself (not across nodes), if you’ve enabled optional features such as Rancher Monitoring.
5. Only if Authorized Cluster Endpoints are activated.
6. Only if using Overlay mode on Windows cluster.

托管 Kubernetes 集群的端口。

点击展开

下表描述了 托管集群 的端口要求。

From / To Rancher Nodes Hosted / Imported Cluster External Rancher Load Balancer Internet

Rancher Nodes (1)

80 TCP

Kubernetes API
Endpoint Port (2)

git.rancher.io

8443 TCP

9443 TCP

Hosted / Imported Cluster

443 TCP (4)(5)

443 TCP (5)

Kubernetes API Clients

Cluster / Provider Specific (6)

Workload Client

Cluster / Provider Specific (7)

Notes:

1. Nodes running standalone server or Rancher HA deployment.
2. Only for hosted clusters.
3. Required to fetch Rancher chart library.
4. Only without external load balancer.
5. From worker nodes.
6. For direct access to the Kubernetes API without Rancher.
7. Usually Ingress backed by infrastructure load balancer and/or nodeport.

注册集群的端口

在 Rancher v2.5 之前,注册集群被称为导入集群。

点击展开

下表描述了 注册集群 的端口要求。

From / To Rancher Nodes Hosted / Imported Cluster External Rancher Load Balancer Internet

Rancher Nodes (1)

80 TCP

Kubernetes API
Endpoint Port (2)

git.rancher.io

8443 TCP

9443 TCP

Hosted / Imported Cluster

443 TCP (4)(5)

443 TCP (5)

Kubernetes API Clients

Cluster / Provider Specific (6)

Workload Client

Cluster / Provider Specific (7)

Notes:

1. Nodes running standalone server or Rancher HA deployment.
2. Only for hosted clusters.
3. Required to fetch Rancher chart library.
4. Only without external load balancer.
5. From worker nodes.
6. For direct access to the Kubernetes API without Rancher.
7. Usually Ingress backed by infrastructure load balancer and/or nodeport.

其他端口考虑事项

常用端口

这些端口通常在您的 Kubernetes 节点上打开,无论集群类型如何。

Protocol Port Description

TCP

22

Node driver SSH provisioning

TCP

179

Calico BGP Port

TCP

2376

Node driver Docker daemon TLS port

TCP

2379

etcd client requests

TCP

2380

etcd peer communication

UDP

8472

Canal/Flannel VXLAN overlay networking

UDP

4789

Flannel VXLAN overlay networking on Windows cluster

TCP

8443

Rancher webhook

TCP

9099

Canal/Flannel livenessProbe/readinessProbe

TCP

9443

Rancher webhook

TCP

9796

Default port required by Monitoring to scrape metrics from Linux and Windows node-exporters

TCP

6783

Weave Port

UDP

6783-6784

Weave UDP Ports

TCP

10250

Metrics server communication with all nodes API

TCP

10254

Ingress controller livenessProbe/readinessProbe

TCP/UDP

30000-32767

NodePort port range


本地节点流量

在上述要求中标记为 local traffic(即 9099 TCP)的端口用于 Kubernetes 健康检查(livenessProbereadinessProbe)。 这些健康检查在节点本身上执行。在大多数云环境中,此本地流量默认是允许的。

但是,当以下情况发生时,这个流量可能会被阻止:

  • 您在节点上应用了严格的主机防火墙策略。

  • 您正在使用具有多个接口(多宿主)的节点。

在这些情况下,您必须在主机防火墙中显式允许此流量,或者在公共/私有云托管的机器(例如 AWS 或 OpenStack)中,在安全组配置中允许。请记住,当在安全组中将安全组作为源或目标使用时,显式开放端口仅适用于节点/实例的私有接口。

Rancher AWS EC2 安全组

在 Rancher 中使用 AWS EC2 节点驱动程序 来配置集群节点时,您可以选择让 Rancher 创建一个名为 rancher-nodes 的安全组。以下规则会自动添加到此安全组中。

类型 协议 端口范围 源/目标 规则类型

SSH

TCP

22

0.0.0.0/0 and ::/0

入站

HTTP

TCP

80

0.0.0.0/0 and ::/0

入站

自定义 TCP 规则

TCP

443

0.0.0.0/0 and ::/0

入站

自定义 TCP 规则

TCP

2376

0.0.0.0/0 and ::/0

入站

自定义 TCP 规则

TCP

6443

0.0.0.0/0 and ::/0

入站

自定义 TCP 规则

TCP

179

sg-xxx (rancher-nodes)

入站

自定义 TCP 规则

TCP

9345

sg-xxx (rancher-nodes)

入站

自定义 TCP 规则

TCP

2379-2380

sg-xxx (rancher-nodes)

入站

自定义 TCP 规则

TCP

10250-10252

sg-xxx (rancher-nodes)

入站

自定义 TCP 规则

TCP

10256

sg-xxx (rancher-nodes)

入站

自定义 UDP 规则

UDP

4789

sg-xxx (rancher-nodes)

入站

自定义 UDP 规则

UDP

8472

sg-xxx (rancher-nodes)

入站

自定义 TCP 规则

TCP

30000-32767

0.0.0.0/0 and ::/0

入站

自定义 UDP 规则

UDP

30000-32767

0.0.0.0/0 and ::/0

入站

所有流量

所有

所有

0.0.0.0/0 and ::/0

出站

打开 SUSE Linux 端口

SUSE Linux 可能默认会有一个阻止所有端口的防火墙。要打开将主机添加到自定义集群所需的端口,

  • SLES 15 / openSUSE Leap 15

  • SLES 12 / openSUSE Leap 42

  1. 通过 SSH 登录到实例。

  2. 以文本模式启动 YaST:

     sudo yast2
  3. 导航到 安全和用户 > 防火墙 > 区域:公共 > 端口.要在界面内导航,请遵循这些 指示

  4. 要打开所需的端口,请将其输入到*TCP 端口*和*UDP 端口*字段中。在此示例中,端口 9796 和 10250 也已打开以进行监控。结果字段应类似如下内容:

     TCP Ports
     22, 80, 443, 2376, 2379, 2380, 6443, 9099, 9796, 10250, 10254, 30000-32767
     UDP Ports
     8472, 30000-32767
  5. 输入所有所需端口后,选择*确定*。

  1. 通过 SSH 登录到实例。

  2. 编辑/`etc/sysconfig/SuSEfirewall2`并打开所需的端口。在此示例中,端口 9796 和 10250 也已打开以进行监控:

     FW_SERVICES_EXT_TCP="22 80 443 2376 2379 2380 6443 9099 9796 10250 10254 30000:32767"
     FW_SERVICES_EXT_UDP="8472 30000:32767"
     FW_ROUTE=yes
  3. 使用新端口重启防火墙:

     SuSEfirewall2

*结果:*节点具有添加到自定义集群所需的开放端口。