NDB Operator 9.0 手冊  /  NDB Operator 簡介

第 1 章 NDB Operator 簡介

MySQL NDB 叢集是 MySQL 的分散式版本,實作為以下三種類型的處理程序或節點的集合

  • 管理節點 (ndb_mgmd):提供組態資料

  • 資料節點 (ndbmtd):使用者資料儲存

  • SQL 節點 (mysqld):資料節點的 SQL 前端。

NDB Operator 提供以下兩種連線類型的服務

  • 使用 MGM API 的應用程式(例如 ndb_mgmndb_config)連線至 NDB 叢集管理節點。

  • MySQL 用戶端應用程式(例如 mysql)連線至 NDB 叢集 SQL 節點。

NDB Operator 目前不提供 NDB API 應用程式直接連線至 NDB 叢集資料節點的機制。這表示 NDB 公用程式(例如 ndb_select_allndb_restore)在 NDB Operator 下不受支援。

如需有關 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 會定期執行協調迴圈,如下圖所示

圖 1.1 NDB Operator 協調迴圈

Reconciliation loop in which NDB Operator monitors an NDB Cluster running in a Kubernetes cluster

每次迴圈時,Operator 會將所需的狀態(來自 Kubernetes 叢集中自訂資源的值)與目前狀態(Kubernetes 叢集中 MySQL 叢集安裝的實際狀態)進行比較。如果目前狀態和所需的狀態不符,Operator 會對 MySQL 叢集安裝進行增量變更,以使其更接近所需的狀態;如果需要,則會重複多次反覆運算,直到 MySQL 叢集達到所需的狀態為止。透過這種方式,NDB Operator 能夠監控 NDB 叢集,並確保其按預期執行。

NDB Operator 架構

圖 1.2 NDB Operator 架構

NDB Operator running an NDB Cluster in a Kubernetes cluster: Architecture