返回部落格

如何在 Kubernetes 叢集上使用 Persistent Volume 部署 WordPress

如何在 Kubernetes 叢集上使用 Persistent Volume 部署 WordPress

WordPress 是最受歡迎的內容管理系統之一,用於在網際網路上部署部落格和網站。它也可以作為 Docker 映像檔,位於 DockerHub 登錄檔中。您可以使用此 Docker 映像檔在 Kubernetes 叢集上建立可靠且具擴充性的網站平台。在 Kubernetes 上部署 WordPress 將有助於您實作 CI/CD 管線,並縮短發布新更新所需的時間。您還可以啟用 WordPress 網站的水平擴充,以因應網站流量的激增。

本指南將向您展示如何部署 WordPress 和 MySQL,並在 Kubernetes 叢集上使用 Persistent Volume

先決條件

驗證 Kubernetes 叢集

在開始之前,建議先驗證 Kubernetes 叢集的狀態。您可以使用 kubectl 指令來驗證 Kubernetes。

如果一切正常,您應該會得到以下輸出。

k8s nodes

為 MySQL 建立 Secret

一個 Secret 是一個允許您儲存敏感資料(如密碼或金鑰)的物件。在本文中,我們將使用 Secret 來儲存 MySQL 密碼。

首先,建立一個 base64 編碼的密碼,使用以下指令。

您將在以下輸出中得到您的加密密碼。

接下來,建立一個 secret.yaml 檔案用於 MySQL 和 WordPress。

新增以下設定。

儲存並關閉檔案。然後,使用以下指令將上述設定套用到 Kubernetes 叢集。

您將得到以下輸出。

為 MySQL 和 WordPress 建立 PersistentVolume

您還需要建立一個 PersistentVolume 來儲存 MySQL 和 WordPress 的資料。

讓我們建立一個 pvc-mysql-wp.yaml 檔案。

新增以下設定。

完成後儲存並關閉檔案。

接下來,使用以下指令在 Kubernetes 叢集上為 MySQL 和 WordPress 建立 PersistentVolume。

您應該會在以下輸出中看到這兩個 PersistentVolume。

您現在可以使用以下指令驗證這兩個 PersistentVolume。

您應該會看到以下輸出。

建立 MySQL 部署

接下來,建立一個 MySQL 部署設定檔以下載 MySQL Docker 映像檔、建立容器並將 PersistentVolume 掛載於 /var/lib/mysql.

新增以下設定。

完成後儲存並關閉檔案。然後,將上述設定部署到 Kubernetes 叢集。

您應該會看到以下輸出。

Mysql Dep

您可以使用以下命令驗證 MySQL 部署。

您應該會在以下輸出中看到 MySQL 部署的狀態。

check deployments

建立 WordPress 部署

現在,建立一個 WordPress 部署設定檔案以下載 WordPress 映像檔、建立容器,並將 PersistentVolume 掛載於 /var/www/html 以存放網站資料檔案。此檔案也將建立 WORDPRESS_DB_HOSTWORDPRESS_DB_PASSWORD 環境變數以存取資料庫。

新增以下設定。

完成後儲存檔案。然後,使用以下命令將上述配置套用到 Kubernetes 叢集。

您應該會在以下輸出中看到部署成功的訊息。

若要驗證 WordPress 部署,請執行以下命令。

您應該會在以下輸出中看到 WordPress 部署的狀態。

get deployments

存取 WordPress Web UI

若要存取 WordPress 儀表板,您需要 LoadBalancer 的外部 IP 和連接埠號碼。您可以使用以下命令獲取此資訊。

您將在以下輸出中取得 LoadBalancer 的 IP 和連接埠。

若要獲取有關 WordPress Pod 的詳細資訊,請執行以下命令。

您應該會在以下輸出中獲得 WordPress 的詳細資訊。

現在,打開您的網頁瀏覽器並使用以下 URL 存取 WordPress 安裝頁面: http://78.141.194.181:3162。您應該會在以下畫面中看到 WordPress 安裝頁面。

Configure wordpress

選擇您的語言並完成所需的步驟以完成安裝程序。

結論

在這篇文章中,我們說明了如何在 Kubernetes 叢集上部署具有永續磁碟卷的 MySQL 和 WordPress。您還可以根據網站流量來調整 WordPress 部署的規模。現在,您可以根據您的開發需求來使用上述部署。

此外,您可以查看我們部落格上其他專注於 Docker 和 Kubernetes 的教學課程:

author

Preslav Dobrev

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的創意設計師,專注於透過傳統與創新行銷渠道建立一致的企業形象。他擅長將藝術願景與策略行銷相融合,創造具有影響力的品牌敘事。

留言

目前尚無留言。成為第一個留言的人吧。