【Tidb·进阶必看】同步数据到开启 TLS 的下游服务

伍六七叭酒 2022-03-17 10:22:55

本文介绍在 Kubernetes 上如何同步数据到开启 TLS 的下游服务。

准备条件

在开始之前,请进行以下准备工作:

  1. 部署一个下游服务,并开启客户端 TLS 认证。
  2. 生成客户端访问下游服务所需要的密钥文件。

操作步骤

  1. 创建一个 Kubernetes Secret 对象,此对象需要包含用于访问下游服务的客户端 TLS 证书。证书来自于你为客户端生成的密钥文件。

    Copy
    kubectl create secret generic ${secret_name} --namespace=${cluster_namespace} --from-file=tls.crt=client.pem --from-file=tls.key=client-key.pem --from-file=ca.crt=ca.pem
  2. 挂载证书文件到 TiCDC Pod。

    • 如果你还未部署 TiDB 集群,在 TidbCluster CR 定义中添加 spec.ticdc.tlsClientSecretNames 字段,然后部署 TiDB 集群。

    • 如果你已经部署了 TiDB 集群,执行 kubectl edit tc ${cluster_name} -n ${cluster_namespace},并添加 spec.ticdc.tlsClientSecretNames 字段,然后等待 TiCDC 的 Pod 自动滚动更新。

    apiVersion: pingcap.com/v1alpha1
    kind: TidbCluster
    metadata:
      name: ${cluster_name}
      namespace: ${cluster_namespace}
    spec:
      # ...
      ticdc:
        baseImage: pingcap/ticdc
        version: "v5.0.1"
        # ...
        tlsClientSecretNames:
        - ${secret_name}

    TiCDC Pod 运行后,创建的 Kubernetes Secret 对象会被挂载到 TiCDC 的 Pod。你可以在 Pod 内的 /var/lib/sink-tls/${secret_name} 目录找到被挂载的密钥文件。

  3. 通过 cdc cli 工具创建同步任务。

    Copy
    kubectl exec ${cluster_name}-ticdc-0 -- /cdc cli changefeed create --pd=https://${cluster_name}-pd:2379 --sink-uri="mysql://${user}:{$password}@${downstream_service}/?ssl-ca=/var/lib/sink-tls/${secret_name}/ca.crt&ssl-cert=/var/lib/sink-tls/${secret_name}/tls.crt&ssl-key=/var/lib/sink-tls/${secret_name}/tls.key"

详见:https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/enable-tls-for-ticdc-sink

 

 

...全文
138 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-云原生 发布问题, 以便更快地解决您的疑问

87

社区成员

发帖
与我相关
我的任务
社区描述
Tidb开发者
其他 企业社区
社区管理员
  • csdnsqst0014
  • kikokingzz
  • karina17
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

社区初立,为了鼓励小友们在社区中积极互动,现在有一个活动如下:

试试用AI创作助手写篇文章吧