cnpg-skill
Installation
SKILL.md
CloudNativePG (CNPG) 部署技能
本技能提供在 Kubernetes 上部署 CloudNativePG (CNPG) 的標準化流程與最佳實作。CloudNativePG 是一個開源的 Postgres Operator,旨在管理 Kubernetes 上的 PostgreSQL 負載。
核心流程
1. 安裝 CloudNativePG Operator
當需要安裝 Operator 時,請執行以下步驟:
- 建立
cnpg-system命名空間(如果不存在)。 - 部署 CloudNativePG Operator 的官方 YAML。
推薦指令:
kubectl apply -f https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/main/releases/cnpg-1.24.0.yaml
(注意:版本號應根據目前的最新穩定版進行調整。)
2. 驗證 Operator 狀態
在建立 Cluster 之前,必須確認 Operator 已正確執行:
kubectl get deployment -n cnpg-system cnpg-controller-manager
3. 部署 CloudNativePG Cluster (最佳實作)
根據使用者的需求,建立名為 mycnpg 的叢集。此配置包含 2 個執行個體(1 Primary + 1 Replica)以提供基本的高可用性,並使用叢集內的 storageClass 建立 50Gi 的磁碟。
Cluster Manifest Template:
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: mycnpg
spec:
instances: 2
imageName: ghcr.io/cloudnative-pg/postgresql:16
storage:
size: 50Gi
bootstrap:
initdb:
database: cnpg
owner: bigred
secret:
name: cnpg-bigred
使用指南
- 安裝 Operator:當使用者要求「安裝 cnpg」、「安裝 operator」時,請執行步驟 1。
- 建立 Cluster:當使用者要求「建立 cluster」、「部署 postgres」時,請先確認步驟 2 已通過,再執行步驟 3。
- 命名規範:叢集名稱預設為
mycnpg,執行個體數量為 2。 - 存儲配置:自動使用叢集預設的
storageClass,大小設定為 50Gi。 - 資料庫初始化:資料庫為
cnpg,擁有者為bigred,密鑰名稱為cnpg-bigred。
檢查點
- 確認
cnpg-systemnamespace 存在。 - 確認
cnpg-controller-managerpod 狀態為 Running。 - 確認
cnpg-bigredsecret 在部署 Cluster 前已存在或已規劃建立。
Related skills