如何使用Kubernetes Cluster API和ArgoCD建立和管理多個Kubernetes叢集 - Piotr

banq發表於2022-01-25

在本文中,您將學習如何使用 Kubernetes Cluster API 和 ArgoCD 建立和管理多個 Kubernetes 叢集。我們將使用 Kind 建立一個本地叢集。在該叢集上,我們將配置其他 Kubernetes 叢集的建立過程。為了自動執行該過程,我們將使用 ArgoCD。多虧了它,我們可以從單個 Git 儲存庫處理整個過程。

您聽說過一個名為Kubernetes Cluster API的專案嗎?它提供宣告式 API 和工具來簡化配置、升級和管理多個 Kubernetes 叢集。事實上,這是一個非常有趣的概念。我們正在建立一個管理其他叢集生命週期的 Kubernetes 叢集。在這個叢集上,我們正在安裝叢集 API。然後我們只是通過建立叢集 API 物件來定義新的工作負載叢集。看起來很簡單?就是這樣。

 

Cluster API提供了一套擴充套件Kubernetes API的CRD。它們中的每一個都代表了對Kubernetes叢集安裝的定製。我不會深入瞭解這些細節。但是,如果你有興趣,你可以在這裡閱讀更多關於它的資訊。對我們來說最重要的是,它提供了一個CLI來處理叢集API管理叢集的生命週期。此外,它允許在多個基礎設施上建立叢集,包括AWS、GCP或Azure。然而,今天我們要在本地的Docker和Kind上執行整個基礎設施。由於Kubernetes Cluster API支援Docker,所以也可以使用它。

我們將使用Cluster API CLI只是為了初始化管理叢集和生成YAML模板。整個過程將由安裝在管理叢集上的ArgoCD來管理。Argo CD完全適合我們的方案,因為它支援多叢集。安裝在一個叢集上的例項可以管理許多能夠連線的其他叢集。

最後,今天使用的最後一個工具 -  Kind.。多虧了它,我們可以使用Docker容器節點在同一臺機器上執行多個Kubernetes叢集。

讓我們來看看本文中描述的解決方案的架構

 

下面是我們的架構圖。整個基礎設施在本地的Docker上執行。我們在管理叢集上安裝Kubernetes Cluster API和ArgoCD。然後,使用這兩個工具,我們正在建立帶有Kind的新叢集。之後,我們將把一些Kubernetes物件應用到工作負載叢集(c1,c2)中,如名稱空間Namespace、資源配額ResourceQuota 或角色繫結RoleBinding。當然,整個過程是由Argo CD例項管理的,配置儲存在Git倉庫中。

如何使用Kubernetes Cluster API和ArgoCD建立和管理多個Kubernetes叢集 - Piotr

原始碼

如果您想自己嘗試一下,可以隨時檢視我的原始碼。為此,您需要克隆我的 GitHub 儲存庫

詳細點選標題

 

相關文章