執行 Rancher 的技巧
本指南針對使用 Rancher 管理 下游 Kubernetes 叢集的使用案例。高可用性設定旨在防止在 Rancher 伺服器不可用時失去對下游叢集的存取。
高可用性 Kubernetes 安裝,定義為在至少具有三個節點的 Kubernetes 叢集上安裝 Rancher,應該用於任何 Rancher 的生產安裝,以及任何被視為「重要」的安裝。在多個節點上執行的多個 Rancher 實例可確保單節點環境無法實現的高可用性。
如果您在 vSphere 環境中安裝 Rancher,請參閱此處記錄的最佳實踐。
當您設定高可用性 Rancher 安裝時,請考慮以下事項:
最小化上游叢集上的第三方軟體
我們通常建議在專用叢集上執行 Rancher,避免其他工作負載,以避免潛在的效能和相容性問題。
Rancher,特別是在管理越來越多的叢集、節點和工作負載時,會對上游叢集上的核心 Kubernetes 元件(如 etcd 和 kube-apiserver)造成重大負載。第三方軟體可能會干擾這些元件和 Rancher 的效能,可能導致不穩定。
此外,第三方軟體可能會在功能上干擾 Rancher。為了最小化相容性風險,僅在上游叢集上部署必要的 Kubernetes 系統元件和 Rancher。
以下應用程式和元件通常不會干擾 Rancher 或 Kubernetes 系統:
- Rancher 內部元件,例如 Fleet
- Rancher 擴充功能
- Cluster API 元件
- CNI、CPI、CSI
- 雲端控制器管理員
- 可觀察性和監控工具(prometheus-rancher-exporter 除外)
請注意,這些元件中的每一個都有其自己的最低資源需求,這些需求必須在 Rancher 的需求之外得到滿足。對於高規模部署,還請考慮使用污點和容忍度將單獨的節點專用於非 Rancher 軟體,以最小化干擾。
以下軟體可能會干擾 Rancher 效能,因此不建議在上游叢集上使用:
- CrossPlane
- Argo CD
- Flux
- prometheus-rancher-exporter(請參閱問題 33)
- 容器登錄檔,例如 Harbor,可能需要大量頻寬來提供映像
容器登錄檔的指導
容器登錄檔,例如 Harbor,在提供映像時可能會消耗大量網路頻寬。這種需求會隨著映像數量、映像拉取頻率以及它們服務的叢集和容器執行時的數量而增加。由於這種潛在的干擾 Rancher UI 和 API 流量的可能性,我們建議不要在與 Rancher 管理伺服器相同的叢集上執行容器登錄檔。
無論您的容器登錄檔部署策略如何,請確保有足夠的頻寬可用,最好使用服務品質(QoS)機制進行保留。
根據您的需求考慮以下建議:
- 簡單設定(HA 不是主要考量): 部署為單一虛擬機(VM)的容器登錄檔可以是可行的解決方案。
- 高可用性(HA)要求: 我們建議在專用 Kubernetes 叢集中執行登錄檔。然後應配置所有其他叢集從此集中的 HA 登錄檔拉取映像。
- 非常大規模或複雜的網路拓撲: 可能需要多個登錄檔叢集。這些可以部署在分層或聯合模型中,以有效分發映像和管理流量。
確保節點已正確配置 Kubernetes
在部署節點時遵循 K8s 和 etcd 最佳實踐非常重要,包括停用 swap、仔細檢查叢集中所有機器之間是否具有完整的網路連線、為每個節點使用唯一的主機名稱、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 監控框架在擴展時為關鍵指標建立基準。