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 官方文件。