在 Oracle Cloud Infrastructure Kubernetes Engine 叢集中部署高可用性 MySQL Database 系統
Oracle MySQL Database Service 是部署在 Oracle Cloud Infrastructure (OCI) 內的完全受管理資料庫服務,可支援想要快速部署安全雲端原生應用程式的操作員和開發人員。您可以使用 Kubernetes (OSOK) 的 OCI Service 操作員,為部署在 Oracle Cloud Infrastructure Kubernetes Engine 叢集 ( OCI Kubernetes Engine 或 OKE) 叢集中高可用性 MySQL Database 系統中的應用程式佈建和管理 MySQL Database 系統。
使用 OSOK 可為 OKE 管理員簡化 MySQL Database 系統的管理,並允許使用 Kubernetes 套裝程式管理工具 Helm,將 MySQL Database 系統執行處理與應用程式一起部署。
架構
此參照架構顯示部署在 OKE 叢集中的應用程式,其資料庫使用高可用性 MySQL Database 系統。MySQL Database 系統是使用 OSOK 從 OKE 叢集完全部署和管理。
OSOK 可讓 MySQL Database 系統像使用標準 Kubernetes CLI - kubectl 的任何其他 Kubernetes 資源一樣進行管理,方法是將 MySQL Database 系統建立為自訂資源定義 (CRD) 模型,並將這些定義套用至 OKE 叢集。
MySQL Database 系統可部署為獨立系統或具有高可用性 (HA)。啟用 HA 的 MySQL Database 系統包含三個部署在不同可用性網域或容錯域的執行處理。應用程式會連線至單一端點,以讀取和寫入資料庫。發生失敗事件時,資料庫系統會自動容錯移轉至次要執行處理,而不會重新設定應用程式。
下圖說明此參考架構。

