在 Kubernetes 上部署 TiCDC

TiCDC 是一款 TiDB 增量数据同步工具,本文介绍如何使用 TiDB Operator 在 Kubernetes 上部署 TiCDC。

前置条件

  • TiDB Operator 部署完成。

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

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

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

  1. 编辑 TidbCluster Custom Resource:

    1. kubectl edit tc ${cluster_name} -n ${namespace}
  2. 按照如下示例增加 TiCDC 配置:

    1. spec:
    2. ticdc:
    3. baseImage: pingcap/ticdc
    4. replicas: 3

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

    例如:

    1. spec:
    2. ticdc:
    3. baseImage: pingcap/ticdc-enterprise
  3. 为 TiCDC 挂载 PV。

    TiCDC 支持挂载多个 PV,建议在第一次部署 TiCDC 时规划好使用几个 PV。相关配置请参阅多盘挂载

  4. 部署完成后,通过 kubectl exec 进入任意一个 TiCDC Pod 进行操作。

    1. kubectl exec -it ${pod_name} -n ${namespace} -- sh
  5. 然后通过 cdc cli 进行管理集群和同步任务

    1. /cdc cli capture list --pd=http://${cluster_name}-pd:2379
    1. [
    2. {
    3. "id": "3ed24f6c-22cf-446f-9fe0-bf4a66d00f5b",
    4. "is-owner": false,
    5. "address": "${cluster_name}-ticdc-2.${cluster_name}-ticdc-peer.${namespace}.svc:8301"
    6. },
    7. {
    8. "id": "60e98ed7-cd49-45f4-b5ae-d3b85ba3cd96",
    9. "is-owner": false,
    10. "address": "${cluster_name}-ticdc-0.${cluster_name}-ticdc-peer.${namespace}.svc:8301"
    11. },
    12. {
    13. "id": "dc3592c0-dace-42a0-8afc-fb8506e8271c",
    14. "is-owner": true,
    15. "address": "${cluster_name}-ticdc-1.${cluster_name}-ticdc-peer.${namespace}.svc:8301"
    16. }
    17. ]

    TiCDC 从 v4.0.3 版本开始支持 TLS,TiDB Operator v1.1.3 版本同步支持 TiCDC 开启 TLS 功能。

    如果在创建 TiDB 集群时开启了 TLS,使用 cdc cli 请携带 TLS 证书相关参数:

    1. /cdc cli capture list --pd=https://${cluster_name}-pd:2379 --ca=/var/lib/cluster-client-tls/ca.crt --cert=/var/lib/cluster-client-tls/tls.crt --key=/var/lib/cluster-client-tls/tls.key

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