From 0b6cca9fb994e81331f2cf0361696e031ec58494 Mon Sep 17 00:00:00 2001 From: husharp Date: Fri, 23 Aug 2024 15:45:08 +0800 Subject: [PATCH 1/8] add tls description Signed-off-by: husharp --- zh/enable-tls-between-components.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/zh/enable-tls-between-components.md b/zh/enable-tls-between-components.md index 913cf7a554..7cbd56c4ff 100644 --- a/zh/enable-tls-between-components.md +++ b/zh/enable-tls-between-components.md @@ -21,6 +21,29 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] > **注意:** > > 在集群创建后,不能修改此字段,否则将导致集群升级失败,此时需要删除已有集群,并重新创建。 + > 集群创建后再开启 tls,在无法重建的情况下,可尝试以下方式(**请谨慎操作**): + > + > 1. 在存在多个 PD 节点的情况下,缩容 PD 至 1 个。(否则可以跳过此步骤) + > 2. 下载 etcdctl。参考 [etcdctl 安装指南](https://etcd.io/docs/v3.4/install/),etcdctl 位于文件夹目录下。 + > 3. 设置 `.spec.tlsCluster.enabled` 属性为 `true`; + > 4. 查看 etcd member,可见 peerURLs 此时为 http: + ```sh + etcdctl --endpoints https://127.0.0.1:2379 --cert-file ./pd-tls/tls.crt --key-file ./pd-tls/tls.key --ca-file ./pd-tls/ca.crt member list + ``` + 输出示例: + ``` + 8e9e05c52164694d: name=tidb-test-v75-pd-0 peerURLs=http://localhost:2380 clientURLs=https://localhost:2379 isLeader=true + ``` + > 5. 修改 etcd member 的 peerURLs 为 https: + ```sh + etcdctl --endpoints https://127.0.0.1:2379 --cert-file ./pd-tls/tls.crt --key-file ./pd-tls/tls.key --ca-file ./pd-tls/ca.crt member update 8e9e05c52164694d --peer-urls="https://localhost:2380" + ``` + 输出示例: + ``` + Updated member with ID 8e9e05c52164694d in cluster + ``` + > 6. 查看此时 etcd member 的 peerURLs 已经修改为 https。 + > 7. 若缩容过 PD 节点,需先扩容至原有数量。(否则可以跳过此步骤) 3. 配置 `pd-ctl`,`tikv-ctl` 连接集群。 From afcca2be79cb3667843d1b0a434a6fb237cec657 Mon Sep 17 00:00:00 2001 From: husharp Date: Fri, 23 Aug 2024 16:11:10 +0800 Subject: [PATCH 2/8] add tls description Signed-off-by: husharp --- zh/enable-tls-between-components.md | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/zh/enable-tls-between-components.md b/zh/enable-tls-between-components.md index 7cbd56c4ff..be860010d4 100644 --- a/zh/enable-tls-between-components.md +++ b/zh/enable-tls-between-components.md @@ -21,27 +21,28 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] > **注意:** > > 在集群创建后,不能修改此字段,否则将导致集群升级失败,此时需要删除已有集群,并重新创建。 + > > 集群创建后再开启 tls,在无法重建的情况下,可尝试以下方式(**请谨慎操作**): > > 1. 在存在多个 PD 节点的情况下,缩容 PD 至 1 个。(否则可以跳过此步骤) > 2. 下载 etcdctl。参考 [etcdctl 安装指南](https://etcd.io/docs/v3.4/install/),etcdctl 位于文件夹目录下。 > 3. 设置 `.spec.tlsCluster.enabled` 属性为 `true`; > 4. 查看 etcd member,可见 peerURLs 此时为 http: - ```sh - etcdctl --endpoints https://127.0.0.1:2379 --cert-file ./pd-tls/tls.crt --key-file ./pd-tls/tls.key --ca-file ./pd-tls/ca.crt member list - ``` - 输出示例: - ``` - 8e9e05c52164694d: name=tidb-test-v75-pd-0 peerURLs=http://localhost:2380 clientURLs=https://localhost:2379 isLeader=true - ``` + > > + > > ```bash + > > etcdctl --endpoints https://127.0.0.1:2379 --cert-file ./pd-tls/tls.crt --key-file ./pd-tls/tls.key --ca-file ./pd-tls/ca.crt member list + > > 输出示例: + > > 8e9e05c52164694d: name=tidb-test-v75-pd-0 peerURLs=http://localhost:2380 clientURLs=https://localhost:2379 isLeader=true + > > ``` + > > > 5. 修改 etcd member 的 peerURLs 为 https: - ```sh - etcdctl --endpoints https://127.0.0.1:2379 --cert-file ./pd-tls/tls.crt --key-file ./pd-tls/tls.key --ca-file ./pd-tls/ca.crt member update 8e9e05c52164694d --peer-urls="https://localhost:2380" - ``` - 输出示例: - ``` - Updated member with ID 8e9e05c52164694d in cluster - ``` + > > + > > ```bash + > > etcdctl --endpoints https://127.0.0.1:2379 --cert-file ./pd-tls/tls.crt --key-file ./pd-tls/tls.key --ca-file ./pd-tls/ca.crt member update 8e9e05c52164694d --peer-urls="https://localhost:2380" + > > 输出示例: + > > Updated member with ID 8e9e05c52164694d in cluster + > > ``` + > > > 6. 查看此时 etcd member 的 peerURLs 已经修改为 https。 > 7. 若缩容过 PD 节点,需先扩容至原有数量。(否则可以跳过此步骤) From ecf01ca6aca156c31a9cd41ad9391a5d0714a469 Mon Sep 17 00:00:00 2001 From: husharp Date: Fri, 23 Aug 2024 17:34:09 +0800 Subject: [PATCH 3/8] add tls description Signed-off-by: husharp --- zh/enable-tls-between-components.md | 92 +++++++++++++++++++++-------- 1 file changed, 69 insertions(+), 23 deletions(-) diff --git a/zh/enable-tls-between-components.md b/zh/enable-tls-between-components.md index be860010d4..c82e1487ca 100644 --- a/zh/enable-tls-between-components.md +++ b/zh/enable-tls-between-components.md @@ -22,29 +22,7 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] > > 在集群创建后,不能修改此字段,否则将导致集群升级失败,此时需要删除已有集群,并重新创建。 > - > 集群创建后再开启 tls,在无法重建的情况下,可尝试以下方式(**请谨慎操作**): - > - > 1. 在存在多个 PD 节点的情况下,缩容 PD 至 1 个。(否则可以跳过此步骤) - > 2. 下载 etcdctl。参考 [etcdctl 安装指南](https://etcd.io/docs/v3.4/install/),etcdctl 位于文件夹目录下。 - > 3. 设置 `.spec.tlsCluster.enabled` 属性为 `true`; - > 4. 查看 etcd member,可见 peerURLs 此时为 http: - > > - > > ```bash - > > etcdctl --endpoints https://127.0.0.1:2379 --cert-file ./pd-tls/tls.crt --key-file ./pd-tls/tls.key --ca-file ./pd-tls/ca.crt member list - > > 输出示例: - > > 8e9e05c52164694d: name=tidb-test-v75-pd-0 peerURLs=http://localhost:2380 clientURLs=https://localhost:2379 isLeader=true - > > ``` - > > - > 5. 修改 etcd member 的 peerURLs 为 https: - > > - > > ```bash - > > etcdctl --endpoints https://127.0.0.1:2379 --cert-file ./pd-tls/tls.crt --key-file ./pd-tls/tls.key --ca-file ./pd-tls/ca.crt member update 8e9e05c52164694d --peer-urls="https://localhost:2380" - > > 输出示例: - > > Updated member with ID 8e9e05c52164694d in cluster - > > ``` - > > - > 6. 查看此时 etcd member 的 peerURLs 已经修改为 https。 - > 7. 若缩容过 PD 节点,需先扩容至原有数量。(否则可以跳过此步骤) + > 在无法重建的情况下,如果希望集群创建后再开启 TLS,可尝试[以下方式](#从非-tls-集群升级到-tls-集群)(**请谨慎操作**): 3. 配置 `pd-ctl`,`tikv-ctl` 连接集群。 @@ -1614,3 +1592,71 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] cd /var/lib/cluster-client-tls /tikv-ctl --ca-path=ca.crt --cert-path=tls.crt --key-path=tls.key --host 127.0.0.1:20160 cluster ``` + +## 从非 TLS 集群升级到 TLS 集群 + +> **注意:请谨慎操作** +> +> 在集群无法重建的情况下,适用于集群创建后再开启 TLS。 +> + +1. 如果存在多个 PD 节点,缩容 PD 至 1 个节点。 + +2. 参考 [第一步:为 TiDB 集群各个组件生成证书](#第一步为-tidb-集群各个组件生成证书) ,准备证书及创建 Kubernetes Secret 对象。 + +3. 参考 [第二步:部署 TiDB 集群](#第二步部署-tidb-集群) ,修改 `tidb-cluster.yaml` 文件,使用 `kubectl apply -f tidb-cluster.yaml` 来更新 TiDB 集群。 + +4. 登录 PD pod,下载 etcdctl。参考 [etcdctl 安装指南](https://etcd.io/docs/v3.4/install/),etcdctl 位于解压后的文件夹目录下。 + +5. 查看 etcd member,可见 peerURLs 此时为 http: + + ```bash + ./etcdctl --endpoints https://127.0.0.1:2379 --cert /var/lib/pd-tls/tls.crt --key /var/lib/pd-tls/tls.key --cacert /var/lib/pd-tls/ca.crt member list + ``` + + 输出示例: + + ```bash + e94cfb12fa384e23, started, basic-pd-0, http://basic-pd-0.basic-pd-peer.pingcap.svc:2380, https://basic-pd-0.basic-pd-peer.pingcap.svc:2379, false + ``` + + **示例解释:** + + memberID 和 peerURLs 需要在下个步骤更新 member 时填入: + + 1. 包含 memberID,示例中为 `e94cfb12fa384e23`。 + + 2. 包含 peerURLs,示例中为 `http://basic-pd-0.basic-pd-peer.pingcap.svc:2380`。 + +6. 修改 etcd member 的 peerURLs 为 https: + + **注意:** + + peerURLS 需要修改 `http` 为 `https`。 + + ```bash + ./etcdctl --endpoints https://127.0.0.1:2379 --cert /var/lib/pd-tls/tls.crt --key /var/lib/pd-tls/tls.key --cacert /var/lib/pd-tls/ca.crt member update e94cfb12fa384e23 --peer-urls="https://basic-pd-0.basic-pd-peer.pingcap.svc:2380" + ``` + + 输出示例: + + ```bash + Member e94cfb12fa384e23 updated in cluster 32ab5936d81ad54c + ``` + +7. 查看此时 etcd member 的 peerURLs,确认已经修改为 https: + + ```bash + ./etcdctl --endpoints https://127.0.0.1:2379 --cert /var/lib/pd-tls/tls.crt --key /var/lib/pd-tls/tls.key --cacert /var/lib/pd-tls/ca.crt member list + ``` + + 输出示例: + + ```bash + e94cfb12fa384e23, started, basic-pd-0, https://basic-pd-0.basic-pd-peer.pingcap.svc:2380, https://basic-pd-0.basic-pd-peer.pingcap.svc:2379, false + ``` + + 此时 peerURLs 已更新为 `https://basic-pd-0.basic-pd-peer.pingcap.svc:2380`。 + +8. 若缩容过 PD 节点,需扩容 PD 至原有数量。 +9. 等待其他 pod 重启更新。 \ No newline at end of file From 958bb98a9ff1d1506805cf4b0b285da4301f78e6 Mon Sep 17 00:00:00 2001 From: husharp Date: Mon, 26 Aug 2024 11:14:03 +0800 Subject: [PATCH 4/8] add patch Signed-off-by: husharp --- zh/enable-tls-between-components.md | 40 ++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/zh/enable-tls-between-components.md b/zh/enable-tls-between-components.md index c82e1487ca..645e59bd7f 100644 --- a/zh/enable-tls-between-components.md +++ b/zh/enable-tls-between-components.md @@ -1604,7 +1604,45 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] 2. 参考 [第一步:为 TiDB 集群各个组件生成证书](#第一步为-tidb-集群各个组件生成证书) ,准备证书及创建 Kubernetes Secret 对象。 -3. 参考 [第二步:部署 TiDB 集群](#第二步部署-tidb-集群) ,修改 `tidb-cluster.yaml` 文件,使用 `kubectl apply -f tidb-cluster.yaml` 来更新 TiDB 集群。 +3. 参考 [第二步:部署 TiDB 集群](#第二步部署-tidb-集群) ,可使用以下命令来更新 TiDB 集群,等待 PD pod 完成重启后继续下一步操作。 + + ```bash + kubectl patch tc ${cluster_name} -n ${namespace} --type merge -p '{ + "spec": { + "tlsCluster": { + "enabled": true + }, + "pd": { + "config": { + "security": { + "cert-allowed-cn": ["TiDB"] + } + } + }, + "tikv": { + "config": { + "security": { + "cert-allowed-cn": ["TiDB"] + } + } + }, + "tidb": { + "config": { + "security": { + "cert-allowed-cn": ["TiDB"] + } + } + } + # 其他组件配置...(复制时需要删除此行注释) + } + }' + ``` + + 输出示例: + + ```bash + tidbcluster.pingcap.com/basic patched + ``` 4. 登录 PD pod,下载 etcdctl。参考 [etcdctl 安装指南](https://etcd.io/docs/v3.4/install/),etcdctl 位于解压后的文件夹目录下。 From 0269cb6ea3c981ea9bdc4f4a67886bc3c2ddb57c Mon Sep 17 00:00:00 2001 From: husharp Date: Mon, 26 Aug 2024 11:49:28 +0800 Subject: [PATCH 5/8] add copy Signed-off-by: husharp --- zh/enable-tls-between-components.md | 56 ++++++++++++----------------- 1 file changed, 22 insertions(+), 34 deletions(-) diff --git a/zh/enable-tls-between-components.md b/zh/enable-tls-between-components.md index 645e59bd7f..d7aefc4fdc 100644 --- a/zh/enable-tls-between-components.md +++ b/zh/enable-tls-between-components.md @@ -1606,91 +1606,79 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] 3. 参考 [第二步:部署 TiDB 集群](#第二步部署-tidb-集群) ,可使用以下命令来更新 TiDB 集群,等待 PD pod 完成重启后继续下一步操作。 - ```bash + {{< copyable "shell-regular" >}} + + ``` shell kubectl patch tc ${cluster_name} -n ${namespace} --type merge -p '{ "spec": { "tlsCluster": { "enabled": true - }, - "pd": { - "config": { - "security": { - "cert-allowed-cn": ["TiDB"] - } - } - }, - "tikv": { - "config": { - "security": { - "cert-allowed-cn": ["TiDB"] - } - } - }, - "tidb": { - "config": { - "security": { - "cert-allowed-cn": ["TiDB"] - } - } } - # 其他组件配置...(复制时需要删除此行注释) } }' ``` 输出示例: - ```bash + ``` shell tidbcluster.pingcap.com/basic patched ``` + 也可以参考 [第二步:部署 TiDB 集群](#第二步部署-tidb-集群),选择设置 `cert-allowed-cn` 配置项(TiDB 为 `cluster-verify-cn`),用来验证集群间各组件证书的 CN (Common Name)。 + 4. 登录 PD pod,下载 etcdctl。参考 [etcdctl 安装指南](https://etcd.io/docs/v3.4/install/),etcdctl 位于解压后的文件夹目录下。 -5. 查看 etcd member,可见 peerURLs 此时为 http: +5. 查看 etcd member,可见 peerURLs 此时为 `http`: - ```bash + {{< copyable "shell-regular" >}} + + ``` shell ./etcdctl --endpoints https://127.0.0.1:2379 --cert /var/lib/pd-tls/tls.crt --key /var/lib/pd-tls/tls.key --cacert /var/lib/pd-tls/ca.crt member list ``` 输出示例: - ```bash + ``` shell e94cfb12fa384e23, started, basic-pd-0, http://basic-pd-0.basic-pd-peer.pingcap.svc:2380, https://basic-pd-0.basic-pd-peer.pingcap.svc:2379, false ``` **示例解释:** - memberID 和 peerURLs 需要在下个步骤更新 member 时填入: + memberID 和 peerURLs 需要在下个步骤更新 etcd member 时填入: 1. 包含 memberID,示例中为 `e94cfb12fa384e23`。 2. 包含 peerURLs,示例中为 `http://basic-pd-0.basic-pd-peer.pingcap.svc:2380`。 -6. 修改 etcd member 的 peerURLs 为 https: +6. 修改 etcd member 的 peerURLs 为 `https`: **注意:** peerURLS 需要修改 `http` 为 `https`。 - ```bash + {{< copyable "shell-regular" >}} + + ``` shell ./etcdctl --endpoints https://127.0.0.1:2379 --cert /var/lib/pd-tls/tls.crt --key /var/lib/pd-tls/tls.key --cacert /var/lib/pd-tls/ca.crt member update e94cfb12fa384e23 --peer-urls="https://basic-pd-0.basic-pd-peer.pingcap.svc:2380" ``` 输出示例: - ```bash + ``` shell Member e94cfb12fa384e23 updated in cluster 32ab5936d81ad54c ``` -7. 查看此时 etcd member 的 peerURLs,确认已经修改为 https: +7. 查看此时 etcd member 的 peerURLs,确认已经修改为 `https`: + + {{< copyable "shell-regular" >}} - ```bash + ``` shell ./etcdctl --endpoints https://127.0.0.1:2379 --cert /var/lib/pd-tls/tls.crt --key /var/lib/pd-tls/tls.key --cacert /var/lib/pd-tls/ca.crt member list ``` 输出示例: - ```bash + ``` shell e94cfb12fa384e23, started, basic-pd-0, https://basic-pd-0.basic-pd-peer.pingcap.svc:2380, https://basic-pd-0.basic-pd-peer.pingcap.svc:2379, false ``` From 214ff34109ee19294c47c3552f76b257c3b88e8c Mon Sep 17 00:00:00 2001 From: Hu# Date: Mon, 26 Aug 2024 12:55:33 +0800 Subject: [PATCH 6/8] Update zh/enable-tls-between-components.md Co-authored-by: Xuecheng Zhang --- zh/enable-tls-between-components.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/enable-tls-between-components.md b/zh/enable-tls-between-components.md index d7aefc4fdc..a2d4b74080 100644 --- a/zh/enable-tls-between-components.md +++ b/zh/enable-tls-between-components.md @@ -1626,7 +1626,7 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] 也可以参考 [第二步:部署 TiDB 集群](#第二步部署-tidb-集群),选择设置 `cert-allowed-cn` 配置项(TiDB 为 `cluster-verify-cn`),用来验证集群间各组件证书的 CN (Common Name)。 -4. 登录 PD pod,下载 etcdctl。参考 [etcdctl 安装指南](https://etcd.io/docs/v3.4/install/),etcdctl 位于解压后的文件夹目录下。 +4. 使用 `kubectl exec` 进入 PD pod,下载 etcdctl。参考 [etcdctl 安装指南](https://etcd.io/docs/v3.4/install/),etcdctl 位于解压后的文件夹目录下。 5. 查看 etcd member,可见 peerURLs 此时为 `http`: From 1de93a4fdc5c6e836dcf6498dc49b6d5fafaadcb Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 6 Nov 2024 18:31:17 +0800 Subject: [PATCH 7/8] revise wording and format Signed-off-by: Aolin --- zh/enable-tls-between-components.md | 128 +++++++++++++--------------- 1 file changed, 59 insertions(+), 69 deletions(-) diff --git a/zh/enable-tls-between-components.md b/zh/enable-tls-between-components.md index a2d4b74080..8baf77c826 100644 --- a/zh/enable-tls-between-components.md +++ b/zh/enable-tls-between-components.md @@ -20,9 +20,8 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] > **注意:** > - > 在集群创建后,不能修改此字段,否则将导致集群升级失败,此时需要删除已有集群,并重新创建。 - > - > 在无法重建的情况下,如果希望集群创建后再开启 TLS,可尝试[以下方式](#从非-tls-集群升级到-tls-集群)(**请谨慎操作**): + > - 在集群创建后,不能修改此字段,否则将导致集群升级失败,此时需要删除已有集群,并重新创建。 + > - 若集群无法重建且需要启用 TLS,请参阅[从非 TLS 集群升级到 TLS 集群](#从非-tls-集群升级到-tls-集群)。 3. 配置 `pd-ctl`,`tikv-ctl` 连接集群。 @@ -1593,96 +1592,87 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] /tikv-ctl --ca-path=ca.crt --cert-path=tls.crt --key-path=tls.key --host 127.0.0.1:20160 cluster ``` -## 从非 TLS 集群升级到 TLS 集群 +## 将非 TLS 集群升级为 TLS 集群 -> **注意:请谨慎操作** -> -> 在集群无法重建的情况下,适用于集群创建后再开启 TLS。 -> +本节介绍如何为现有的非 TLS TiDB 集群启用 TLS 加密通信。 -1. 如果存在多个 PD 节点,缩容 PD 至 1 个节点。 - -2. 参考 [第一步:为 TiDB 集群各个组件生成证书](#第一步为-tidb-集群各个组件生成证书) ,准备证书及创建 Kubernetes Secret 对象。 - -3. 参考 [第二步:部署 TiDB 集群](#第二步部署-tidb-集群) ,可使用以下命令来更新 TiDB 集群,等待 PD pod 完成重启后继续下一步操作。 - - {{< copyable "shell-regular" >}} - - ``` shell - kubectl patch tc ${cluster_name} -n ${namespace} --type merge -p '{ - "spec": { - "tlsCluster": { - "enabled": true - } - } - }' - ``` +> **注意:** +> +> 该操作仅适用于无法重建的现有集群。在开始操作前,请确保已充分理解每个步骤及其潜在风险。 - 输出示例: +1. 如果集群包含多个 PD 节点,需要先将 PD 节点数量缩减为 1 个。 - ``` shell - tidbcluster.pingcap.com/basic patched - ``` +2. 参考[第一步:为 TiDB 集群各个组件生成证书](#第一步为-tidb-集群各个组件生成证书)生成 TLS 证书,并创建 Kubernetes Secret 对象。 - 也可以参考 [第二步:部署 TiDB 集群](#第二步部署-tidb-集群),选择设置 `cert-allowed-cn` 配置项(TiDB 为 `cluster-verify-cn`),用来验证集群间各组件证书的 CN (Common Name)。 +3. 启用 TLS: -4. 使用 `kubectl exec` 进入 PD pod,下载 etcdctl。参考 [etcdctl 安装指南](https://etcd.io/docs/v3.4/install/),etcdctl 位于解压后的文件夹目录下。 + 你可以选择以下两种方法之一启用 TLS: -5. 查看 etcd member,可见 peerURLs 此时为 `http`: + - 方法 1:执行以下命令更新 TiDB 集群配置,等待 PD Pod 完成重启后继续下一步。 - {{< copyable "shell-regular" >}} + ``` shell + kubectl patch tc ${cluster_name} -n ${namespace} --type merge -p '{ + "spec": { + "tlsCluster": { + "enabled": true + } + } + }' + ``` - ``` shell - ./etcdctl --endpoints https://127.0.0.1:2379 --cert /var/lib/pd-tls/tls.crt --key /var/lib/pd-tls/tls.key --cacert /var/lib/pd-tls/ca.crt member list - ``` + 输出示例: - 输出示例: + ``` shell + tidbcluster.pingcap.com/basic patched + ``` - ``` shell - e94cfb12fa384e23, started, basic-pd-0, http://basic-pd-0.basic-pd-peer.pingcap.svc:2380, https://basic-pd-0.basic-pd-peer.pingcap.svc:2379, false - ``` + - 方法 2:参考[第二步:部署 TiDB 集群](#第二步部署-tidb-集群)启用 TLS,同时设置 `cert-allowed-cn` 配置项(TiDB 为 `cluster-verify-cn`),用于验证集群间各组件证书的 CN (Common Name)。 - **示例解释:** +4. 配置 PD 节点: - memberID 和 peerURLs 需要在下个步骤更新 etcd member 时填入: - - 1. 包含 memberID,示例中为 `e94cfb12fa384e23`。 - - 2. 包含 peerURLs,示例中为 `http://basic-pd-0.basic-pd-peer.pingcap.svc:2380`。 + 1. 使用 `kubectl exec` 进入 PD Pod 并安装 etcdctl。详细安装步骤可参考 [etcdctl 安装指南](https://etcd.io/docs/v3.4/install/)。安装完成后,etcdctl 位于解压后的文件夹目录下。 -6. 修改 etcd member 的 peerURLs 为 `https`: + 2. 查看 etcd 成员信息,此时 `peerURLs` 使用 HTTP 协议: - **注意:** + ``` shell + ./etcdctl --endpoints https://127.0.0.1:2379 --cert /var/lib/pd-tls/tls.crt --key /var/lib/pd-tls/tls.key --cacert /var/lib/pd-tls/ca.crt member list + ``` - peerURLS 需要修改 `http` 为 `https`。 + 输出示例: - {{< copyable "shell-regular" >}} + ``` shell + # memberID status name peerURLs clientURL isLearner + e94cfb12fa384e23, started, basic-pd-0, http://basic-pd-0.basic-pd-peer.pingcap.svc:2380, https://basic-pd-0.basic-pd-peer.pingcap.svc:2379, false + ``` - ``` shell - ./etcdctl --endpoints https://127.0.0.1:2379 --cert /var/lib/pd-tls/tls.crt --key /var/lib/pd-tls/tls.key --cacert /var/lib/pd-tls/ca.crt member update e94cfb12fa384e23 --peer-urls="https://basic-pd-0.basic-pd-peer.pingcap.svc:2380" - ``` + 记录以下信息用于下一步操作: + + - `memberID`:示例中为 `e94cfb12fa384e23`。 + - `peerURLs`:示例中为 `http://basic-pd-0.basic-pd-peer.pingcap.svc:2380`。 - 输出示例: + 3. 将 etcd member 的 `peerURLs` 从 HTTP 更新为 HTTPS 协议: - ``` shell - Member e94cfb12fa384e23 updated in cluster 32ab5936d81ad54c - ``` + ``` shell + ./etcdctl --endpoints https://127.0.0.1:2379 --cert /var/lib/pd-tls/tls.crt --key /var/lib/pd-tls/tls.key --cacert /var/lib/pd-tls/ca.crt member update e94cfb12fa384e23 --peer-urls="https://basic-pd-0.basic-pd-peer.pingcap.svc:2380" + ``` -7. 查看此时 etcd member 的 peerURLs,确认已经修改为 `https`: + 输出示例: - {{< copyable "shell-regular" >}} + ``` shell + Member e94cfb12fa384e23 updated in cluster 32ab5936d81ad54c + ``` - ``` shell - ./etcdctl --endpoints https://127.0.0.1:2379 --cert /var/lib/pd-tls/tls.crt --key /var/lib/pd-tls/tls.key --cacert /var/lib/pd-tls/ca.crt member list - ``` + 4. 查看更新后的 `peerURLs`,确保已更新为 HTTPS 协议: - 输出示例: + ``` shell + ./etcdctl --endpoints https://127.0.0.1:2379 --cert /var/lib/pd-tls/tls.crt --key /var/lib/pd-tls/tls.key --cacert /var/lib/pd-tls/ca.crt member list + ``` - ``` shell - e94cfb12fa384e23, started, basic-pd-0, https://basic-pd-0.basic-pd-peer.pingcap.svc:2380, https://basic-pd-0.basic-pd-peer.pingcap.svc:2379, false - ``` + 输出示例: - 此时 peerURLs 已更新为 `https://basic-pd-0.basic-pd-peer.pingcap.svc:2380`。 + ``` shell + e94cfb12fa384e23, started, basic-pd-0, https://basic-pd-0.basic-pd-peer.pingcap.svc:2380, https://basic-pd-0.basic-pd-peer.pingcap.svc:2379, false + ``` -8. 若缩容过 PD 节点,需扩容 PD 至原有数量。 -9. 等待其他 pod 重启更新。 \ No newline at end of file +5. 如果之前进行了 PD 节点缩容,请将其扩容为原有数量。 +6. 等待 TiDB 集群中的所有 Pod 完成重启。 From 37776025ad9aaef15212536cd6b0ca4eb8c98379 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 7 Nov 2024 18:58:23 +0800 Subject: [PATCH 8/8] make ci happy --- zh/enable-tls-between-components.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/enable-tls-between-components.md b/zh/enable-tls-between-components.md index 8baf77c826..f051d5c790 100644 --- a/zh/enable-tls-between-components.md +++ b/zh/enable-tls-between-components.md @@ -21,7 +21,7 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] > **注意:** > > - 在集群创建后,不能修改此字段,否则将导致集群升级失败,此时需要删除已有集群,并重新创建。 - > - 若集群无法重建且需要启用 TLS,请参阅[从非 TLS 集群升级到 TLS 集群](#从非-tls-集群升级到-tls-集群)。 + > - 若集群无法重建且需要启用 TLS,请参阅[将非 TLS 集群升级为 TLS 集群](#将非-tls-集群升级为-tls-集群)。 3. 配置 `pd-ctl`,`tikv-ctl` 连接集群。