diff --git a/zh/TOC.md b/zh/TOC.md index 10e964f28..c86a6e815 100644 --- a/zh/TOC.md +++ b/zh/TOC.md @@ -22,6 +22,7 @@ - [阿里云 ACK](deploy-on-alibaba-cloud.md) - [在 ARM64 机器上部署 TiDB 集群](deploy-cluster-on-arm64.md) - [部署 TiDB HTAP 存储引擎 TiFlash](deploy-tiflash.md) + - [部署 TiDB 负载均衡 TiProxy](deploy-tiproxy.md) - 跨多个 Kubernetes 集群部署 TiDB 集群 - [构建多个网络互通的 AWS EKS 集群](build-multi-aws-eks.md) - [构建多个网络互通的 GKE 集群](build-multi-gcp-gke.md) diff --git a/zh/configure-a-tidb-cluster.md b/zh/configure-a-tidb-cluster.md index 63233c65e..8ff2bbc34 100644 --- a/zh/configure-a-tidb-cluster.md +++ b/zh/configure-a-tidb-cluster.md @@ -391,7 +391,7 @@ spec: level = "info" ``` -获取所有可以配置的 TiProxy 配置参数,请参考 [TiProxy 配置文档](link)。 +获取所有可以配置的 TiProxy 配置参数,请参考 [TiProxy 配置文档](https://docs.pingcap.com/zh/tidb/stable/tiproxy/tiproxy-configuration)。 #### 配置 TiFlash 配置参数 diff --git a/zh/deploy-tiproxy.md b/zh/deploy-tiproxy.md new file mode 100644 index 000000000..411c20b63 --- /dev/null +++ b/zh/deploy-tiproxy.md @@ -0,0 +1,102 @@ +--- +title: 为已有 TiDB 集群部署负载均衡 TiProxy +summary: 了解如何在 Kubernetes 上为已有 TiDB 集群部署负载均衡 TiProxy。 +--- + +# 为已有 TiDB 集群部署负载均衡 TiProxy + +本文介绍在 Kubernetes 上如何为已有的 TiDB 集群部署或删除 TiDB 负载均衡 [TiProxy](https://docs.pingcap.com/zh/tidb/stable/tiproxy/tiproxy-overview)。TiProxy 放置在客户端和 TiDB server 之间,为 TiDB 提供负载均衡、连接保持、服务发现等功能。 + +> **注意:** +> +> 如果尚未部署 TiDB 集群, 你可以在[配置 TiDB 集群](configure-a-tidb-cluster.md)时增加 TiProxy 相关配置,然后[部署 TiDB 集群](deploy-on-general-kubernetes.md),因此无需参考本文。 + +## 部署 TiProxy + +如果你需要在现有的 TiDB 集群上部署 TiProxy 组件,请进行以下操作: + +> **注意:** +> +> 如果服务器没有外网,请参考[部署 TiDB 集群](deploy-on-general-kubernetes.md#部署-tidb-集群)在有外网的机器上将 `pingcap/tiproxy` Docker 镜像下载下来并上传到服务器上, 然后使用 `docker load` 将 Docker 镜像安装到服务器上。 + +1. 编辑 TidbCluster Custom Resource (CR): + + {{< copyable "shell-regular" >}} + + ``` shell + kubectl edit tc ${cluster_name} -n ${namespace} + ``` + +2. 按照如下示例增加 TiProxy 配置: + + {{< copyable "shell-regular" >}} + + ```yaml + spec: + tiproxy: + baseImage: pingcap/tiproxy + replicas: 3 + ``` + +3. 配置 TidbCluster CR 中 `spec.tiproxy.config` 的相关参数。例如: + + ```yaml + spec: + tiproxy: + config: + config: | + [log] + level = "info" + ``` + + 要获取更多可配置的 TiProxy 配置参数,请参考 [TiProxy 配置文档](https://docs.pingcap.com/zh/tidb/stable/tiproxy/tiproxy-configuration)。 + +## 移除 TiProxy + +如果你的 TiDB 集群不再需要 TiProxy,请进行以下操作移除 TiProxy。 + +1. 执行以下命令修改 `spec.tiproxy.replicas` 为 0 来移除 TiProxy Pod。 + + {{< copyable "shell-regular" >}} + + ```shell + kubectl patch tidbcluster ${cluster_name} -n ${namespace} --type merge -p '{"spec":{"tiproxy":{"replicas": 0}}}' + ``` + +2. 检查 TiProxy Pod 状态。 + + {{< copyable "shell-regular" >}} + + ```shell + kubectl get pod -n ${namespace} -l app.kubernetes.io/component=tiproxy,app.kubernetes.io/instance=${cluster_name} + ``` + + 如果输出为空,则表示 TiProxy 集群的 Pod 已经被成功删除。 + +3. 删除 TiProxy StatefulSet。 + + 1. 使用以下命令修改 TiDB Cluster CR,删除 `spec.tiproxy` 字段。 + + {{< copyable "shell-regular" >}} + + ```shell + kubectl patch tidbcluster ${cluster_name} -n ${namespace} --type json -p '[{"op":"remove", "path":"/spec/tiproxy"}]' + ``` + + 2. 使用以下命令删除 TiProxy StatefulSet: + + {{< copyable "shell-regular" >}} + + ```shell + kubectl delete statefulsets -n ${namespace} -l app.kubernetes.io/component=tiproxy,app.kubernetes.io/instance=${cluster_name} + ``` + + 3. 执行以下命令检查是否成功删除 TiProxy 集群的 StatefulSet: + + {{< copyable "shell-regular" >}} + + ```shell + kubectl get sts -n ${namespace} -l app.kubernetes.io/component=tiproxy,app.kubernetes.io/instance=${cluster_name} + ``` + + 如果输出为空,则表示 TiProxy 集群的 StatefulSet 已经被成功删除。 diff --git a/zh/modify-tidb-configuration.md b/zh/modify-tidb-configuration.md index 544a35658..3210a8684 100644 --- a/zh/modify-tidb-configuration.md +++ b/zh/modify-tidb-configuration.md @@ -45,4 +45,4 @@ PD 中[支持在线修改的配置项](https://docs.pingcap.com/zh/tidb/stable/d ## 修改 TiProxy 组件配置 -修改 TiProxy 组件的配置永远不会重启 Pod。如果你想要重启 Pod,需要手动杀死 Pod,更改 Pod 镜像等配置,来手动触发重启。 +修改 TiProxy 组件的配置永远不会重启 Pod。如果你想要重启 Pod,需要手动杀死 Pod,或更改 Pod 镜像等配置,来手动触发重启。