290 lines
7.9 KiB
Markdown
290 lines
7.9 KiB
Markdown
# polardbx.aliyun.com/v1 PolarDBXCluster
|
||
|
||
使用 PolarDBXCluster 可以自由定义集群的拓扑、规格和配置,可以支持超大规模和不同容灾等级的部署。
|
||
|
||
以下是可配置项及相关的字段的含义:
|
||
|
||
```yaml
|
||
apiVersion: polardbx.aliyun.com/v1
|
||
kind: PolarDBXCluster
|
||
metadata:
|
||
name: full
|
||
spec:
|
||
# **Optional**
|
||
#
|
||
# 是否使用 DN-0 作为共享 GMS 以节省资源,默认值 false
|
||
#
|
||
# 不推荐在生产集群使用
|
||
shareGMS: false
|
||
|
||
# **Optional**
|
||
#
|
||
# PolarDB-X 集群所支持的 MySQL 协议版本,默认值 5.7
|
||
# 可选值:5.7, 8.0
|
||
protocolVersion: 5.7
|
||
|
||
# **Optional**
|
||
#
|
||
# PolarDB-X 集群在 Kubernetes 内对外暴露的服务名,默认为 .metadata.name
|
||
serviceName: full
|
||
|
||
# **Optional**
|
||
#
|
||
# PolarDB-X 集群在 Kubernetes 内对外暴露的服务类型,默认为 ClusterIP
|
||
# 可选值参考 Service 的类型
|
||
#
|
||
# 注:云上的 Kubernetes 集群可使用 LoadBalancer 来绑定 LB
|
||
serviceType: LoadBalancer
|
||
|
||
# **Optional**
|
||
#
|
||
# PolarDB-X 集群是否为只读实例,默认为 false
|
||
readonly: false
|
||
|
||
# **Optional**
|
||
#
|
||
# PolarDB-X 只读实例所属主实例的名称,默认为空
|
||
# 当本实例不为只读实例时,此字段无效
|
||
primaryCluster: pxc-master
|
||
|
||
# **Optional**
|
||
#
|
||
# PolarDB-X 主实例附属的只读实例,仅在本实例不为只读时生效
|
||
# 当本实例创建时,根据以下信息创建出与本实例规格和参数相同的只读实例
|
||
# 本字段不可修改,且仅在创建时有效
|
||
initReadonly:
|
||
- # 只读实例 CN 数
|
||
cnRepilcas: 1
|
||
# **Optional**
|
||
#
|
||
# 只读实例后缀名,不填则会生成随机后缀
|
||
name: readonly
|
||
# **Optional**
|
||
#
|
||
# 只读实例参数
|
||
extraParams:
|
||
AttendHtap: "true"
|
||
|
||
# **Optional**
|
||
#
|
||
# PolarDB-X 集群安全配置
|
||
security:
|
||
# **Optional**
|
||
#
|
||
# TLS 相关配置,暂不生效
|
||
tls:
|
||
secretName: tls-secret
|
||
# **Optional**
|
||
#
|
||
# 指定用于编码内部密码的 key,引用指定 Secret 的 key
|
||
encodeKey:
|
||
name: ek-secret
|
||
key: key
|
||
|
||
# *Optional**
|
||
#
|
||
# PolarDB-X 初始账号配置
|
||
privileges:
|
||
- username: admin
|
||
password: "123456"
|
||
type: SUPER
|
||
|
||
# PolarDB-X 集群配置
|
||
config:
|
||
# CN 相关配置
|
||
cn:
|
||
# 静态配置,修改会导致 CN 集群重建
|
||
static:
|
||
# 启用协程, OpenJDK 暂不支持,需使用 dragonwell
|
||
EnableCoroutine: false
|
||
# 启用备库一致读
|
||
EnableReplicaRead: false
|
||
# 启用 JVM 的远程调试
|
||
EnableJvmRemoteDebug: false
|
||
# 自定义 CN 静态配置,key-value 结构
|
||
ServerProperties:
|
||
processors: 8
|
||
# 是否在该(只读)实例 CN 上开启 MPP 能力,主实例 CN 默认开启
|
||
# 当该参数开启时,该实例会参与多机并行(MPP),同时分担主实例的读流量,反之则不参与
|
||
AttendHtap: false
|
||
# 动态配置,修改并 apply 会由 operator 自动推送,key-value 结构
|
||
dynamic:
|
||
CONN_POOL_IDLE_TIMEOUT: 30
|
||
# DN 相关配置
|
||
dn:
|
||
# DN my.cnf 配置,覆盖模板部分
|
||
mycnfOverwrite: |-
|
||
loose_binlog_checksum: crc32
|
||
# DN 日志清理间隔
|
||
logPurgeInterval: 5m
|
||
# 日志与数据分离存储
|
||
logDataSeparation: false
|
||
|
||
# PolarDB-X 集群拓扑
|
||
topology:
|
||
# 集群使用的镜像版本 (tag),默认为空(由 operator 指定)
|
||
version: v1.0
|
||
|
||
# 集群部署规则
|
||
rules:
|
||
# 预定义节点选择器
|
||
selectors:
|
||
- name: zone-a
|
||
nodeSelector:
|
||
nodeSelectorTerms:
|
||
- matchExpressions:
|
||
- key: topology.kubernetes.io/zone
|
||
operator: In
|
||
values:
|
||
- cn-hangzhou-a
|
||
- name: zone-b
|
||
nodeSelector:
|
||
nodeSelectorTerms:
|
||
- matchExpressions:
|
||
- key: topology.kubernetes.io/zone
|
||
operator: In
|
||
values:
|
||
- cn-hangzhou-b
|
||
- name: zone-c
|
||
nodeSelector:
|
||
nodeSelectorTerms:
|
||
- matchExpressions:
|
||
- key: topology.kubernetes.io/zone
|
||
operator: In
|
||
values:
|
||
- cn-hangzhou-c
|
||
components:
|
||
# **Optional**
|
||
#
|
||
# GMS 部署规则,默认和 DN 一致
|
||
gms:
|
||
# 堆叠部署结构,operator 尝试在节点选择器指定的节点中,堆叠部署
|
||
# 每个存储节点的子节点以达到较高资源利用率的方式,仅供测试使用
|
||
rolling:
|
||
replicas: 3
|
||
selector:
|
||
reference: zone-a
|
||
# 节点组部署结构,可以指定每个 DN 的子节点的节点组和节点选择器,
|
||
# 从而达成跨区、跨城等高可用部署结构
|
||
nodeSets:
|
||
- name: cand-zone-a
|
||
role: Candidate
|
||
replicas: 1
|
||
selector:
|
||
reference: zone-a
|
||
- name: cand-zone-b
|
||
role: Candidate
|
||
replicas: 1
|
||
selector:
|
||
reference: zone-b
|
||
- name: log-zone-c
|
||
role: Voter
|
||
replicas: 1
|
||
selector:
|
||
reference: zone-c
|
||
|
||
# **Optional**
|
||
#
|
||
# DN 部署规则,默认为 3 节点,所有节点可部署
|
||
dn:
|
||
nodeSets:
|
||
- name: cands
|
||
role: Candidate
|
||
replicas: 2
|
||
- name: log
|
||
role: Voter
|
||
replicas: 1
|
||
|
||
# **Optional**
|
||
#
|
||
# CN 部署规则,同样按组划分 CN 节点
|
||
cn:
|
||
- name: zone-a
|
||
# 合法值:数字、百分比、(0, 1] 分数,不填写为剩余 replica(只能有一个不填写)
|
||
# 总和不能超过 .topology.nodes.cn.replicas
|
||
replicas: 1
|
||
selector:
|
||
reference: zone-a
|
||
- name: zone-b
|
||
replicas: 1 / 3
|
||
selector:
|
||
reference: zone-b
|
||
- name: zone-c
|
||
replicas: 34%
|
||
selector:
|
||
reference: zone-c
|
||
|
||
# **Optional**
|
||
#
|
||
# CDC 部署规则,同 CN
|
||
cdc:
|
||
- name: half
|
||
replicas: 50%
|
||
selector:
|
||
reference: zone-a
|
||
- name: half
|
||
# 带 + 表示向上取整
|
||
replicas: 50%+
|
||
selector:
|
||
reference: zone-b
|
||
|
||
nodes:
|
||
# **Optional**
|
||
#
|
||
# GMS 规格配置,默认和 DN 相同
|
||
gms:
|
||
template:
|
||
# 存储节点引擎,默认 galaxy
|
||
engine: galaxy
|
||
# 存储节点镜像,默认由 operator 指定
|
||
image: polardbx-engine:latest
|
||
# 存储节点 Service 类型,默认为 ClusterIP
|
||
serviceType: ClusterIP
|
||
# 存储节点 Pod 是否适用宿主机网络,默认为 true
|
||
hostNetwork: true
|
||
# 存储节点磁盘空间限制,不填写无限制(软限制)
|
||
diskQuota: 10Gi
|
||
# 存储节点子节点使用的资源,默认为 4c8g
|
||
resources:
|
||
limits:
|
||
cpu: 4
|
||
memory: 8Gi
|
||
|
||
# **Optional**
|
||
#
|
||
# DN 规格配置
|
||
dn:
|
||
# DN 数量配置,默认为 2
|
||
replicas: 2
|
||
template:
|
||
resources:
|
||
limits:
|
||
cpu: 4
|
||
memory: 8Gi
|
||
# IO 相关限制,支持 BPS 和 IOPS 限制
|
||
limits.io:
|
||
iops: 1000
|
||
bps: 10Mi
|
||
|
||
# CN 规格配置,参数解释同 DN
|
||
cn:
|
||
replicas: 3
|
||
template:
|
||
image: polardbx-sql:latest
|
||
hostNetwork: false
|
||
resources:
|
||
limits:
|
||
cpu: 4
|
||
memory: 8Gi
|
||
|
||
# CDC 规格配置,参数解释同 CN,可不配置代表不启动 CDC 能力
|
||
cdc:
|
||
replicas: 2
|
||
template:
|
||
image: polardbx-cdc:latest
|
||
hostNetwork: false
|
||
resources:
|
||
limits:
|
||
cpu: 4
|
||
memory: 8Gi
|
||
``` |