本節涵蓋設定 MySQL InnoDB 叢集時定義的常見選項。如需選項的完整清單,請參閱表格 8.1,「InnoDBCluster 的規格表」。
以下是一個使用大多數預設值的簡單範例
apiVersion: mysql.oracle.com/v2
kind: InnoDBCluster
metadata:
name: mycluster
spec:
secretName: mypwds
tlsUseSelfSigned: true
以下是具有可選變更的擴充版本
apiVersion: mysql.oracle.com/v2
kind: InnoDBCluster
metadata:
name: mycluster
spec:
secretName: mypwds
tlsUseSelfSigned: true
instances: 3
version: 9.0.0
router:
instances: 1
version: 9.0.0
datadirVolumeClaimTemplate:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 40Gi
initDB:
clone:
donorUrl: mycluster-0.mycluster-instances.another.svc.cluster.local:3306
rootUser: root
secretKeyRef:
name: mypwds
mycnf: |
[mysqld]
max_connections=162
以下說明對初始 InnoDBCluster 配置所做的每個變更。
預設情況下,Kubernetes 的 MySQL 運算子會安裝與運算子相同版本的 MySQL 伺服器,並安裝與 MySQL 伺服器相同版本的 Router。預設情況下,它也會安裝 3 個 MySQL 執行個體和 1 個 Router 執行個體。您可以選擇性地設定每一個執行個體
spec:
instances: 3
version: 9.0.0
router:
instances: 1
version: 9.0.0
設定 MySQL 執行個體的儲存配置。為了儲存 MySQL 伺服器的資料目錄 (datadir),每個 MySQL 伺服器 pod 都會使用 PersistentVolumeClaim (PVC)。每個 PVC 都遵循命名架構 datadir-{clustername}-[0-9]
。 datadirVolumeClaimTemplate
範本允許設定不同的選項,包括大小和儲存類別。例如
datadirVolumeClaimTemplate:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 40Gi
如需其他設定資訊,請參閱官方儲存:永久磁碟區文件。datadirVolumeClaimTemplate
物件設定為 x-kubernetes-preserve-unknown-fields: true
。
Kubernetes 的 MySQL 運算子目前不支援儲存調整大小。
如需使用 PersistentVolumeClaim
的相關 MySQLBackup
範例,請參閱第 7.1 節,「處理 MySQL 備份」。
您可以選擇使用 initDB 物件使用資料庫初始化 InnoDBCluster,它僅在建立 InnoDBCluster 時使用。它接受 clone
或 dump
定義。
這個簡單的 initDB clone 範例會從叢集複製遠端 MySQL 執行個體。捐贈者 MySQL 伺服器的憑證會以 'rootPassword' 金鑰儲存在目標伺服器上的 Secret 中,供 'rootUser' 使用。
initDB:
clone:
donorUrl: mycluster-0.mycluster-instances.another.svc.cluster.local:3306
rootUser: root
secretKeyRef:
name: mypwds
MySQL 伺服器在完成複製作業後重新啟動,並且在相關 pod 的重新啟動欄中會看到 "1"。複製會使用 MySQL 伺服器的 複製外掛程式,並據此運作。
如需 dump 範例 (而不是 clone),請參閱第 7.2 節,「使用 Helm 從 Dump 引導 MySQL InnoDB 叢集」。