TiDB 生产集群开启 TLS 加密通讯的挑战与解决

网友投稿 540 2024-03-25



一、背景

<img src="https://s2.loli.net/2022/10/13/6dyj48k5h9TagzC.png" alt="image-20221013143759407" style="zoom:50%;" />

。于是结合现场情况,笔者选择了第一种方案,操作简单且安全性更高。那么问题来了,该如何开启TiDB集群中的 PD 节点通信加密呢?

TiDB 生产集群开启 TLS 加密通讯的挑战与解决

二、现有集群开启TLS

1、什么是TLS

传输层安全性协议(英语:Transport Layer Security,缩写TLS),及其前身安全套接层(Secure Sockets Layer,缩写作SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。网景公司(Netscape)在1994年推出首版网页浏览器网景导航者时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。IETF将SSL进行标准化,1999年公布第一版TLS标准文件。随后又公布RFC 5246 (2008年8月)与RFC 6176(2011年3月)。在浏览器邮箱即时通信VoIP网络传真等应用程序中,广泛支持这个协议。主要的网站,如GoogleFacebook等也以这个协议来创建安全连线,发送数据。目前已成为互联网上保密通信的工业标准。

2、现有 TiDB 集群中的 TLS

为 TiDB 组件间通信开启加密传输 | PingCAP Docs

本的 TiUP 组件,自动创建并使用证书文件与密钥,一条命令开启集群的 TLS。

3、使用 TiUP 开启 TLS

1、集群情况介绍

2、升级 TiUP 版本

,直接使用命令:tiup update --self && tiup update cluster 即可完成 TiUP 和 TiUP cluster 组件的升级。

tidb-community-server-v6.1.0-linux-amd64.tar.gz,解压后找到 TiUP 与 TiUP cluster 组件的二进制文件,分别在压缩包 tiup-v1.10.2-linux-amd64.tar.gzcluster-v1.10.2-linux-amd64.tar中。可直接使用二进制文件进行后续的操作,但是这样做可能会有风险,新老版本的 TiUP 交替使用,可能会有未知问题。不推荐使用这种方法。

tar xzvf tidb-community-server-v6.1.0-linux-amd64.tar.gz && \ sh tidb-community-server-v6.1.0-linux-amd64/local_install.sh && \ source /home/tidb/.bash_profile tiup update cluster

local_install.sh脚本会自动执行tiup mirror set tidb-community-server-v6.1.0-linux-amd64 命令将当前镜像地址设置为 tidb-community-server-v6.1.0-linux-amd64,所以升级完成之后,我们需要使用命令 tiup mirror set <mirror-dir> 将镜像源切换到生产环境中使用的镜像路径中,避免误操作导致的其他问题。

3、检查节点服务状态

systemctl status node_exporter-9100.service检查是否有多于一个 node_export service,如果有多个 node_exporter service ,则会导致 PD 扩容加载失败,会在 PD 扩容时出现无法启动的问题。所以启动前可以先停止 node_export 服务:systemctl stop node_exporter-9100.service

4、缩容 PD 节点

tiup cluster scale-in tidb-test -N 10.3.70.172:2379,10.3.70.173:2379

5、开启 TLS

开启 TLS 只需要一个命令:tiup cluster tls tidb-test enable,需要注意的是,该操作会重启集群,需要找到合适的时间进行操作。

6、检查 TLS 是否成功开启

tiup ctl:v5.1.4 etcd --endpoint=https://10.3.70.171:2379 --ca-file=/root/.tiup/storage/cluster/clusters/tidb-test/tls/ca.crt --cert-file=/root/.tiup/storage/cluster/clusters/tidb-test/tls/client.crt --key-file=/root/.tiup/storage/cluster/clusters/tidb-test/tls/client.pem member list

三、总结

经验分享出来,给需要开启 TLS 的同学一些操作建议。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:TiDB 生产集群实现加密通信 TLS 实践分享
下一篇:TiDB 生态工具 TiUniManager v1.0.0 体验分享
相关文章