values.yaml 覆寫預設設定的實務技巧。如果要手動部署一套具備生產級別可用性的 WordPress 網站,我們總共需要撰寫:
這往往需要撰寫超過上百行的 YAML 檔,且容易在密碼串接或儲存掛載時發生拼字錯誤。
今天我們將透過 Helm 官方社群維護的 Bitnami WordPress Chart,示範如何透過一份簡潔的自訂參數檔,在幾十秒內自動完成所有底層物件的編排與關聯!
當我們安裝 WordPress Chart 時,Helm 會在背後自動幫我們產生以下元件:
| 元件名稱 | 資源類型 | 職責與配置 |
|---|---|---|
| WordPress Web | Deployment | 運行 WordPress PHP 核心與 Apache 伺服器 |
| WordPress Data | PVC | 持久化儲存使用者上傳的外掛、主題與媒體檔案 |
| WordPress Service | Service (NodePort) | 提供本機存取 WordPress 前台與後台的網路入口 |
| MariaDB / MySQL | StatefulSet | 運行關聯式資料庫,儲存文章、設定與會員帳號 |
| Database Data | PVC | 持久化儲存資料庫實體數據檔(重啟不遺失資料) |
| App Secrets | Secret | 存放資料庫連線密碼與 WordPress 管理員憑證 |
custom-values.yaml我們不需要改動 Chart 的原始碼,只需建立一個 custom-values.yaml 檔案,覆寫我們想要客製化的參數:
# WordPress 應用程式設定
wordpressUsername: admin
wordpressPassword: MyStrongAdminPassword2026
wordpressEmail: user@example.com
wordpressFirstName: Central
wordpressLastName: Admin
# 服務暴露型態 (在 Minikube 使用 NodePort)
service:
type: NodePort
nodePorts:
http: "30080"
# WordPress 檔案持久化設定
persistence:
enabled: true
size: 2Gi
# 關聯的 MariaDB 資料庫設定
mariadb:
enabled: true
auth:
rootPassword: RootDBSecretPassword2026
database: bitnami_wordpress
username: bn_wordpress
password: UserDBSecretPassword2026
primary:
persistence:
enabled: true
size: 3Gi
使用剛剛建立的 custom-values.yaml 進行一鍵安裝:
helm install my-blog bitnami/wordpress -f custom-values.yaml
輸出預期:
NAME: my-blog
LAST DEPLOYED: ...
NAMESPACE: default
STATUS: deployed
REVISION: 1
在終端機檢查所有自動生成的資源:
# 檢查 Pods (WordPress 與 MariaDB)
kubectl get pods
# 檢查 PVC (確認 2 顆持久化硬碟皆已 Bound)
kubectl get pvc
# 檢查 Secrets (確認機密資料已自動生成)
kubectl get secrets
小提醒:由於需要從遠端下載 WordPress 與 MariaDB 的映像檔並進行資料庫初始化,初次啟動大約需要 1 至 2 分鐘,直到兩個 Pod 狀態皆顯示為 Running。
在 Minikube 中,取得 WordPress 的連線網址:
minikube service my-blog-wordpress --url
打開瀏覽器輸入輸出的網址(或訪問 http://$(minikube ip):30080):
/wp-admin,輸入我們在 custom-values.yaml 中設定的帳號 admin 與密碼 MyStrongAdminPassword2026,即可成功登入後台!kubectl delete pod -l app.kubernetes.io/name=wordpress
kubectl delete pod -l app.kubernetes.io/name=mariadb
恭喜順利完成第三週共 21 天的挑戰!
在這 7 天裡,我們攻克了 Kubernetes 最具技術門檻的「有狀態與儲存架構」:
進入最後一週(第四週:維運、監控與雲端生態),我們將把重心轉移到軟體上線後的關鍵維運課題:健康檢查探針、自動擴縮容、監控告警與 CI/CD GitOps。
明天 Day 22,我們將學習 Pod 的自我健康體檢機制:「Pod 的體檢機制:Liveness, Readiness, Startup Probes 探針實務」!