oci-mysql-oke-ha-arch.png 圖解描述
oci-mysql-oke-ha-arch-oracle.zip
架構具有下列元件:
- 地區
Oracle Cloud Infrastructure 區域是一個本地化地理區域,其中包含一或多個稱為可用性網域的資料中心。區域獨立於其他區域,而廣大的距離可以將其分開 (跨國家或大陸)。
- 可用性網域
可用性網域是區域內的獨立獨立資料中心。每個可用性網域中的實體資源會與其他可用性網域中的資源隔離,以提供容錯能力。可用性網域不會共用基礎架構 (例如電源或冷卻系統) 或內部可用性網域網路。因此,一個可用性網域的故障不應影響該區域中的其他可用性網域。
- 容錯域
容錯網域是可用性網域內的一組硬體和基礎架構。每個可用性網域都有三個具有獨立電源和硬體的容錯域。當您將資源分散到多個容錯域時,您的應用程式可以容忍容錯域內的實體伺服器故障、系統維護和電源故障。
- 虛擬雲端網路 (VCN) 和子網路
VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可自訂軟體定義網路。與傳統的資料中心網路一樣,VCN 可讓您控制網路環境。VCN 可以有多個非重疊的 CIDR 區塊,您可以在建立 VCN 之後變更。您可以將 VCN 區隔成子網路,此子網路可以設定區域範圍或可用性網域。每個子網路都是由連續的位址範圍組成,這些位址不會與 VCN 中的其他子網路重疊。您可以在建立子網路後變更其大小。子網路可以是公用或專用。
- OCI Kubernetes 引擎
Oracle Cloud Infrastructure Kubernetes Engine (Kubernetes 引擎或確定 ) 是完全託管、可擴展且高可用性的服務,可用來將容器化應用程式部署到雲端。您可以指定應用程式所需的運算資源,而 Kubernetes 引擎則會在現有租用戶的 Oracle Cloud Infrastructure 上佈建這些資源。OKE 使用 Kubernetes 將跨主機叢集的容器化應用程式部署、調整規模及管理自動化。
- Oracle MySQL Database Service
Oracle MySQL Database Service 是完全託管的 Oracle Cloud Infrastructure (OCI) 資料庫服務,可讓開發人員快速開發及部署安全的雲端原生應用程式。Oracle MySQL Database Service 是 OCI 和 MySQL 工程團隊所建置、管理和支援的 100%,專為 OCI 所提供和獨家提供。
Oracle MySQL Database Service 具有整合式高效能分析引擎 (HeatWave),可直接對作業 MySQL 資料庫執行複雜的即時分析。
- 網路位址轉譯 (NAT) 閘道
NAT 閘道可讓 VCN 中的專用資源存取網際網路上的主機,而無須向內送網際網路連線公開這些資源。
- 服務閘道
服務閘道可讓您從 VCN 存取其他服務,例如 Oracle Cloud Infrastructure Object Storage 。從 VCN 到 Oracle 服務的流量會透過 Oracle 網路結構傳送,不會周遊網際網路。
- 登錄
Oracle Cloud Infrastructure Registry 是 Oracle 管理的登錄檔,可讓您簡化開發到生產的工作流程。「登錄」可讓您輕鬆儲存、共用及管理開發使用者自建物件,例如 Docker 映像檔。Oracle Cloud Infrastructure 的高可用性且可擴展的架構可確保您能夠可靠地部署和管理應用程式。
- 負載平衡器
Oracle Cloud Infrastructure Load Balancing 服務提供從單一進入點到後端多部伺服器的自動流量分配。
- 路由表
虛擬路由表包含將流量從子網路路由到 VCN 外部目的地 (通常是透過閘道) 的規則。
- 安全清單
您可以為每個子網路建立安全規則,以指定必須允許進出子網路的來源、目的地和流量類型。
建議
- VCN
建立 VCN 時,請根據您計畫附加到 VCN 子網路的資源數量,決定所需的 CIDR 區塊數量和每個區塊的大小。請使用標準專用 IP 位址空間內的 CIDR 區塊。
選取未與您要設定專用連線的任何其他網路重疊的 CIDR 區塊 (在 Oracle Cloud Infrastructure 中、您的內部部署資料中心或其他雲端提供者)。
建立 VCN 之後,您可以變更、新增及移除其 CIDR 區塊。
當您設計子網路時,請考慮流量和安全需求。將特定層或角色中的所有資源附加至相同的子網路,作為安全界限。
- 負載平衡器頻寬
建立負載平衡器時,您可以選取提供固定頻寬的預先定義資源配置,或指定自訂 (彈性) 資源配置,以便在其中設定頻寬範圍,並讓服務根據流量模式自動調整頻寬。只要採用任一方式,您就可以在建立負載平衡器之後隨時變更資源配置。
- 安全清單
使用安全清單定義適用於整個子網路的傳入和傳出規則。
- Oracle MySQL Database Service
在此架構中,應用程式會將關聯式資料儲存在 Oracle MySQL Database Service 中。建議您使用最新版本。
注意事項
在 Oracle Cloud 中部署應用程式時,請考慮使用這些選項。
- 應用程式可用性
應用程式會在部署中部署多個 Pod,以提供高可用性。
- 我的 SQL 資料庫服務可用性和擴展性
高可用性架構中顯示的 MySQL Database 服務使用內建的 MySQL 高可用性選項,可建立三個執行處理並將其置於不同的容錯域。
- 安全
使用限制誰能夠存取可用 OCI 資源的原則。OKE 已與 OCI Identity and Access Management (IAM) 整合。IAM 透過原生 OCI 識別功能提供簡易的認證。
部署
您無須使用 OCI 主控台或 CLI,即可從 OKE 叢集部署和管理此參考架構,並透過 Helm 圖表自動化。此參考架構的範例 Helm Chart 可讓您從部署在 OCI 中的 Kubernetes 叢集輕鬆建立及管理 MySQL Database System。您可以從 GitHub 下載程式碼,然後加以自訂以符合您的特定需求。
- 移至 GitHub 。
- 複製或下載儲存區域至您的本機電腦。
- 遵循
README
文件中的指示。