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

运行 SUSE Rancher Prime 的提示

本指南针对使用 Rancher 管理下游 Kubernetes 集群的用例。高可用性设置旨在防止在 Rancher 服务器不可用时失去对下游集群的访问。

高可用性 Kubernetes 安装被定义为在至少三个节点的 Kubernetes 集群上安装 Rancher,应在任何生产环境的 Rancher 安装中使用,以及任何被认为是 "重要" 的安装。在多个节点上运行多个 Rancher 实例确保了高可用性,这是单节点环境无法实现的。

如果您在 vSphere 环境中安装 Rancher,请参考 此处 记录的最佳实践。

当您设置高可用性 Rancher 安装时,请考虑以下事项:

减少上游集群中的第三方软件

我们通常建议在专用集群上运行 Rancher,避免其他工作负载,以避免潜在的性能和兼容性问题。

Rancher,特别是在管理越来越多的集群、节点和工作负载时,会对上游集群中的核心 Kubernetes 组件如 etcdkube-apiserver 施加显著负载。第三方软件可能会干扰这些组件和 Rancher 的性能,可能导致不稳定。

此外,第三方软件可能在功能上干扰 Rancher。为了最小化兼容性风险,仅在上游集群中部署必要的 Kubernetes 系统组件和 Rancher。

以下应用程序和组件通常不会干扰 Rancher 或 Kubernetes 系统,支持在上游集群中安装:

  • Rancher 内部组件,如 Fleet

  • Rancher 扩展

  • 集群 API 组件

  • CNI、CPI、CSI

  • 云控制器管理器

  • 可观测性和监控工具(除了 prometheus-rancher-exporter)

请注意,这些组件各自都有最低资源要求,必须满足这些要求,此外还要满足 Rancher 的要求。对于大规模部署,还应考虑为非 Rancher 软件专门分配独立节点,使用 污点和容忍 来最小化干扰。

其他软件可能会干扰 Rancher,因此在上游集群中不受支持。

特别注意以下软件已知会干扰 Rancher 性能:

容器注册表指南

容器注册表,如 SUSE 私有注册表,在提供镜像时可能会消耗大量网络带宽。这种需求随着镜像数量、镜像拉取频率以及它们服务的集群和容器运行时的数量而增加。由于可能会干扰 Rancher UI 和 API 流量,我们建议不要在与 Rancher 管理服务器相同的集群上运行容器注册表。

无论您对容器注册表的部署策略如何,请确保有足够的带宽可用,理想情况下使用服务质量(QoS)机制进行保留。

根据您的需求考虑以下建议:

  • *简单设置(高可用性不是主要关注点):*作为单个虚拟机(VM)部署的容器注册表可以是一个可行的解决方案。

  • *高可用性(HA)要求:*我们建议在专用的 Kubernetes 集群中运行注册表。所有其他集群应配置为从这个集中式的高可用性注册表中拉取镜像。

  • *非常大规模或复杂的网络拓扑:*可能需要多个注册表集群。这些可以以层次或联合模型部署,以有效分发镜像和管理流量。

确保节点正确配置以支持Kubernetes。

在部署节点时,遵循K8s和etcd的最佳实践非常重要,包括禁用交换、仔细检查集群中所有机器之间的网络连接是否完整、为每个节点使用唯一的主机名、MAC地址和product_uuids、检查所有正确的端口是否已打开,以及使用SSD支持的etcd进行部署。更多详细信息可以在 Kubernetes 文档etcd性能操作指南中找到。

在同一数据中心运行集群中的所有节点。

为了获得最佳性能,建议在同一地理数据中心运行所有三个节点。如果您在云中运行节点,例如AWS,请在不同的可用区中运行每个节点。例如,在us-west-2a启动节点1,在us-west-2b启动节点2,在us-west-2c启动节点3。

开发和生产环境应尽可能相似。

强烈建议在 Rancher 运行的 Kubernetes 集群中拥有一个"暂存"或"预生产"环境。该环境应尽可能在软件和硬件配置上与您的生产环境相似。

监控您的集群以规划容量。

Rancher 服务器的 Kubernetes 集群应尽可能接近 系统和硬件要求。您越偏离系统和硬件要求,风险就越大。

然而,以指标驱动的容量规划分析应成为扩展Rancher的最终指导,因为发布的要求考虑了多种工作负载类型。

使用Rancher,您可以通过与Prometheus(一个领先的开源监控解决方案)和Grafana(让您可视化Prometheus的指标)的集成,监控集群节点、Kubernetes组件和软件部署的状态和进程。

在集群中启用监控后,您可以设置警报,以便在集群接近其容量时通知您。您还可以使用 Prometheus 和 Grafana 监控框架,在扩展时为关键指标建立基线。