本节介绍在设置 MySQL InnoDB 集群时定义的常用选项。有关选项的完整列表,请参见 表 8.1,"InnoDBCluster 的 Spec 表".
以下是一个使用大多数默认值的简单示例
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 配置所做的每个更改的说明。
默认情况下,MySQL Kubernetes 运算符会安装与运算符相同版本的 MySQL 服务器,并安装与 MySQL 服务器相同版本的路由器。默认情况下,它还会安装 3 个 MySQL 实例和 1 个路由器实例。可选择配置每个
spec:
instances: 3
version: 9.0.0
router:
instances: 1
version: 9.0.0
设置 MySQL 实例的存储配置。为了存储 MySQL 服务器的数据目录 (datadir),每个 MySQL 服务器 Pod 都使用一个持久卷声明 (PVC)。每个 PVC 遵循命名方案 datadir-{clustername}-[0-9]
。一个 datadirVolumeClaimTemplate
模板允许设置不同的选项,包括大小和存储类。例如
datadirVolumeClaimTemplate:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 40Gi
有关其他配置信息,请参见官方 存储:持久卷 文档。 datadirVolumeClaimTemplate
对象设置为 x-kubernetes-preserve-unknown-fields: true
。
MySQL Kubernetes 运算符当前不支持存储大小调整。
有关使用 PersistentVolumeClaim
的相关 MySQLBackup
示例,请参见 第 7.1 节,"处理 MySQL 备份".
可选择使用 initDB 对象来初始化 InnoDBCluster,该对象仅在创建 InnoDBCluster 时使用。它接受 clone
或 dump
定义。
此简单的 initDB clone 示例从集群中克隆一个远程 MySQL 实例。捐赠者 MySQL 服务器的凭据存储在目标服务器上的一个 Secret 中,其中包含用于 "rootUser" 的 "rootPassword" 密钥。
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 从转储文件引导 MySQL InnoDB 集群".