本节介绍在设置 MySQL InnoDB 集群时定义的常见选项。有关选项的完整列表,请参阅 表 7.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: 8.0.31
router:
instances: 1
version: 8.0.31
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 Operator for Kubernetes 默认安装与 Operator 同版本的 MySQL Server,并安装与 MySQL Server 同版本的 Router。它还默认安装 3 个 MySQL 实例和 1 个 Router 实例。可选择配置每个:
spec:
instances: 3
version: 8.0.31
router:
instances: 1
version: 8.0.31
设置 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
为
。
MySQL Operator for Kubernetes 目前不支持调整存储大小。
有关使用 的相关MySQLBackup
示例PersistentVolumeClaim
,请参阅
第 6.1 节,“处理 MySQL 备份”。
可选择使用initDB对象
使用数据库初始化
InnoDBCluster
;它仅在创建 InnoDBCluster 时使用。它接受clone
或dump
定义。
这个简单的 initDB克隆示例从集群中克隆了一个远程 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 服务器的 The Clone Plugin并相应地运行。
有关转储示例(而不是 clone),请参阅 第 6.2 节,“使用 Helm 从转储引导 MySQL InnoDB 集群”。