Rancher 管理集群的节点要求

本页描述了 Rancher 管理的 Kubernetes 集群的要求,你的应用和服务将安装在这些集群中。这些下游集群应该与运行 Rancher 的三节点集群分开。

Rancher 管理集群的节点要求 - 图1备注

如果 Rancher 安装在高可用的 Kubernetes 集群上,Rancher Server 的三节点集群和下游集群有不同的要求。有关 Rancher 的安装要求,请参考安装文档中的节点要求。

操作系统和容器运行时要求

Rancher 兼容当前所有的主流 Linux 发行版和任何通用的 Docker 版本。所有下游集群的 etcd 和 controlplane 节点都需要运行在 Linux 上。而 Worker 节点可以运行在 Linux 或 Windows Server 上。

如需了解各个 Rancher 版本通过了哪些操作系统和 Docker 版本测试,请参见支持和维护条款

所有支持的操作系统都使用 64-bit x86 架构。

如果你想使用 ARM64,请参阅在 ARM64 上运行(实验功能)。

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

Oracle Linux 和 RHEL 衍生的 Linux 节点

某些源自 RHEL 的 Linux 发行版(包括 Oracle Linux)的默认防火墙规则可能会阻止与 Helm 的通信。我们建议禁用 firewalld。如果你的 Kubernetes 版本是 1.19,请务必禁用 firewalld。

Rancher 管理集群的节点要求 - 图2备注

在 RHEL 8.4 中,NetworkManager 上有两个额外的服务,即 nm-cloud-setup.servicenm-cloud-setup.timer。这些服务增加了一个路由表,干扰了 CNI 插件的配置。如果启用了这些服务,你必须使用以下命令禁用它们,然后重新启动节点以恢复连接:

  1. systemctl disable nm-cloud-setup.service nm-cloud-setup.timer
  2. reboot

SUSE Linux 节点

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

Flatcar Container Linux 节点

使用 Flatcar Container Linux 节点通过 Rancher 启动 Kubernetes 时,需要在 Cluster Config 文件中使用如下配置:

  • Canal
  • Calico
  1. rancher_kubernetes_engine_config:
  2. network:
  3. plugin: canal
  4. options:
  5. canal_flex_volume_plugin_dir: /opt/kubernetes/kubelet-plugins/volume/exec/nodeagent~uds
  6. flannel_backend_type: vxlan
  7. services:
  8. kube-controller:
  9. extra_args:
  10. flex-volume-plugin-dir: /opt/kubernetes/kubelet-plugins/volume/exec/
  1. rancher_kubernetes_engine_config:
  2. network:
  3. plugin: calico
  4. options:
  5. calico_flex_volume_plugin_dir: /opt/kubernetes/kubelet-plugins/volume/exec/nodeagent~uds
  6. flannel_backend_type: vxlan
  7. services:
  8. kube-controller:
  9. extra_args:
  10. flex-volume-plugin-dir: /opt/kubernetes/kubelet-plugins/volume/exec/

还需要启用 Docker 服务,你可以使用以下命令启用 Docker 服务:

  1. systemctl enable docker.service

使用主机驱动时会自动启用 Docker 服务。

Windows 节点

运行 Windows Server 节点必须使用 Docker 企业版。

Windows 节点只能用于 Worker 节点。请参阅配置 Windows 自定义集群

硬件要求

你的工作负载决定了具有 worker 角色的节点的硬件要求。运行 Kubernetes 节点组件的最低要求是 1 个 CPU(核心)和 1GB 内存。

关于 CPU 和内存,建议将 Kubernetes 集群的不同平面(etcd、controlplane 和 worker)托管在不同的节点上,以便它们可以相互独立扩展。

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

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

网络要求

对于生产集群,我们建议你通过仅打开以下端口要求中定义的端口来限制流量。

需要开放的端口根据下游集群的启动方式而有所不同。以下列出了需要为不同集群创建选项打开的端口。

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

下游集群端口要求中,你可以找到在各种情况下使用的端口的详细信息。

Rancher 管理集群的节点要求 - 图3警告

不要使用与现有节点相同的主机名或 IP 地址来注册节点。这样做会导致 RKE 阻止节点加入,并导致配置挂起。主机驱动和自定义集群都可能发生这种情况。如果节点必须重用现有节点的主机名或 IP,则必须在注册节点之前设置 hostname_override RKE 选项,以便节点能够正确加入。

可选:安全注意事项

如果你要配置符合 CIS(互联网安全中心)Kubernetes 基准的 Kubernetes 集群,我们建议你在安装 Kubernetes 之前按照我们的强化指南来配置节点。

有关强化指南的更多信息,以及了解哪个指南版本对应于你的 Rancher 和 Kubernetes 版本,请参阅安全