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

为高可用性 SUSE® Rancher Prime: K3s Kubernetes 集群设置基础设施

本教程旨在帮助您为 Rancher 管理服务器提供基础设施。

Rancher 专用的 Kubernetes 集群的推荐基础设施取决于 Rancher 是否安装在 K3s Kubernetes 集群、RKE Kubernetes 集群,还是单个 Docker 容器上。

有关每个安装选项的更多信息,请参阅 此页面

重要说明:

这些节点必须位于同一区域。您可以将这些服务器放置在不同的可用区(数据中心)。

要在高可用性 K3s 集群上安装 Rancher 管理服务器,我们建议设置以下基础设施:

  • 两个 Linux 节点, 通常是您选择的基础设施提供商中的虚拟机。

  • 一个外部数据库 用于存储集群数据。我们推荐使用 MySQL。

  • 一个负载均衡器 用于将流量引导到两个节点。

  • 一个 DNS 记录 用于将 URL 映射到负载均衡器。这将成为 Rancher 服务器的 URL,下游的 Kubernetes 集群需要访问它。

1.设置 Linux 节点

确保您的节点满足 操作系统、容器运行时、硬件和网络 的一般安装要求。

有关设置 Linux 节点的一种示例,请参考此 教程,以将节点设置为 Amazon EC2 中的实例。

2.设置外部数据存储

使用除etcd以外的数据存储来运行Kubernetes的能力使K3s与其他Kubernetes发行版不同。此功能为Kubernetes操作员提供了灵活性。可用选项允许您选择最适合您用例的数据存储。

对于高可用性 K3s 安装,您需要设置一个 MySQL 外部数据库。Rancher 已在使用 MySQL 5.7 作为数据存储的 K3s Kubernetes 集群上进行了测试。

当您使用 K3s 安装脚本安装 Kubernetes 时,您将传递 K3s 连接数据库的详细信息。

有关设置 MySQL 数据库的一种方法的示例,请参阅此 教程,了解如何在亚马逊的 RDS 服务上设置 MySQL。

有关配置 K3s 集群数据存储的可用选项的完整列表,请参阅 K3s 文档。

3.设置负载平衡器

您还需要设置一个负载平衡器,以将流量引导到两个节点上的 Rancher 副本。这将防止任何单个节点的故障导致与 Rancher 管理服务器的通信中断。

当 Kubernetes 在后面的步骤中设置时,K3s 工具将部署一个 Traefik Ingress 控制器。该控制器将在工作节点的 80 和 443 端口上侦听,响应发送到特定主机名的流量。

当 Rancher 安装完成(也在后面的步骤中)时,Rancher 系统会创建一个 Ingress 资源。该 Ingress 指示 Traefik Ingress 控制器侦听发往 Rancher 主机名的流量。当 Traefik Ingress 控制器接收到发送到 Rancher 主机名的流量时,将把该流量转发到集群中正在运行的 Rancher pod。

对于您的实现,请考虑您是否希望或需要使用 Layer-4 或 Layer-7 负载平衡器:

  • Layer-4 负载平衡器 是两者中更简单的选择,您将 TCP 流量转发到您的节点。我们建议将您的负载平衡器配置为 Layer-4 负载平衡器,将流量转发到 Rancher 管理集群节点的 TCP/80 和 TCP/443 端口。集群上的 Ingress 控制器将把 HTTP 流量重定向到 HTTPS,并在 TCP/443 端口终止 SSL/TLS。Ingress 控制器将把流量转发到 Rancher 部署中的 Ingress pod 的 TCP/80 端口。

  • Layer-7 负载平衡器 稍微复杂一些,但可以提供您可能需要的功能。例如,Layer-7 负载平衡器能够在负载平衡器处处理 TLS 终止,而不是让 Rancher 自行处理 TLS 终止。如果您希望在基础设施中集中管理 TLS 终止,这可能是有益的。Layer-7 负载平衡器还提供了让负载平衡器基于 HTTP 属性(如 cookies 等)做出决策的能力,而 Layer-4 负载平衡器无法处理这些。如果您决定在 Layer-7 负载平衡器上终止 SSL/TLS 流量,则在后面的步骤中安装 Rancher 时需要使用 --set tls=external 选项。有关更多信息,请参考 Rancher Helm chart 选项。

有关如何设置 NGINX 负载平衡的示例,请参阅 此页面。

有关设置 Amazon ELB 网络负载平衡器的操作指南,请参阅 此页面。

安装后,请勿使用此负载平衡器(即 local 集群 Ingress)来负载均衡除 Rancher 以外的应用程序。与其他应用程序共享此 Ingress 可能会导致 Rancher 在其他应用程序的 Ingress 配置重新加载后出现 websocket 错误。我们建议将 local 集群专用于 Rancher,而不用于其他应用程序。

4.设置 DNS 记录

设置负载平衡器后,您需要创建一个 DNS 记录以将流量发送到此负载平衡器。

根据您的环境,这可能是指向负载均衡器 IP 的 A 记录,或者是指向负载均衡器主机名的 CNAME。无论哪种情况,请确保此记录是您希望 Rancher 响应的主机名。

在稍后的步骤中安装 Rancher 时,您需要指定此主机名,并且之后无法更改。确保您的决定是最终的。

有关设置 DNS 记录以将域流量路由到 Amazon ELB 负载平衡器的操作指南,请参阅 官方 AWS 文档。