← Back to blog

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

Category
如何在 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 的教學課程:

Preslav Dobrev

作者 · CloudSigma

留言

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