MySQL NDB 叢集,MySQL 的分散式版本,實作為下列三種類型的處理程序或節點的集合
NDB Operator 提供允許下列兩種連線類型的服務
使用 MGM API 的應用程式連線至 NDB 叢集管理節點,例如 ndb_mgm 和 ndb_config。
MySQL 用戶端應用程式連線至 NDB 叢集 SQL 節點,例如 mysql。
NDB Operator 目前不提供 NDB API 應用程式直接連線至 NDB 叢集資料節點的機制。這表示在 NDB Operator 下不支援 NDB 公用程式程式,例如 ndb_select_all 和 ndb_restore。
如需更多有關 NDB 叢集節點處理程序的資訊,請參閱 NDB 叢集核心概念。另請參閱 NDB 叢集程式。
在 Kubernetes 叢集中部署 MySQL 叢集需要將這些節點排程到不同的 Pod 上,使用多個工作負載資源,以及花時間和精力來選擇和建立正確類型的工作負載資源,並在組態中充分利用 NDB 叢集和 Kubernetes 叢集中的冗餘和容錯功能。
NDB Operator 是 MySQL NDB 叢集的 Kubernetes Operator,旨在簡化在 Kubernetes 叢集中部署和管理 MySQL 叢集的任務。Kubernetes Operator 是具有另一個應用程式操作知識的應用程式。它可以部署在 Kubernetes 叢集內,之後可以開始監控它們感興趣的端點,並變更所管理的應用程式。NDB Operator 使得可以以最少的人為干預來部署、管理和變更 NDB 叢集。
為了表示 NDB 叢集,我們在 Kubernetes 叢集中定義 Ndb 自訂資源定義 (CRD)。現在可以在 Kubernetes 叢集中建立一種 Ndb 的自訂物件,表示要部署的所需 NDB 叢集設定的組態。NDB Operator 會監看此類自訂物件的任何變更,並根據此物件的變更,在 Kubernetes 叢集中部署和維護 NDB 叢集節點。
每當 Ndb 自訂資源發生變更時,NDB Operator 會定期執行協調迴圈,如下圖所示
每次執行迴圈時,Operator 會將所需狀態 (Kubernetes 叢集中自訂資源中的值) 與目前狀態 (Kubernetes 叢集中 MySQL 叢集安裝的實際狀態) 進行比較。如果目前狀態和所需狀態不符,Operator 會對 MySQL 叢集安裝進行增量變更,使其更接近所需狀態;如果且有必要,則在多次迭代中重複此操作,直到 MySQL 叢集達到所需狀態。透過這種方式,NDB Operator 可以監控 NDB 叢集,並確保其如預期般執行。
NDB Operator 架構

