polardbx.aliyun.com/v1 PolarDBXCluster

使用 PolarDBXCluster 可以自由定义PolarDB-X 企业版集群的拓扑、规格和配置,可以支持超大规模和不同容灾等级的部署。

以下是可配置项及相关的字段的含义:

apiVersion: polardbx.aliyun.com/v1
kind: PolarDBXCluster
metadata:
  name: full
spec:
  # **Optional**
  #
  # 是否使用 DN-0 作为共享 GMS 以节省资源,默认值 false
  #
  # 不推荐在生产集群使用
  shareGMS: false

  # **Optional**
  #
  # PolarDB-X 集群所支持的 MySQL 协议版本,默认值 8.0
  # 可选值:5.7, 8.0
  protocolVersion: 8.0

  # **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 集群是否为独占规格,默认为 false
  # 本字段请在创建时确定,创建后不可修改
  exclusive: false

  # **Optional**
  #
  # PolarDB-X 主实例附属的只读实例,仅在本实例不为只读时生效
  # 当本实例创建时,根据以下信息创建出与本实例规格和参数相同的只读实例
  # 本字段不可修改,且仅在创建时有效
  initReadonly:
  - # 只读实例 CN 数
    cnReplicas: 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-2.0: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
        groups:
        - name: "group1"
          replicas: 1
          template:
            image: polardbx-cdc:latest
            hostNetwork: false
            resources:
              limits:
                cpu: 4
                memory: 8Gi
          config:
            envs:
              cluster_type: "BINLOG_X"
              binlogx_stream_group_name: "group1"

results matching ""

    No results matching ""