跳至主要内容

1. 設定基礎架構

在本節中,您將為透過 HTTP 代理存取網際網路的 Rancher 管理伺服器佈建底層基礎架構。

若要在高可用性 RKE2/K3s 叢集上安裝 Rancher 管理伺服器,我們建議設定以下基礎架構:

  • 三個 Linux 節點,通常是虛擬機,在基礎架構提供商中,例如 Amazon 的 EC2、Google Compute Engine 或 vSphere。
  • 一個負載平衡器,將前端流量導向三個節點。
  • 一筆 DNS 記錄,將 URL 對應到負載平衡器。這將成為 Rancher 伺服器的 URL,下游 Kubernetes 叢集將需要連接到它。

這些節點必須位於同一個區域/資料中心。您可以將這些伺服器放置在不同的可用性區域中。

為什麼要三個節點?​

在 RKE2/K3s 叢集中,Rancher 伺服器資料儲存在 etcd 上。這個 etcd 資料庫在所有三個節點上執行。

etcd 資料庫需要奇數個節點,以便它可以始終透過 etcd 叢集的多數選出領導者。如果 etcd 資料庫無法選出領導者,etcd 可能會遭受腦裂,需要從備份還原叢集。如果三個 etcd 節點中的一個失敗,剩餘的兩個節點可以選出領導者,因為它們擁有 etcd 節點總數的多數。

1. 設定 Linux 節點​

這些主機將透過 HTTP 代理連接到網際網路。

請確保您的節點符合 作業系統、容器執行時期、硬體和網路的一般安裝要求。

有關設定 Linux 節點的一種方法的範例,請參閱此教學以將節點設定為 Amazon EC2 中的執行個體。

2. 設定負載平衡器​

您還需要設定負載平衡器,將流量導向兩個節點上的 Rancher 副本。這將防止任何單一節點的中斷導致與 Rancher 管理伺服器的通訊中斷。

當 Kubernetes 在後續步驟中設定時,RKE2/K3s 工具將部署 NGINX Ingress 控制器。此控制器將監聽工作節點的 80 和 443 連接埠,回應目的地為特定主機名稱的流量。

當 Rancher 安裝完成時(也在後續步驟中),Rancher 系統會建立一個 Ingress 資源。該 Ingress 告訴 NGINX Ingress 控制器監聽目的地為 Rancher 主機名稱的流量。NGINX Ingress 控制器在接收到目的地為 Rancher 主機名稱的流量時,會將該流量轉發到叢集中執行的 Rancher Pod。

對於您的實作,請考慮您是否希望或需要使用第 4 層或第 7 層負載平衡器:

  • 第 4 層負載平衡器是兩種選擇中較簡單的一種,在其中您將 TCP 流量轉發到節點。我們建議將您的負載平衡器設定為第 4 層平衡器,將流量轉發到 TCP/80 和 TCP/443 連接埠到 Rancher 管理叢集節點。叢集上的 Ingress 控制器會將 HTTP 流量重新導向到 HTTPS,並在 TCP/443 連接埠終止 SSL/TLS。Ingress 控制器會將流量轉發到 TCP/80 連接埠到 Rancher 部署中的 Ingress Pod。
  • 第 7 層負載平衡器稍微複雜一些,但可以提供您可能需要的功能。例如,第 7 層負載平衡器能夠在負載平衡器處理 TLS 終止,而不是由 Rancher 自己進行 TLS 終止。如果您想在基礎架構中集中 TLS 終止,這可能會有所幫助。第 7 層負載平衡也提供了負載平衡器根據 HTTP 屬性(例如 Cookie 等)做出決策的能力,而第 4 層負載平衡器無法處理這些屬性。如果您決定在第 7 層負載平衡器上終止 SSL/TLS 流量,您將需要在後續步驟安裝 Rancher 時使用 --set tls=external 選項。有關更多資訊,請參閱 Rancher Helm chart 選項。

有關如何設定 NGINX 負載平衡器的範例,請參閱此頁面。

有關設定 Amazon ELB Network Load Balancer 的操作指南,請參閱此頁面。

重要:

安裝後,請勿使用此負載平衡器(即 local 叢集 Ingress)來為 Rancher 以外的應用程式進行負載平衡。與其他應用程式共用此 Ingress 可能會在為其他應用程式重新載入 Ingress 設定後導致 Rancher 的 WebSocket 錯誤。我們建議將 local 叢集專用於 Rancher,而不用於其他應用程式。

3. 設定 DNS 記錄​

設定好負載平衡器後,您需要建立 DNS 記錄以將流量傳送到此負載平衡器。

根據您的環境,這可能是指向負載平衡器 IP 的 A 記錄,或者可能是指向負載平衡器主機名稱的 CNAME。無論哪種情況,請確保此記錄是您打算讓 Rancher 回應的主機名稱。

您需要在後續安裝 Rancher 的步驟中指定此主機名稱,並且以後無法更改。請確保您的決定是最終決定。

有關設定 DNS 記錄以將網域流量路由到 Amazon ELB 負載平衡器的操作指南,請參閱 AWS 官方文件。

下一步:設定 Kubernetes 叢集​