Skip to content

Commit a5ad350

Browse files
weekfaceran-huangti-srebot
authored
zh: TiCDC TLS document (#590)
* tls for ticdc * address comment * Apply suggestions from code review Co-authored-by: Ran <[email protected]> Co-authored-by: Ran <[email protected]> Co-authored-by: ti-srebot <[email protected]>
1 parent 062c235 commit a5ad350

File tree

2 files changed

+113
-1
lines changed

2 files changed

+113
-1
lines changed

zh/deploy-ticdc.md

+11-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ summary: 了解如何在 Kubernetes 上部署 TiCDC。
5757
{{< copyable "shell-regular" >}}
5858

5959
```shell
60-
/cdc cli capture list --pd=${pd_address}:2379
60+
/cdc cli capture list --pd=http://${cluster_name}-pd:2379
6161
```
6262

6363
```shell
@@ -73,4 +73,14 @@ summary: 了解如何在 Kubernetes 上部署 TiCDC。
7373
]
7474
```
7575

76+
TiCDC 从 v4.0.3 版本开始支持 TLS,TiDB Operator v1.1.3 版本同步支持 TiCDC 开启 TLS 功能。
77+
78+
如果在创建 TiDB 集群时开启了 TLS,使用 `cdc cli` 请携带 TLS 证书相关参数:
79+
80+
{{< copyable "shell-regular" >}}
81+
82+
```shell
83+
/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
84+
```
85+
7686
如果服务器没有外网,请参考 [部署 TiDB 集群](deploy-on-general-kubernetes.md#部署-tidb-集群) 在有外网的机器上将用到的 Docker 镜像下载下来并上传到服务器上。

zh/enable-tls-between-components.md

+102
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,47 @@ summary: 在 Kubernetes 上如何为 TiDB 集群组件间开启 TLS。
341341
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=internal drainer-server.json | cfssljson -bare drainer-server
342342
```
343343

344+
- TiCDC Server 端证书
345+
346+
首先生成默认的 `ticdc-server.json` 文件:
347+
348+
{{< copyable "shell-regular" >}}
349+
350+
``` shell
351+
cfssl print-defaults csr > ticdc-server.json
352+
```
353+
354+
然后编辑这个文件,修改 `CN``hosts` 属性:
355+
356+
``` json
357+
...
358+
"CN": "TiDB",
359+
"hosts": [
360+
"127.0.0.1",
361+
"::1",
362+
"${cluster_name}-ticdc",
363+
"${cluster_name}-ticdc.${namespace}",
364+
"${cluster_name}-ticdc.${namespace}.svc",
365+
"${cluster_name}-ticdc-peer",
366+
"${cluster_name}-ticdc-peer.${namespace}",
367+
"${cluster_name}-ticdc-peer.${namespace}.svc",
368+
"*.${cluster_name}-ticdc-peer",
369+
"*.${cluster_name}-ticdc-peer.${namespace}",
370+
"*.${cluster_name}-ticdc-peer.${namespace}.svc"
371+
],
372+
...
373+
```
374+
375+
其中 `${cluster_name}` 为集群的名字,`${namespace}` 为 TiDB 集群部署的命名空间,用户也可以添加自定义 `hosts`
376+
377+
最后生成 TiCDC Server 端证书:
378+
379+
{{< copyable "shell-regular" >}}
380+
381+
``` shell
382+
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=internal ticdc-server.json | cfssljson -bare ticdc-server
383+
```
384+
344385
6. 生成 Client 端证书。
345386

346387
首先生成默认的 `client.json` 文件:
@@ -807,6 +848,67 @@ summary: 在 Kubernetes 上如何为 TiDB 集群组件间开启 TLS。
807848

808849
创建这个对象以后,`cert-manager` 会生成一个名字为 `${cluster_name}-drainer-cluster-secret` 的 Secret 对象供 TiDB 集群的 Drainer 组件使用。
809850

851+
- TiCDC 组件的 Server 端证书。
852+
853+
TiCDC 从 v4.0.3 版本开始支持 TLS,TiDB Operator v1.1.3 版本同步支持 TiCDC 开启 TLS 功能。
854+
855+
``` yaml
856+
apiVersion: cert-manager.io/v1alpha2
857+
kind: Certificate
858+
metadata:
859+
name: ${cluster_name}-ticdc-cluster-secret
860+
namespace: ${namespace}
861+
spec:
862+
secretName: ${cluster_name}-ticdc-cluster-secret
863+
duration: 8760h # 365d
864+
renewBefore: 360h # 15d
865+
organization:
866+
- PingCAP
867+
commonName: "TiDB"
868+
usages:
869+
- server auth
870+
- client auth
871+
dnsNames:
872+
- "${cluster_name}-ticdc"
873+
- "${cluster_name}-ticdc.${namespace}"
874+
- "${cluster_name}-ticdc.${namespace}.svc"
875+
- "${cluster_name}-ticdc-peer"
876+
- "${cluster_name}-ticdc-peer.${namespace}"
877+
- "${cluster_name}-ticdc-peer.${namespace}.svc"
878+
- "*.${cluster_name}-ticdc-peer"
879+
- "*.${cluster_name}-ticdc-peer.${namespace}"
880+
- "*.${cluster_name}-ticdc-peer.${namespace}.svc"
881+
ipAddresses:
882+
- 127.0.0.1
883+
- ::1
884+
issuerRef:
885+
name: ${cluster_name}-tidb-issuer
886+
kind: Issuer
887+
group: cert-manager.io
888+
```
889+
890+
其中 `${cluster_name}` 为集群的名字:
891+
892+
- `spec.secretName` 请设置为 `${cluster_name}-ticdc-cluster-secret`
893+
- `usages` 请添加上 `server auth``client auth`
894+
- `dnsNames` 需要填写这些 DNS,根据需要可以填写其他 DNS:
895+
- `${cluster_name}-ticdc`
896+
- `${cluster_name}-ticdc.${namespace}`
897+
- `${cluster_name}-ticdc.${namespace}.svc`
898+
- `${cluster_name}-ticdc-peer`
899+
- `${cluster_name}-ticdc-peer.${namespace}`
900+
- `${cluster_name}-ticdc-peer.${namespace}.svc`
901+
- `*.${cluster_name}-ticdc-peer`
902+
- `*.${cluster_name}-ticdc-peer.${namespace}`
903+
- `*.${cluster_name}-ticdc-peer.${namespace}.svc`
904+
- `ipAddresses` 需要填写这两个 IP,根据需要可以填写其他 IP:
905+
- `127.0.0.1`
906+
- `::1`
907+
- `issuerRef` 请填写上面创建的 Issuer;
908+
- 其他属性请参考 [cert-manager API](https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1alpha2.CertificateSpec)。
909+
910+
创建这个对象以后,`cert-manager` 会生成一个名字为 `${cluster_name}-ticdc-cluster-secret` 的 Secret 对象供 TiDB 集群的 TiCDC 组件使用。
911+
810912
- 一套 TiDB 集群组件的 Client 端证书。
811913

812914
``` yaml

0 commit comments

Comments
 (0)