本页描述了安装您的应用和服务所在节点的要求。下游集群 是指运行您的应用程序的集群,它应该与运行 Rancher Server 的高可用集群或单节点分开。

如果 Rancher 安装在 Kubernetes 集群上,Rancher Server 集群和下游集群有不同的要求。有关 Rancher Server 安装要求,请参阅高可用安装要求

请确保 Rancher Server 的节点满足以下要求。

操作系统和容器运行要求

Rancher 理论上可以任何通用的 Linux 发行版和任何通用的 Docker 版本一起工作。所有下游集群的 etcd 和 controlplane 节点都需要运行在 Linux 上。Worker 节点可以运行在 Linux 或 Windows 上。在 Rancher v2.3.0 中添加了在下游集群中使用 Windows Worker 节点的功能。

Rancher 已经过测试,并官方支持在 Ubuntu,CentOS,Oracle Linux,RancherOS 和 RedHat Enterprise Linux 上运行下游集群。关于每个 Rancher 版本所测试过的操作系统和 Docker 版本的详细信息,请参阅支持维护条款

所有受支持的操作系统都是 64-bit x86 系统。

如果您计划使用 ARM64,请参阅在 ARM64 上运行(实验性)

有关如何安装 Docker 的信息,请参阅官方Docker 文档

一些 RHEL 衍生的 Linux 发行版,可能有默认的防火墙规则,可能会屏蔽掉 Helm 的通信。这个操作指南展示了如何检查 Oracle Linux 的默认防火墙规则,以及在必要时如何使用firewalld开放端口。

SUSE Linux 可能有默认阻止所有端口的防火墙。在这种情况下,请按照以下步骤,开放将添加到自定义集群的主机的端口。

Windows 节点要求

Rancher v2.3.0 可以使用 Windows Worker 节点

Windows Server 的节点必须使用 Docker 企业版。这是 Kubernetes 的限制。

Windows 节点只能用于工作节点。详情请参阅配置自定义 Windows 集群

硬件要求

具有worker角色的节点的硬件要求主要取决于您的工作负载。运行 Kubernetes 节点组件的最小值是 1 个 CPU(核心)和 1GB 内存。

关于 CPU 和内存,建议将不同平面的 Kubernetes 集群组件(etcd、controlplane 和 worker)托管在不同的节点上,以便它们可以彼此分开扩展。

有关大型 Kubernetes 集群的硬件建议,请参阅关于构建大型集群的官方 Kubernetes 文档。

有关生产中 etcd 集群的硬件建议,请参阅官方etcd 文档

网络要求

对于生产集群,我们建议您仅开放下文端口要求中定义的端口来限制流量。

需要开放的端口根据下游集群的启动方式而有所不同。下面的每个部分列出了在不同的集群创建选项下需要开放的端口。

有关 kubernetes 集群中 etcd 节点、controlplane 节点和 worker 节点的端口要求的详细信息,请参阅 Rancher Kubernetes Engine 的端口要求

有关在每种情况下使用哪些端口的详细信息,请参阅以下章节。

常用端口

如果安全性不是一个大问题,并且您可以开放一些额外的端口,则可以使用此表作为端口参考,而不是后续部分中的综合表。

这些端口通常在 Kubernetes 节点上是开放的,无论它是什么类型的集群。

常用端口参考

协议端口描述
TCP22节点驱动程序 SSH 设置
TCP2376节点驱动程序 Docker 守护进程 TLS 端口
TCP2379etcd 客户端请求
TCP2380etcd 对等通信
UDP8472Canal/Flannel VXLAN overlay 网络
UDP4789windows 集群上的 Flannel VXLAN overlay 网络
TCP9099Canal/Flannel 健康检查
TCP6783Weave 端口
UDP6783-6784Weave UDP 端口
TCP10250kubelet API
TCP10254Ingress controller 健康检查
TCP/UDP30000-32767NodePort 端口范围

自定义集群的端口要求

如果您要在现有的云服务商上启动 Kubernetes 集群,请参阅这些端口要求。

下表描述了RKE 集群自定义节点的端口要求。

import PortsCustomNodes from ‘@theme/PortsCustomNodes’;

集群节点托管在云服务商的端口要求

如果您要在云服务商(如 Amazon EC2、Google Container Engine、DigitalOcean、Azure 或 vSphere)中的节点上启动 Kubernetes 集群,请应用这些端口要求。

在使用云服务商创建集群期间,Rancher 会自动开放这些必需的端口。

下表描述了RKE 集群云服务商创建节点的端口要求。

注意: 在 Amazon EC2 或 DigitalOcean 等云服务商创建集群期间,Rancher 会自动开放所需的端口。

import PortsIaasNodes from ‘@theme/PortsIaasNodes’;

AWS EC2 上节点的安全组

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

类型协议端口范围源/目的规则类型
SSHTCP220.0.0.0/0入站
HTTPTCP800.0.0.0/0入站
自定义 TCP 规则TCP4430.0.0.0/0入站
自定义 TCP 规则TCP23760.0.0.0/0入站
自定义 TCP 规则TCP2379-2380sg-xxx (rancher-nodes)入站
自定义 UDP 规则UDP4789sg-xxx (rancher-nodes)入站
自定义 TCP 规则TCP64430.0.0.0/0入站
自定义 UDP 规则UDP8472sg-xxx (rancher-nodes)入站
自定义 TCP 规则TCP10250-10252sg-xxx (rancher-nodes)入站
自定义 TCP 规则TCP10256sg-xxx (rancher-nodes)入站
自定义 TCP 规则TCP30000-327670.0.0.0/0入站
自定义 UDP 规则UDP30000-327670.0.0.0/0入站
全部流量AllAll0.0.0.0/0出站

托管 Kubernetes 集群的端口要求

如果您使用服务商托管的 Kubernetes 集群,例如(如 Google Kubernetes Engine、Amazon 或 Azure Kubernetes 服务)启动集群,请参阅这些端口要求。

import PortsImportedHosted from ‘@theme/PortsImportedHosted’;

导入集群的端口要求

如果要导入现有集群,请参阅这些端口要求。

下表描述了导入集群的端口要求。

本地流量的端口要求

在端口要求中标记为 local traffic(例如:9099 TCP)的端口用于 Kubernetes 运行健康检查livenessProbereadinessprobe)。 这些健康检查在自身节点上执行。在大多数云环境中,默认情况下允许此本地流量。

但是,在以下情况下,此流量可能会被阻止:

  • 您已在节点上应用了严格的主机防火墙策略。
  • 您正在使用具有多个接口(多宿主)的节点。

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

可选:安全注意事项

如果您想要配置符合 CIS(Center for Internet Security)Kubernetes 基准的 Kubernetes 集群,我们建议您在安装 Kubernetes 之前,遵循我们的安全加固指南来配置您的节点。

有关安全加固指南的更多信息以及指南的哪个版本与您的 Rancher 和 Kubernetes 版本对应的详细信息,请参阅安全说明

开放 SUSE Linux 端口

SUSE Linux 可能具有默认情况下阻止所有端口的防火墙。要开放中集群所需的主机端口。

  1. SSH 进入实例。

  2. 编辑/etc/sysconfig/SuSEfirewall2并开放所需的端口。在此示例中,还开放了端口 9796 和 10250 以进行监视:

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

    1. SuSEfirewall2

结果: 节点添加到自定义集群所需的节点端口已打开。