部署 TiDB Binlog

    默认情况下,TiDB Binlog 在 TiDB 集群中处于禁用状态。若要创建一个启用 TiDB Binlog 的 TiDB 集群,或在现有 TiDB 集群中启用 TiDB Binlog,可根据以下步骤进行操作。

    可以修改 TidbCluster CR,添加 Pump 相关配置,示例如下:

    按照集群实际情况修改 、replicasstorageClassNamerequests.storage 等配置。

    如果在生产环境中开启 TiDB Binlog,建议为 TiDB 与 Pump 组件设置亲和性和反亲和性。如果在内网测试环境中尝试使用开启 TiDB Binlog,可以跳过此步。

    默认情况下,TiDB 和 Pump 的 affinity 亲和性设置为 {}。由于目前 Pump 组件与 TiDB 组件默认并非一一对应,当启用 TiDB Binlog 时,如果 Pump 与 TiDB 组件分开部署并出现网络隔离,而且 TiDB 组件还开启了 ignore-error,则会导致 TiDB 丢失 Binlog。推荐通过亲和性特性将 TiDB 组件与 Pump 部署在同一台 Node 上,同时通过反亲和性特性将 Pump 分散在不同的 Node 上,每台 Node 上至多仅需一个 Pump 实例。

      1. spec:
      2. tidb:
      3. affinity:
      4. podAffinity:
      5. preferredDuringSchedulingIgnoredDuringExecution:
      6. podAffinityTerm:
      7. matchExpressions:
      8. - key: "app.kubernetes.io/component"
      9. operator: In
      10. values:
      11. - "pump"
      12. - key: "app.kubernetes.io/managed-by"
      13. operator: In
      14. values:
      15. - "tidb-operator"
      16. - key: "app.kubernetes.io/name"
      17. operator: In
      18. - "tidb-cluster"
      19. operator: In
      20. values:
      21. - ${cluster_name}
      22. topologyKey: kubernetes.io/hostname
    • spec.pump.affinity 按照如下设置:

    部署 drainer

    可以通过 tidb-drainer Helm chart 来为 TiDB 集群部署多个 drainer,示例如下:

    1. 确保 PingCAP Helm 库是最新的:

      1. helm repo update
      1. helm inspect values pingcap/tidb-drainer --version=${chart_version} > values.yaml
    2. 修改 values.yaml 文件以指定源 TiDB 集群和 drainer 的下游数据库。示例如下:

      clusterNameclusterVersion 必须匹配所需的源 TiDB 集群。

      有关完整的配置详细信息,请参阅 。

    3. 部署 drainer:

        注意:

      如果要为 TiDB 集群及 TiDB Binlog 开启 TLS,请参考为 TiDB 组件间开启 TLS 进行配置。