请确保 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 的信息,请参阅官方。
一些 RHEL 衍生的 Linux 发行版,可能有默认的防火墙规则,可能会屏蔽掉 Helm 的通信。这个操作指南展示了如何检查 Oracle Linux 的默认防火墙规则,以及在必要时如何使用firewalld
开放端口。
SUSE Linux 可能有默认阻止所有端口的防火墙。在这种情况下,请按照,开放将添加到自定义集群的主机的端口。
Rancher v2.3.0 可以使用 Windows Worker 节点
Windows Server 的节点必须使用 Docker 企业版。这是 Kubernetes 的限制。
Windows 节点只能用于工作节点。详情请参阅配置自定义 Windows 集群。
具有worker
角色的节点的硬件要求主要取决于您的工作负载。运行 Kubernetes 节点组件的最小值是 1 个 CPU(核心)和 1GB 内存。
关于 CPU 和内存,建议将不同平面的 Kubernetes 集群组件(etcd、controlplane 和 worker)托管在不同的节点上,以便它们可以彼此分开扩展。
有关生产中 etcd 集群的硬件建议,请参阅官方。
对于生产集群,我们建议您仅开放下文端口要求中定义的端口来限制流量。
需要开放的端口根据下游集群的启动方式而有所不同。下面的每个部分列出了在不同的集群创建选项下需要开放的端口。
有关 kubernetes 集群中 etcd 节点、controlplane 节点和 worker 节点的端口要求的详细信息,请参阅 。
有关在每种情况下使用哪些端口的详细信息,请参阅以下章节。
常用端口
如果安全性不是一个大问题,并且您可以开放一些额外的端口,则可以使用此表作为端口参考,而不是后续部分中的综合表。
这些端口通常在 Kubernetes 节点上是开放的,无论它是什么类型的集群。
常用端口参考
如果您要在现有的云服务商上启动 Kubernetes 集群,请参阅这些端口要求。
下表描述了与自定义节点的端口要求。
import PortsCustomNodes from ‘@theme/PortsCustomNodes’;
集群节点托管在云服务商的端口要求
如果您要在云服务商(如 Amazon EC2、Google Container Engine、DigitalOcean、Azure 或 vSphere)中的节点上启动 Kubernetes 集群,请应用这些端口要求。
在使用云服务商创建集群期间,Rancher 会自动开放这些必需的端口。
下表描述了RKE 集群在创建节点的端口要求。
import PortsIaasNodes from ‘@theme/PortsIaasNodes’;
AWS EC2 上节点的安全组
在使用 在 Rancher 中配置集群节点时,您可以选择让 Rancher 创建一个名为 rancher-nodes 的安全组。以下规则将自动添加到此安全组。
类型 | 协议 | 端口范围 | 源/目的 | 规则类型 |
---|---|---|---|---|
SSH | TCP | 22 | 0.0.0.0/0 | 入站 |
HTTP | TCP | 80 | 0.0.0.0/0 | 入站 |
自定义 TCP 规则 | TCP | 443 | 0.0.0.0/0 | 入站 |
自定义 TCP 规则 | TCP | 2376 | 0.0.0.0/0 | 入站 |
自定义 TCP 规则 | TCP | 2379-2380 | sg-xxx (rancher-nodes) | 入站 |
自定义 UDP 规则 | UDP | 4789 | sg-xxx (rancher-nodes) | 入站 |
自定义 TCP 规则 | TCP | 6443 | 0.0.0.0/0 | 入站 |
自定义 UDP 规则 | UDP | 8472 | sg-xxx (rancher-nodes) | 入站 |
自定义 TCP 规则 | TCP | 10250-10252 | sg-xxx (rancher-nodes) | 入站 |
自定义 TCP 规则 | TCP | 10256 | sg-xxx (rancher-nodes) | 入站 |
自定义 TCP 规则 | TCP | 30000-32767 | 0.0.0.0/0 | 入站 |
自定义 UDP 规则 | UDP | 30000-32767 | 0.0.0.0/0 | 入站 |
全部流量 | All | All | 0.0.0.0/0 | 出站 |
如果您使用服务商托管的 Kubernetes 集群,例如(如 Google Kubernetes Engine、Amazon 或 Azure Kubernetes 服务)启动集群,请参阅这些端口要求。
import PortsImportedHosted from ‘@theme/PortsImportedHosted’;
导入集群的端口要求
如果要导入现有集群,请参阅这些端口要求。
下表描述了导入集群的端口要求。
在端口要求中标记为 (例如:9099 TCP
)的端口用于 Kubernetes 运行健康检查livenessProbe
和)。 这些健康检查在自身节点上执行。在大多数云环境中,默认情况下允许此本地流量。
但是,在以下情况下,此流量可能会被阻止:
- 您已在节点上应用了严格的主机防火墙策略。
- 您正在使用具有多个接口(多宿主)的节点。
在这些情况下,您必须在您的主机防火墙中明确允许此流量,或者在机器托管在公共/私有云(例如:AWS 或 OpenStack)的情况下,在您的安全组配置中明确允许此流量。请记住,在安全组中设置源或目标时,显式打开端口仅适用于节点/实例的私有接口。
如果您想要配置符合 CIS(Center for Internet Security)Kubernetes 基准的 Kubernetes 集群,我们建议您在安装 Kubernetes 之前,遵循我们的安全加固指南来配置您的节点。
有关安全加固指南的更多信息以及指南的哪个版本与您的 Rancher 和 Kubernetes 版本对应的详细信息,请参阅。
SUSE Linux 可能具有默认情况下阻止所有端口的防火墙。要开放中集群所需的主机端口。
SSH 进入实例。
编辑/
etc/sysconfig/SuSEfirewall2
并开放所需的端口。在此示例中,还开放了端口 9796 和 10250 以进行监视:-
结果: 节点添加到自定义集群所需的节点端口已打开。