Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tiproxy: improve deployment instructions for deploying TiProxy #19415

Merged
merged 3 commits into from
Jan 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 14 additions & 3 deletions tiproxy/tiproxy-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ summary: 了解与 TiProxy 部署和使用相关的配置参数。

# TiProxy 配置文件

本文档介绍了与 TiProxy 部署和使用相关的配置参数。以下是一个配置示例:
本文档介绍了与 TiProxy 部署和使用相关的配置参数。关于 TiUP 的拓扑文件配置参数,请参阅 [tiproxy-servers 配置参数](/tiup/tiup-cluster-topology-reference.md#tiproxy_servers)。

以下是一个配置示例:

```toml
[proxy]
Expand Down Expand Up @@ -43,13 +45,13 @@ SQL 端口的配置。

+ 默认值:`0.0.0.0:6000`
+ 支持热加载:否
+ SQL 网关地址。格式为 `<ip>:<port>`。
+ SQL 服务的监听地址。格式为 `<ip>:<port>`。使用 TiUP 或 TiDB Operator 部署 TiProxy 时,此配置项会自动设置

#### `advertise-addr`

+ 默认值:`""`
+ 支持热加载:否
+ 指定客户端连接 TiProxy 时使用的地址。使用 TiUP 或 TiDB Operator 部署 TiProxy 时,此配置项会自动设置。如果未设置该配置项,将使用该 TiProxy 实例的外部 IP 地址。
+ 指定其他组件连接 TiProxy 时使用的地址,该地址只包含主机名,不包含端口。该地址可能与 [`addr`](#addr) 中的主机名不同。例如,TiProxy 的 TLS 证书中的 `Subject Alternative Name` 只包含域名时,其他组件通过 IP 连接 TiProxy 会失败。使用 TiUP 或 TiDB Operator 部署 TiProxy 时,此配置项会自动设置。如果未设置该配置项,将使用该 TiProxy 实例的外部 IP 地址。

#### `graceful-wait-before-shutdown`

Expand Down Expand Up @@ -137,6 +139,15 @@ TiProxy 的高可用配置。
+ 支持热加载:否
+ 指定虚拟 IP 地址,使用 CIDR 格式表示,例如 `"10.0.1.10/24"`。当集群中部署了多台 TiProxy 时,只有一台 TiProxy 会绑定虚拟 IP。当该 TiProxy 下线时,另外一台 TiProxy 会自动绑定该 IP,确保客户端始终能通过虚拟 IP 连接到可用的 TiProxy。

配置示例:

```yaml
server_configs:
tiproxy:
ha.virtual-ip: "10.0.1.10/24"
ha.interface: "eth0"
```

> **注意:**
>
> - 虚拟 IP 仅支持 Linux 操作系统。
Expand Down
21 changes: 21 additions & 0 deletions tiproxy/tiproxy-deployment-topology.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ summary: 了解在部署最小拓扑集群的基础上,部署 TiProxy 的拓

本文介绍在部署最小拓扑集群的基础上,部署 [TiProxy](/tiproxy/tiproxy-overview.md) 的拓扑结构。

其他部署方式,请参考以下文档:

- 使用 TiDB Operator 部署 TiProxy,请参见 [TiDB Operator](https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/deploy-tiproxy) 文档。
- 使用 TiUP 本地快速部署 TiProxy,请参见[部署 TiProxy](/tiup/tiup-playground.md#部署-tiproxy)。
- 使用 TiUP 部署 TiProxy,请参见 [TiProxy 安装和使用](/tiproxy/tiproxy-overview.md#安装和使用)。

TiProxy 是 TiDB 的 L7 代理,可以平衡连接并迁移会话。

## 拓扑信息
Expand Down Expand Up @@ -35,9 +41,12 @@ global:
component_versions:
tiproxy: "v1.2.0"
server_configs:
tidb:
graceful-wait-before-shutdown: 15
tiproxy:
ha.virtual-ip: "10.0.1.10/24"
ha.interface: "eth0"
graceful-wait-before-shutdown: 15

pd_servers:
- host: 10.0.1.1
Expand All @@ -56,7 +65,19 @@ tikv_servers:

tiproxy_servers:
- host: 10.0.1.11
deploy_dir: "/tiproxy-deploy"
data_dir: "/tiproxy-data"
port: 6000
status_port: 3080
config:
labels: { zone: "east" }
- host: 10.0.1.12
deploy_dir: "/tiproxy-deploy"
data_dir: "/tiproxy-data"
port: 6000
status_port: 3080
config:
labels: { zone: "west" }

monitoring_servers:
- host: 10.0.1.13
Expand Down
15 changes: 7 additions & 8 deletions tiproxy/tiproxy-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,12 @@ TiProxy 不适用于以下场景:

## 安装和使用

本节介绍使用 TiUP 部署和变更 TiProxy 的步骤。使用 TiDB Operator 部署的方式请参阅 [TiDB Operator](https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/deploy-tiproxy) 文档。
本节介绍使用 TiUP 部署和变更 TiProxy 的步骤。

其他部署方式,请参考以下文档:

- 使用 TiDB Operator 部署 TiProxy,请参见 [TiDB Operator](https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/deploy-tiproxy) 文档。
- 使用 TiUP 本地快速部署 TiProxy,请参见[部署 TiProxy](/tiup/tiup-playground.md#部署-tiproxy)。

### 部署 TiProxy

Expand All @@ -83,9 +88,6 @@ TiProxy 不适用于以下场景:
tidb:
security.session-token-signing-cert: "/var/sess/cert.pem"
security.session-token-signing-key: "/var/sess/key.pem"
security.ssl-ca: "/var/ssl/ca.pem"
security.ssl-cert: "/var/ssl/cert.pem"
security.ssl-key: "/var/ssl/key.pem"
graceful-wait-before-shutdown: 15
```

Expand All @@ -100,7 +102,7 @@ TiProxy 不适用于以下场景:

建议在拓扑配置里指定 TiProxy 的版本号,这样通过 [`tiup cluster upgrade`](/tiup/tiup-component-cluster-upgrade.md) 升级 TiDB 集群时不会升级 TiProxy,否则升级 TiProxy 会导致客户端连接断开。

如需配置 TiProxy 配置项,请参阅 [TiProxy 配置](/tiproxy/tiproxy-configuration.md)。
如需配置 TiProxy 配置项,请参阅 [TiProxy 配置](/tiproxy/tiproxy-configuration.md)。更多 TiProxy 部署拓扑配置参数,请参阅 [tiproxy-servers 配置参数](/tiup/tiup-cluster-topology-reference.md#tiproxy_servers)。

配置示例:

Expand All @@ -109,9 +111,6 @@ TiProxy 不适用于以下场景:
tiproxy: "v1.2.0"
server_configs:
tiproxy:
security.server-tls.ca: "/var/ssl/ca.pem"
security.server-tls.cert: "/var/ssl/cert.pem"
security.server-tls.key: "/var/ssl/key.pem"
ha.virtual-ip: "10.0.1.10/24"
ha.interface: "eth0"
```
Expand Down
11 changes: 11 additions & 0 deletions tiup/tiup-cluster-topology-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,7 @@ tiflash_servers:
- `host`:指定部署到哪台机器,字段值填 IP 地址,不可省略。
- `ssh_port`:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用 `global` 区块中的 `ssh_port`。
- `port`:TiProxy SQL 服务的监听端口,默认值:`6000`。
- `status_port`:TiProxy 状态服务的监听端口,用于外部通过 HTTP 请求查看 TiProxy 服务的状态,默认值:`3080`。
- `deploy_dir`:指定部署目录,若不指定,或指定为相对目录,则按照 `global` 中配置的 `deploy_dir` 生成。
- `data_dir`:指定数据目录,若不指定,或指定为相对目录,则按照 `global` 中配置的 `data_dir` 生成。
- `numa_node`:为该实例分配 NUMA 策略,如果指定了该参数,需要确保目标机装了 [numactl](https://linux.die.net/man/8/numactl),在指定该参数的情况下会通过 [numactl](https://linux.die.net/man/8/numactl) 分配 cpubind 和 membind 策略。该字段参数为 string 类型,字段值填 NUMA 节点的 ID,例如 `"0,1"`。
Expand All @@ -363,9 +364,19 @@ tiflash_servers:
```yaml
tiproxy_servers:
- host: 10.0.1.21
port: 6000
status_port: 3080
config:
labels: { zone: "zone1" }
- host: 10.0.1.22
port: 6000
status_port: 3080
config:
labels: { zone: "zone2" }
```

关于更多配置示例,请参见 [TiProxy 部署拓扑](/tiproxy/tiproxy-deployment-topology.md)。

### `kvcdc_servers`

`kvcdc_servers` 约定了将 [TiKV-CDC](https://tikv.org/docs/latest/concepts/explore-tikv-features/cdc/cdc-cn/) 服务部署到哪些机器上,同时可以指定每台机器上的服务配置。`kvcdc_servers` 是一个数组,每个数组元素包含以下字段:
Expand Down
Loading