在 Kubernetes 上部署 TiFlash

本文介绍如何在 Kubernetes 上部署 TiFlash。

前置条件

  • TiDB Operator 部署完成。

全新部署 TiDB 集群同时部署 TiFlash

参考 在标准 Kubernetes 上部署 TiDB 集群进行部署。

在现有 TiDB 集群上新增 TiFlash 组件

编辑 TidbCluster Custom Resource:

kubectl edit tc ${cluster_name} -n ${namespace}

按照如下示例增加 TiFlash 配置:

spec:
  tiflash:
    baseImage: pingcap/tiflash
    maxFailoverCount: 3
    replicas: 1
    storageClaims:
    - resources:
        requests:
          storage: 100Gi
      storageClassName: local-storage

值得注意的是,如果需要部署企业版的 TiFlash,需要将 db.yaml 中 spec.tiflash.baseImage 配置为企业版镜像,格式为 pingcap/tiflash-enterprise

例如:

spec:
  tiflash:
    baseImage: pingcap/tiflash-enterprise

TiFlash 支持挂载多个 PV,如果要为 TiFlash 配置多个 PV,可以在 tiflash.storageClaims 下面配置多项,每一项可以分别配置 storage reqeuststorageClassName,例如:

  tiflash:
    baseImage: pingcap/tiflash
    maxFailoverCount: 3
    replicas: 1
    storageClaims:
    - resources:
        requests:
          storage: 100Gi
      storageClassName: local-storage
    - resources:
        requests:
          storage: 100Gi
      storageClassName: local-storage

警告:

由于 TiDB Operator 会按照 storageClaims 列表中的配置按顺序自动挂载 PV,如果需要为 TiFlash 增加磁盘,请确保只在列表原有配置最后添加,并且不能修改列表中原有配置的顺序。

新增部署 TiFlash 需要 PD 配置 replication.enable-placement-rules: "true",通过上述步骤在 TidbCluster 中增加 TiFlash 配置后,TiDB Operator 会自动为 PD 配置 replication.enable-placement-rules: "true"

如果服务器没有外网,请参考部署 TiDB 集群在有外网的机器上将用到的 Docker 镜像下载下来并上传到服务器上。