在 Oracle Cloud Infrastructure Kubernetes Engine 上部署 WordPress 與 MySQL Database Service
利用在 Oracle Cloud Infrastructure (OCI) 上託管 WordPress 網頁和部落格的靈活性和成本效益。
- Oracle Cloud Infrastructure Kubernetes Engine ( OCI Kubernetes 引擎或 OKE) 提供可高度擴展和可用的 Wordpress 部署,無需部署或管理 Kubernetes 叢集。
- MySQL Database Service 可為您的 WordPress 應用程式提供高效能資料庫,無需佈建或管理資料庫。
- 共用保存儲存的檔案儲存服務 (WordPress 需要) 可供應用程式的所有執行處理存取,以提供高可用性。
架構
此參考架構顯示 OKE 叢集中高可用性與可擴充的 WordPress 部署。此部署使用檔案儲存服務作為永久儲存,並使用 MySQL Database 服務作為資料庫。系統會配置具有外部 IP 的負載平衡器,以提供 WordPress 應用程式的存取權。
下圖說明此參考架構。

oci-mysql-oke-wordpress-arch.png 圖解描述
oci-mysql-oke-wordpress-arch-oracle.zip
以下小節說明此參考架構:
在 OKE 叢集中,您可以選取部署的 WordPress 應用程式 Pod 數目。每個 Pod 都需要存取永久共用儲存體。為了提供儲存體,會在叢集中建立對應至檔案儲存體上 NFS 共用的儲存體類別資源。接著,永久磁碟區資源可讓叢集內的資源使用儲存體類別所提供的儲存體。建立一個持續磁碟區宣告 (PVC) 資源來指示 Pod 要利用該儲存體。PVC 對應至 WordPress 應用程式 Pod 以存取儲存。
WordPress 應用程式的資料庫使用 MySQL Database Service。MySQL Database Service 實例使用 OCI Service Operator for Kubernetes (OSOK) 定義的自訂資源從 OKE 叢集建立和管理。
MySQL Database 服務使用部署在不同可用性網域或容錯域的三個 MySQL Database 服務執行處理,以高可用性 (HA) 部署。WordPress 應用程式會連線至單一端點以讀取和寫入資料庫。發生失敗事件時,資料庫系統會自動容錯移轉至次要執行處理,而不需重新設定 WordPress 應用程式。
負載平衡器是從 OKE 叢集建立並管理為 LoadBalancer 類型的服務資源。
架構具有下列元件:
- 地區
Oracle Cloud Infrastructure 區域是一個本地化地理區域,其中包含一或多個稱為可用性網域的資料中心。區域獨立於其他區域,而廣大的距離可以將其分開 (跨國家或大陸)。
- 可用性網域
可用性網域是區域內的獨立獨立資料中心。每個可用性網域中的實體資源會與其他可用性網域中的資源隔離,以提供容錯能力。可用性網域不會共用基礎架構 (例如電源或冷卻系統) 或內部可用性網域網路。因此,一個可用性網域的故障不應影響該區域中的其他可用性網域。
- 容錯域
容錯網域是可用性網域內的一組硬體和基礎架構。每個可用性網域都有三個具有獨立電源和硬體的容錯域。當您將資源分散到多個容錯域時,您的應用程式可以容忍容錯域內的實體伺服器故障、系統維護和電源故障。
- 虛擬雲端網路 (VCN) 和子網路
VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可自訂軟體定義網路。與傳統的資料中心網路一樣,VCN 可讓您控制網路環境。VCN 可以有多個非重疊的 CIDR 區塊,您可以在建立 VCN 之後變更。您可以將 VCN 區隔成子網路,此子網路可以設定區域範圍或可用性網域。每個子網路都是由連續的位址範圍組成,這些位址不會與 VCN 中的其他子網路重疊。您可以在建立子網路後變更其大小。子網路可以是公用或專用。
- Kubernetes 引擎
Oracle Cloud Infrastructure Kubernetes Engine ( OCI Kubernetes 引擎或 OKE) 是完全託管、可擴展且高可用性的服務,可用來將容器化應用程式部署到雲端。您可以指定應用程式所需的運算資源,而 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 資料庫執行複雜的即時分析。
- 檔案儲存
Oracle Cloud Infrastructure File Storage 服務提供持久、可擴展、安全的企業級網路檔案系統。您可以從 VCN 中的任何裸機、虛擬機器或容器執行處理連線至檔案儲存服務檔案系統。您也可以使用 Oracle Cloud Infrastructure FastConnect 和 IPSec VPN,從 VCN 外部存取檔案系統。
- WordPress 內容管理系統 (CMS)
WordPress CMS 可讓您建立功能完整的部落格網站或一般用途的網站。
- 網路位址轉譯 (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
在此架構中,WordPress CMS 會將關聯式資料儲存在 Oracle MySQL Database Service 中。建議您使用最新版本。
注意事項
在 Oracle Cloud 中部署 WordPress 時,請考量下列擴充性和可用性:
- 應用程式可用性
WordPress 應用程式會在部署中部署多個 Pod,以提供高可用性。
- 我的 SQL 資料庫服務可用性和擴展性
高可用性架構中顯示的 MySQL Database 服務使用內建的 MySQL 高可用性選項,可建立三個執行處理並將其置於不同的容錯域。
部署
您無須使用 OCI 主控台或 CLI,即可從 OKE 叢集部署和管理此參考架構,並透過 Helm 圖表自動化。此參照架構的範例 Helm 圖表示範如何使用 MySQL Database System 啟動安裝 WordPress 部署,以作為部署在 OCI 中用於 HA 或非 HA 之 Kubernetes 叢集中的資料庫。您可以從 GitHub 下載程式碼,然後加以自訂以符合您的特定需求。
- 請前往 GitHub - HA 或 GitHub - non-HA 。
- 複製或下載儲存區域至您的本機電腦。
- 遵循
README
文件中的指示。