Kubernetes 聯邦

最後更新: 2021-08-28 08:15:01 +0800 +0800
原文以英文撰寫。您正在閱讀AI翻譯版本。

Kubernetes 聯邦是早期嘗試,目的是從聯邦控制平面管理跨叢集工作負載。Federation v1 已被棄用, 其以 CRD 為基礎、通常稱為 KubeFed 或 Federation v2 的後繼者,也不再是活躍的 Kubernetes 專案。 因此應將它視為歷史技術,而不是新平台的基礎。

聯邦試圖解決的問題 #

模型會註冊成員叢集,並將選定的資源傳播至這些叢集。模型旨在集中處理放置、複本分布、服務探索與設定, 同時保留獨立叢集。困難之處包括衝突處理、叢集故障、網路、身分識別、版本偏差,以及單一全域 API 可能 成為另一個可用性相依項。

原始實作使用獨立的聯邦 API 伺服器。後續工作將聯邦行為移入自訂資源與控制器,使其更容易擴充,但沒有消除 跨叢集狀態的營運複雜性。

使用目前的替代方案 #

根據問題選擇替代方案:

  • GitOps 叢集群: Argo CD ApplicationSet 與 Flux 可將應用程式呈現並協調至多個已註冊叢集。
  • 工作負載排程: Karmada 提供多叢集排程與傳播 API。
  • 叢集群管理: Open Cluster Management 提供受管理叢集的註冊、原則與放置原語。
  • 跨叢集網路: Cilium Cluster Mesh、Submariner 與服務網格的多叢集功能可處理連線;它們不會取代部署編排。

這些工具具有不同的控制平面與故障模式。不要假設選擇多叢集部署管理器也會提供全域服務探索、網路可達性或 共用身分識別。

為獨立叢集設計 #

將每個叢集視為可獨立操作的故障域。定義認證如何輪替、應用程式在控制平面中斷連線期間如何運作,以及工作負載 是在一個叢集還是多個叢集中啟用。除非資料存放區本身具備經測試的複寫與容錯移轉設計,否則偏好每個叢集各自的 持久資料。集中管理平面應改善一致性與可見性,而不應使本機復原變得不可能。

評論

在 GitHub 上閱讀或評論(發表評論需要登入)