From f984966f0298800be7d8573f8d6591f507b1744c Mon Sep 17 00:00:00 2001 From: xhe Date: Tue, 12 Dec 2023 18:24:52 +0800 Subject: [PATCH 01/15] tiproxy: add basic document Signed-off-by: xhe --- zh/configure-a-tidb-cluster.md | 30 ++++++++++- zh/deploy-cluster-on-arm64.md | 4 ++ zh/deploy-failures.md | 1 + zh/deploy-on-general-kubernetes.md | 4 ++ ...tidb-cluster-across-multiple-kubernetes.md | 15 +++--- zh/enable-tls-between-components.md | 51 ++++++++++++++++++- zh/faq.md | 2 +- zh/modify-tidb-configuration.md | 6 ++- zh/renew-tls-certificate.md | 4 +- zh/scale-a-tidb-cluster.md | 6 +-- zh/suspend-tidb-cluster.md | 1 + zh/upgrade-a-tidb-cluster.md | 2 +- 12 files changed, 108 insertions(+), 18 deletions(-) diff --git a/zh/configure-a-tidb-cluster.md b/zh/configure-a-tidb-cluster.md index bc45d977f4..8e277c7c62 100644 --- a/zh/configure-a-tidb-cluster.md +++ b/zh/configure-a-tidb-cluster.md @@ -223,7 +223,7 @@ TiDB Operator 支持为 PD、TiDB、TiKV、TiCDC 挂载多块 PV,可以用于 ### HostNetwork -PD、TiKV、TiDB、TiFlash、TiCDC 及 Pump 支持配置 Pod 使用宿主机上的网络命名空间 [`HostNetwork`](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy)。可通过配置 `spec.hostNetwork: true` 为所有受支持的组件开启,或通过为特定组件配置 `hostNetwork: true` 为单个或多个组件开启。 +PD、TiKV、TiDB、TiFlash、TiProxy、TiCDC 及 Pump 支持配置 Pod 使用宿主机上的网络命名空间 [`HostNetwork`](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy)。可通过配置 `spec.hostNetwork: true` 为所有受支持的组件开启,或通过为特定组件配置 `hostNetwork: true` 为单个或多个组件开启。 ### Discovery @@ -251,6 +251,17 @@ spec: > > 如果 Kubernetes 集群节点个数少于 3 个,将会导致有一个 PD Pod 处于 Pending 状态,而 TiKV 和 TiDB Pod 也都不会被创建。Kubernetes 集群节点个数少于 3 个时,为了使 TiDB 集群能启动起来,可以将默认部署的 PD Pod 个数减小到 1 个。 +#### 部署 TiProxy + +部署方法与PD一致,需要修改 `spec.tiproxy` 来手动指定 TiProxy 组件的数量。 + +```yaml + tiproxy: + baseImage: pingcap/tiproxy + replicas: 3 + config: +``` + #### 部署 TiFlash 如果要在集群中开启 TiFlash,需要在 `${cluster_name}/tidb-cluster.yaml` 文件中配置 `spec.pd.config.replication.enable-placement-rules: true`,并配置 `spec.tiflash`: @@ -310,7 +321,7 @@ TiFlash 支持挂载多个 PV,如果要为 TiFlash 配置多个 PV,可以在 ### 配置 TiDB 组件 -本节介绍如何配置 TiDB/TiKV/PD/TiFlash/TiCDC 的配置选项。 +本节介绍如何配置 TiDB/TiKV/PD/TiProxy/TiFlash/TiCDC 的配置选项。 #### 配置 TiDB 配置参数 @@ -368,6 +379,18 @@ spec: > - 为了兼容 `helm` 部署,如果你是通过 CR 文件部署 TiDB 集群,即使你不设置 Config 配置,也需要保证 `Config: {}` 的设置,从而避免 PD 组件无法正常启动。 > - PD 部分配置项在首次启动成功后会持久化到 etcd 中且后续将以 etcd 中的配置为准。因此 PD 在首次启动后,这些配置项将无法再通过配置参数来进行修改,而需要使用 SQL、pd-ctl 或 PD server API 来动态进行修改。目前,[在线修改 PD 配置](https://docs.pingcap.com/zh/tidb/stable/dynamic-config#在线修改-pd-配置)文档中所列的配置项中,除 `log.level` 外,其他配置项在 PD 首次启动之后均不再支持通过配置参数进行修改。 +#### 配置 TiProxy 配置参数 + +你可以通过 TidbCluster CR 的 `spec.tiproxy.config` 来配置 TiProxy 配置参数。 + +```yaml +spec: + tiproxy: + config: | + [log] + level = "info" +``` + #### 配置 TiFlash 配置参数 你可以通过 TidbCluster CR 的 `spec.tiflash.config` 来配置 TiFlash 配置参数。 @@ -601,6 +624,7 @@ NodePort 有两种模式: - `externalTrafficPolicy=Local`:只有运行 TiDB 的机器会分配 NodePort 端口,用于访问本地的 TiDB 实例 + #### LoadBalancer 若运行在有 LoadBalancer 的环境,比如 Google Cloud、AWS 平台,建议使用云平台的 LoadBalancer 特性。 @@ -617,6 +641,8 @@ spec: 访问 [Kubernetes Service 文档](https://kubernetes.io/docs/concepts/services-networking/service/),了解更多 Service 特性以及云平台 Load Balancer 支持。 +若指定了 TiProxy,也会自动创建 `tiproxy-api` 和 `tiproxy-sql` 服务供使用。 + ### IPv6 支持 TiDB 自 v6.5.1 起支持使用 IPv6 地址进行所有网络连接。如果你使用 v1.4.3 或以上版本的 TiDB Operator 部署 TiDB,你可以通过配置 `spec.preferIPv6` 为 `ture` 来部署监听 IPv6 地址的 TiDB 集群。 diff --git a/zh/deploy-cluster-on-arm64.md b/zh/deploy-cluster-on-arm64.md index 5ea6ce7702..b22df0a7b4 100644 --- a/zh/deploy-cluster-on-arm64.md +++ b/zh/deploy-cluster-on-arm64.md @@ -61,6 +61,10 @@ summary: 本文档介绍如何在 ARM64 机器上部署 TiDB 集群 tiflash: baseImage: pingcap/tiflash-arm64 # ... + tiproxy: + baseImage: pingcap/tiflash + # no need for -arm64 + # ... ``` ## 初始化 TiDB 集群 diff --git a/zh/deploy-failures.md b/zh/deploy-failures.md index 1d79b1a382..0465e5e679 100644 --- a/zh/deploy-failures.md +++ b/zh/deploy-failures.md @@ -41,6 +41,7 @@ Pod 处于 Pending 状态,通常都是资源不满足导致的,比如: * 使用持久化存储的 PD、TiKV、TiFlash、Pump、Monitor、Backup、Restore Pod 使用的 PVC 的 StorageClass 不存在或 PV 不足 * Kubernetes 集群中没有节点能满足 Pod 申请的 CPU 或内存 * PD 或者 TiKV Replicas 数量和集群内节点数量不满足 tidb-scheduler 高可用调度策略 +* TiDB、TiProxy 等组件使用的证书没有配置 此时,可以通过 `kubectl describe pod` 命令查看 Pending 的具体原因: diff --git a/zh/deploy-on-general-kubernetes.md b/zh/deploy-on-general-kubernetes.md index c9f3a132fe..1cdf2c3e35 100644 --- a/zh/deploy-on-general-kubernetes.md +++ b/zh/deploy-on-general-kubernetes.md @@ -53,6 +53,7 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/deploy-on-general-kubernetes/','/zh/t pingcap/tidb-binlog:v7.5.0 pingcap/ticdc:v7.5.0 pingcap/tiflash:v7.5.0 + pingcap/tiproxy:latest pingcap/tidb-monitor-reloader:v1.0.1 pingcap/tidb-monitor-initializer:v7.5.0 grafana/grafana:7.5.11 @@ -71,6 +72,7 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/deploy-on-general-kubernetes/','/zh/t docker pull pingcap/tidb-binlog:v7.5.0 docker pull pingcap/ticdc:v7.5.0 docker pull pingcap/tiflash:v7.5.0 + docker pull pingcap/tiproxy:latest docker pull pingcap/tidb-monitor-reloader:v1.0.1 docker pull pingcap/tidb-monitor-initializer:v7.5.0 docker pull grafana/grafana:7.5.11 @@ -82,6 +84,7 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/deploy-on-general-kubernetes/','/zh/t docker save -o tidb-v7.5.0.tar pingcap/tidb:v7.5.0 docker save -o tidb-binlog-v7.5.0.tar pingcap/tidb-binlog:v7.5.0 docker save -o ticdc-v7.5.0.tar pingcap/ticdc:v7.5.0 + docker save -o tiproxy-latest.tar pingcap/tiproxy:latest docker save -o tiflash-v7.5.0.tar pingcap/tiflash:v7.5.0 docker save -o tidb-monitor-reloader-v1.0.1.tar pingcap/tidb-monitor-reloader:v1.0.1 docker save -o tidb-monitor-initializer-v7.5.0.tar pingcap/tidb-monitor-initializer:v7.5.0 @@ -100,6 +103,7 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/deploy-on-general-kubernetes/','/zh/t docker load -i tidb-v7.5.0.tar docker load -i tidb-binlog-v7.5.0.tar docker load -i ticdc-v7.5.0.tar + docker load -i tiproxy-latest.tar docker load -i tiflash-v7.5.0.tar docker load -i tidb-monitor-reloader-v1.0.1.tar docker load -i tidb-monitor-initializer-v7.5.0.tar diff --git a/zh/deploy-tidb-cluster-across-multiple-kubernetes.md b/zh/deploy-tidb-cluster-across-multiple-kubernetes.md index 83a6a136fa..ceba12cf1c 100644 --- a/zh/deploy-tidb-cluster-across-multiple-kubernetes.md +++ b/zh/deploy-tidb-cluster-across-multiple-kubernetes.md @@ -509,11 +509,12 @@ EOF 2. 以步骤 1 为例,按顺序进行如下升级操作: - 1. 如果集群中部署了 TiFlash,为所有部署了 TiFlash 的 Kubernetes 集群升级 TiFlash 版本。 - 2. 升级所有 Kubernetes 集群的 TiKV 版本。 - 3. 如果集群中部署了 Pump,为所有部署了 Pump 的 Kubernetes 集群升级 Pump 版本。 - 4. 升级所有 Kubernetes 集群的 TiDB 版本。 - 5. 如果集群中部署了 TiCDC,为所有部署了 TiCDC 的 Kubernetes 集群升级 TiCDC 版本。 + 1. 如果集群中部署了 TiProxy,为所有部署了 TiProxy 的 Kubernetes 集群升级 TiProxy 版本。 + 2. 如果集群中部署了 TiFlash,为所有部署了 TiFlash 的 Kubernetes 集群升级 TiFlash 版本。 + 3. 升级所有 Kubernetes 集群的 TiKV 版本。 + 4. 如果集群中部署了 Pump,为所有部署了 Pump 的 Kubernetes 集群升级 Pump 版本。 + 5. 升级所有 Kubernetes 集群的 TiDB 版本。 + 6. 如果集群中部署了 TiCDC,为所有部署了 TiCDC 的 Kubernetes 集群升级 TiCDC 版本。 ## 退出和回收已加入的 TidbCluster @@ -521,7 +522,7 @@ EOF - 缩容后,集群中 TiKV 副本数应大于 PD 中设置的 `max-replicas` 数量,默认情况下 TiKV 副本数量需要大于 3。 -以上面文档创建的第二个 TidbCluster 为例,先将 PD、TiKV、TiDB 的副本数设置为 0,如果开启了 TiFlash、TiCDC、Pump 等其他组件,也请一并将其副本数设为 0: +以上面文档创建的第二个 TidbCluster 为例,先将 PD、TiKV、TiDB 的副本数设置为 0,如果开启了 TiFlash、TiCDC、TiProxy、Pump 等其他组件,也请一并将其副本数设为 0: {{< copyable "shell-regular" >}} @@ -643,4 +644,4 @@ kubectl patch tidbcluster cluster1 --type merge -p '{"spec":{"acrossK8s": true}} ## 跨多个 Kubernetes 集群部署的 TiDB 集群监控 -请参阅[跨多个 Kubernetes 集群监控 TiDB 集群](deploy-tidb-monitor-across-multiple-kubernetes.md) \ No newline at end of file +请参阅[跨多个 Kubernetes 集群监控 TiDB 集群](deploy-tidb-monitor-across-multiple-kubernetes.md) diff --git a/zh/enable-tls-between-components.md b/zh/enable-tls-between-components.md index 80eb5d2c03..cf39576227 100644 --- a/zh/enable-tls-between-components.md +++ b/zh/enable-tls-between-components.md @@ -9,7 +9,7 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] 本文主要描述了在 Kubernetes 上如何为 TiDB 集群组件间开启 TLS。TiDB Operator 从 v1.1 开始已经支持为 Kubernetes 上 TiDB 集群组件间开启 TLS。开启步骤为: 1. 为即将被创建的 TiDB 集群的每个组件生成证书: - - 为 PD/TiKV/TiDB/Pump/Drainer/TiFlash/TiKV Importer/TiDB Lightning 组件分别创建一套 Server 端证书,保存为 Kubernetes Secret 对象:`${cluster_name}-${component_name}-cluster-secret` + - 为 PD/TiKV/TiDB/Pump/Drainer/TiFlash/TiProxy/TiKV Importer/TiDB Lightning 组件分别创建一套 Server 端证书,保存为 Kubernetes Secret 对象:`${cluster_name}-${component_name}-cluster-secret` - 为它们的各种客户端创建一套共用的 Client 端证书,保存为 Kubernetes Secret 对象:`${cluster_name}-cluster-client-secret` > **注意:** @@ -401,6 +401,47 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=internal ticdc-server.json | cfssljson -bare ticdc-server ``` + - TiProxy Server 端证书 + + 首先生成默认的 `tiproxy-server.json` 文件: + + {{< copyable "shell-regular" >}} + + ``` shell + cfssl print-defaults csr > tiproxy-server.json + ``` + + 然后编辑这个文件,修改 `CN`,`hosts` 属性: + + ``` json + ... + "CN": "TiDB", + "hosts": [ + "127.0.0.1", + "::1", + "${cluster_name}-tiproxy", + "${cluster_name}-tiproxy.${namespace}", + "${cluster_name}-tiproxy.${namespace}.svc", + "${cluster_name}-tiproxy-peer", + "${cluster_name}-tiproxy-peer.${namespace}", + "${cluster_name}-tiproxy-peer.${namespace}.svc", + "*.${cluster_name}-tiproxy-peer", + "*.${cluster_name}-tiproxy-peer.${namespace}", + "*.${cluster_name}-tiproxy-peer.${namespace}.svc" + ], + ... + ``` + + 其中 `${cluster_name}` 为集群的名字,`${namespace}` 为 TiDB 集群部署的命名空间,用户也可以添加自定义 `hosts`。 + + 最后生成 TiProxy Server 端证书: + + {{< copyable "shell-regular" >}} + + ``` shell + cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=internal tiproxy-server.json | cfssljson -bare tiproxy-server + ``` + - TiFlash Server 端证书 首先生成默认的 `tiflash-server.json` 文件: @@ -596,6 +637,14 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] kubectl create secret generic ${cluster_name}-ticdc-cluster-secret --namespace=${namespace} --from-file=tls.crt=ticdc-server.pem --from-file=tls.key=ticdc-server-key.pem --from-file=ca.crt=ca.pem ``` + TiProxy 集群证书 Secret: + + {{< copyable "shell-regular" >}} + + ``` shell + kubectl create secret generic ${cluster_name}-tiproxy-cluster-secret --namespace=${namespace} --from-file=tls.crt=tiproxy-server.pem --from-file=tls.key=tiproxy-server-key.pem --from-file=ca.crt=ca.pem + ``` + TiFlash 集群证书 Secret: {{< copyable "shell-regular" >}} diff --git a/zh/faq.md b/zh/faq.md index f6f902e95d..37ea1e9875 100644 --- a/zh/faq.md +++ b/zh/faq.md @@ -135,7 +135,7 @@ PD 和 TiKV 使用 [Raft 一致性算法](https://raft.github.io/)将存储的 * 升级中 * 缩扩容中 -* PD、TiDB、TiKV、TiFlash 任一 Pod 状态不是 Ready +* PD、TiDB、TiKV、TiFlash、TiProxy 任一 Pod 状态不是 Ready 要判断 TiDB 集群是否真正不可用,你可以尝试连接 TiDB。如果无法连接成功,说明 TiDB 集群真正不可用。 diff --git a/zh/modify-tidb-configuration.md b/zh/modify-tidb-configuration.md index 5b150c5ef3..df136a23c3 100644 --- a/zh/modify-tidb-configuration.md +++ b/zh/modify-tidb-configuration.md @@ -13,7 +13,7 @@ TiDB 集群自身支持通过 SQL 对 TiDB、TiKV、PD 等组件进行[在线配 对于 TiDB 和 TiKV,如果通过 SQL 进行[在线配置变更](https://docs.pingcap.com/zh/tidb/stable/dynamic-config),在升级或者重启后,配置项会被 TidbCluster CR 中的配置项覆盖,导致在线变更的配置失效。因此,如果需要持久化修改配置,你需要在 TidbCluster CR 中直接修改配置项。 -对于 TiFlash、TiCDC 和 Pump,目前只能通过在 TidbCluster CR 中修改配置项。 +对于 TiFlash、TiProxy、TiCDC 和 Pump,目前只能通过在 TidbCluster CR 中修改配置项。 在 TidbCluster CR 中修改配置项的步骤如下: @@ -42,3 +42,7 @@ TiDB 集群自身支持通过 SQL 对 TiDB、TiKV、PD 等组件进行[在线配 PD 中[支持在线修改的配置项](https://docs.pingcap.com/zh/tidb/stable/dynamic-config#在线修改-pd-配置)里,除 `log.level` 外,其他配置项在 PD 首次启动之后均不再支持通过 TidbCluster CR 进行修改。 对于部署在 Kubernetes 中的 TiDB 集群,如需修改 PD 配置参数,需要使用 [SQL](https://docs.pingcap.com/zh/tidb/stable/dynamic-config/#在线修改-pd-配置)、[pd-ctl](https://docs.pingcap.com/tidb/stable/pd-control#config-show--set-option-value--placement-rules) 或 PD server API 来动态进行修改。 + +## 修改 TiProxy 组件配置 + +修改 TiProxy 组件的配置永远不会重启 POD 。需要手动杀死 POD,更改 POD 镜像等配置,来手动触发重启。 diff --git a/zh/renew-tls-certificate.md b/zh/renew-tls-certificate.md index 91f3736840..4e7ae0e174 100644 --- a/zh/renew-tls-certificate.md +++ b/zh/renew-tls-certificate.md @@ -67,7 +67,7 @@ summary: 介绍如何更新和替换 TiDB 组件间的 TLS 证书。 > **注意:** > - > 上述示例命令中仅更新了 PD、TiKV、TiDB 的组件间 Server 端 CA 证书与 Client 端 CA 证书,如需更新其他如 TiCDC、TiFlash 等的 Server 端 CA 证书,可使用类似命令进行更新。 + > 上述示例命令中仅更新了 PD、TiKV、TiDB 的组件间 Server 端 CA 证书与 Client 端 CA 证书,如需更新其他如 TiCDC、TiFlash、TiProxy 等的 Server 端 CA 证书,可使用类似命令进行更新。 5. 参考[滚动重启 TiDB 集群](restart-a-tidb-cluster.md)对需要加载组合 CA 证书的组件进行滚动重启。 @@ -110,7 +110,7 @@ summary: 介绍如何更新和替换 TiDB 组件间的 TLS 证书。 > **注意:** > - > 上述示例命令中仅更新了 PD、TiKV、TiDB 的组件间 Server 端证书与 Client 端证书,如需更新其他如 TiCDC、TiFlash 等的 Server 端证书,可使用类似命令进行更新。 + > 上述示例命令中仅更新了 PD、TiKV、TiDB 的组件间 Server 端证书与 Client 端证书,如需更新其他如 TiCDC、TiFlash、TiProxy 等的 Server 端证书,可使用类似命令进行更新。 3. 参考[滚动重启 TiDB 集群](restart-a-tidb-cluster.md)对需要加载新证书的组件进行滚动重启。 diff --git a/zh/scale-a-tidb-cluster.md b/zh/scale-a-tidb-cluster.md index 5738a6ae14..5598733a11 100644 --- a/zh/scale-a-tidb-cluster.md +++ b/zh/scale-a-tidb-cluster.md @@ -15,9 +15,9 @@ TiDB 水平扩缩容操作指的是通过增加或减少 Pod 的数量,来达 * 如果要进行扩容操作,可将某个组件的 `replicas` 值**调大**。扩容操作会按照 Pod 编号由小到大增加组件 Pod,直到 Pod 数量与 `replicas` 值相等。 * 如果要进行缩容操作,可将某个组件的 `replicas` 值**调小**。缩容操作会按照 Pod 编号由大到小删除组件 Pod,直到 Pod 数量与 `replicas` 值相等。 -### 水平扩缩容 PD、TiKV、TiDB +### 水平扩缩容 PD、TiKV、TiDB、TiProxy -如果要对 PD、TiKV、TiDB 进行水平扩缩容,可以使用 kubectl 修改集群所对应的 `TidbCluster` 对象中的 `spec.pd.replicas`、`spec.tikv.replicas`、`spec.tidb.replicas` 至期望值。 +如果要对 PD、TiKV、TiDB、TiProxy 进行水平扩缩容,可以使用 kubectl 修改集群所对应的 `TidbCluster` 对象中的 `spec.pd.replicas`、`spec.tikv.replicas`、`spec.tidb.replicas`、`spec.tiproxy.replicas` 至期望值。 1. 按需修改 TiDB 集群组件的 `replicas` 值。例如,执行以下命令可将 PD 的 `replicas` 值设置为 3: @@ -158,7 +158,7 @@ watch kubectl -n ${namespace} get pod -o wide 本小节介绍如何对 PD、TiKV、TiDB、TiFlash、TiCDC 进行垂直扩缩容。 -- 如果要对 PD、TiKV、TiDB 进行垂直扩缩容,通过 kubectl 修改集群所对应的 `TidbCluster` 对象的 `spec.pd.resources`、`spec.tikv.resources`、`spec.tidb.resources` 至期望值。 +- 如果要对 PD、TiKV、TiDB、TiProxy 进行垂直扩缩容,通过 kubectl 修改集群所对应的 `TidbCluster` 对象的 `spec.pd.resources`、`spec.tikv.resources`、`spec.tidb.resources` 至期望值。 - 如果要对 TiFlash 进行垂直扩缩容,修改 `spec.tiflash.resources` 至期望值。 diff --git a/zh/suspend-tidb-cluster.md b/zh/suspend-tidb-cluster.md index 918e1e8dc8..16b29b9db2 100644 --- a/zh/suspend-tidb-cluster.md +++ b/zh/suspend-tidb-cluster.md @@ -59,6 +59,7 @@ summary: 了解如何通过配置挂起 Kubernetes 上的 TiDB 集群。 * TiCDC * TiKV * Pump + * TiProxy * PD ## 恢复 TiDB 集群 diff --git a/zh/upgrade-a-tidb-cluster.md b/zh/upgrade-a-tidb-cluster.md index 54de5ef7fc..4066f6b1c7 100644 --- a/zh/upgrade-a-tidb-cluster.md +++ b/zh/upgrade-a-tidb-cluster.md @@ -12,7 +12,7 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/upgrade-a-tidb-cluster/'] Kubernetes 提供了[滚动更新功能](https://kubernetes.io/docs/tutorials/kubernetes-basics/update/update-intro/),在不影响应用可用性的前提下执行更新。 -使用滚动更新时,TiDB Operator 会按 PD、TiFlash、TiKV、TiDB 的顺序,串行地删除旧版本的 Pod,并创建新版本的 Pod。当新版本的 Pod 正常运行后,再处理下一个 Pod。 +使用滚动更新时,TiDB Operator 会按 PD、TiProxy、TiFlash、TiKV、TiDB 的顺序,串行地删除旧版本的 Pod,并创建新版本的 Pod。当新版本的 Pod 正常运行后,再处理下一个 Pod。 滚动更新中,TiDB Operator 会自动处理 PD 和 TiKV 的 Leader 迁移。因此,在多节点的部署拓扑下(最小环境:PD \* 3、TiKV \* 3、TiDB \* 2),滚动更新 TiKV、PD 不会影响业务正常运行。对于有连接重试功能的客户端,滚动更新 TiDB 同样不会影响业务。 From ceae1c19150dbae1fa8e7b73689e76ab39ee7cd0 Mon Sep 17 00:00:00 2001 From: xhe Date: Wed, 13 Dec 2023 10:54:09 +0800 Subject: [PATCH 02/15] fix lint Signed-off-by: xhe --- zh/configure-a-tidb-cluster.md | 1 - 1 file changed, 1 deletion(-) diff --git a/zh/configure-a-tidb-cluster.md b/zh/configure-a-tidb-cluster.md index 8e277c7c62..400474ca9e 100644 --- a/zh/configure-a-tidb-cluster.md +++ b/zh/configure-a-tidb-cluster.md @@ -624,7 +624,6 @@ NodePort 有两种模式: - `externalTrafficPolicy=Local`:只有运行 TiDB 的机器会分配 NodePort 端口,用于访问本地的 TiDB 实例 - #### LoadBalancer 若运行在有 LoadBalancer 的环境,比如 Google Cloud、AWS 平台,建议使用云平台的 LoadBalancer 特性。 From cb29fdae73eadadbadc2042cbb0de3371bbad5c9 Mon Sep 17 00:00:00 2001 From: xhe Date: Wed, 13 Dec 2023 13:54:30 +0800 Subject: [PATCH 03/15] Apply suggestions from code review Co-authored-by: Ran --- zh/configure-a-tidb-cluster.md | 4 +++- zh/deploy-cluster-on-arm64.md | 2 +- zh/modify-tidb-configuration.md | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/zh/configure-a-tidb-cluster.md b/zh/configure-a-tidb-cluster.md index 400474ca9e..16b5f2d7d2 100644 --- a/zh/configure-a-tidb-cluster.md +++ b/zh/configure-a-tidb-cluster.md @@ -253,7 +253,7 @@ spec: #### 部署 TiProxy -部署方法与PD一致,需要修改 `spec.tiproxy` 来手动指定 TiProxy 组件的数量。 +部署方法与 PD 一致。此外,还需要修改 `spec.tiproxy` 来手动指定 TiProxy 组件的数量。 ```yaml tiproxy: @@ -391,6 +391,8 @@ spec: level = "info" ``` +获取所有可以配置的 TiProxy 配置参数,请参考 [TiProxy 配置文档](link)。 + #### 配置 TiFlash 配置参数 你可以通过 TidbCluster CR 的 `spec.tiflash.config` 来配置 TiFlash 配置参数。 diff --git a/zh/deploy-cluster-on-arm64.md b/zh/deploy-cluster-on-arm64.md index b22df0a7b4..e2b07b84f6 100644 --- a/zh/deploy-cluster-on-arm64.md +++ b/zh/deploy-cluster-on-arm64.md @@ -62,7 +62,7 @@ summary: 本文档介绍如何在 ARM64 机器上部署 TiDB 集群 baseImage: pingcap/tiflash-arm64 # ... tiproxy: - baseImage: pingcap/tiflash + baseImage: pingcap/tiproxy # no need for -arm64 # ... ``` diff --git a/zh/modify-tidb-configuration.md b/zh/modify-tidb-configuration.md index df136a23c3..544a356587 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 镜像等配置,来手动触发重启。 +修改 TiProxy 组件的配置永远不会重启 Pod。如果你想要重启 Pod,需要手动杀死 Pod,更改 Pod 镜像等配置,来手动触发重启。 From 72edaf75c1dff05a04f593840fb1872154fdc120 Mon Sep 17 00:00:00 2001 From: xhe Date: Tue, 19 Dec 2023 11:42:38 +0800 Subject: [PATCH 04/15] Apply suggestions from code review Co-authored-by: xixirangrang --- zh/enable-tls-between-components.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/zh/enable-tls-between-components.md b/zh/enable-tls-between-components.md index cf39576227..a58d313992 100644 --- a/zh/enable-tls-between-components.md +++ b/zh/enable-tls-between-components.md @@ -432,12 +432,10 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] ... ``` - 其中 `${cluster_name}` 为集群的名字,`${namespace}` 为 TiDB 集群部署的命名空间,用户也可以添加自定义 `hosts`。 + 其中 `${cluster_name}` 为集群的名字,`${namespace}` 为 TiDB 集群部署的命名空间,你也可以添加自定义 `hosts`。 最后生成 TiProxy Server 端证书: - {{< copyable "shell-regular" >}} - ``` shell cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=internal tiproxy-server.json | cfssljson -bare tiproxy-server ``` @@ -639,8 +637,6 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] TiProxy 集群证书 Secret: - {{< copyable "shell-regular" >}} - ``` shell kubectl create secret generic ${cluster_name}-tiproxy-cluster-secret --namespace=${namespace} --from-file=tls.crt=tiproxy-server.pem --from-file=tls.key=tiproxy-server-key.pem --from-file=ca.crt=ca.pem ``` From 3ebb7f5bdf6940a4c8c8a2d995bae518639eb336 Mon Sep 17 00:00:00 2001 From: xhe Date: Wed, 13 Dec 2023 10:54:09 +0800 Subject: [PATCH 05/15] remove unsupported Signed-off-by: xhe --- zh/deploy-cluster-on-arm64.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/zh/deploy-cluster-on-arm64.md b/zh/deploy-cluster-on-arm64.md index e2b07b84f6..5ea6ce7702 100644 --- a/zh/deploy-cluster-on-arm64.md +++ b/zh/deploy-cluster-on-arm64.md @@ -61,10 +61,6 @@ summary: 本文档介绍如何在 ARM64 机器上部署 TiDB 集群 tiflash: baseImage: pingcap/tiflash-arm64 # ... - tiproxy: - baseImage: pingcap/tiproxy - # no need for -arm64 - # ... ``` ## 初始化 TiDB 集群 From d1a12b4429c8a60197e390e1c15a7e9d7654836f Mon Sep 17 00:00:00 2001 From: xhe Date: Tue, 19 Dec 2023 11:48:19 +0800 Subject: [PATCH 06/15] Update zh/enable-tls-between-components.md Co-authored-by: xixirangrang --- zh/enable-tls-between-components.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/zh/enable-tls-between-components.md b/zh/enable-tls-between-components.md index a58d313992..f67f8f81f0 100644 --- a/zh/enable-tls-between-components.md +++ b/zh/enable-tls-between-components.md @@ -405,8 +405,6 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] 首先生成默认的 `tiproxy-server.json` 文件: - {{< copyable "shell-regular" >}} - ``` shell cfssl print-defaults csr > tiproxy-server.json ``` From 8851df02beaca52e31f77e5cebd524738ac158a9 Mon Sep 17 00:00:00 2001 From: xhe Date: Tue, 19 Dec 2023 13:06:48 +0800 Subject: [PATCH 07/15] Update zh/scale-a-tidb-cluster.md Co-authored-by: xixirangrang --- zh/scale-a-tidb-cluster.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/scale-a-tidb-cluster.md b/zh/scale-a-tidb-cluster.md index 5598733a11..20465eff42 100644 --- a/zh/scale-a-tidb-cluster.md +++ b/zh/scale-a-tidb-cluster.md @@ -156,7 +156,7 @@ watch kubectl -n ${namespace} get pod -o wide ### 垂直扩缩容各组件 -本小节介绍如何对 PD、TiKV、TiDB、TiFlash、TiCDC 进行垂直扩缩容。 +本小节介绍如何对 PD、TiKV、TiDB、TiProxy、TiFlash、TiCDC 进行垂直扩缩容。 - 如果要对 PD、TiKV、TiDB、TiProxy 进行垂直扩缩容,通过 kubectl 修改集群所对应的 `TidbCluster` 对象的 `spec.pd.resources`、`spec.tikv.resources`、`spec.tidb.resources` 至期望值。 From b967895f210cec9ebb31327dce588b13c2918ab4 Mon Sep 17 00:00:00 2001 From: xhe Date: Thu, 21 Dec 2023 11:46:53 +0800 Subject: [PATCH 08/15] update Signed-off-by: xhe --- zh/TOC.md | 1 + zh/configure-a-tidb-cluster.md | 2 +- zh/deploy-tiproxy.md | 102 ++++++++++++++++++++++++++++++++ zh/modify-tidb-configuration.md | 2 +- 4 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 zh/deploy-tiproxy.md diff --git a/zh/TOC.md b/zh/TOC.md index 321139887f..09e7b8e5b1 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 16b5f2d7d2..ed4593d176 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 0000000000..411c20b630 --- /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 544a356587..3210a8684c 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 镜像等配置,来手动触发重启。 From 8ad4b7f7e4247b56fd1123281382dcd3fb09778a Mon Sep 17 00:00:00 2001 From: xhe Date: Thu, 21 Dec 2023 11:51:07 +0800 Subject: [PATCH 09/15] add description on service Signed-off-by: xhe --- zh/deploy-tiproxy.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/zh/deploy-tiproxy.md b/zh/deploy-tiproxy.md index 411c20b630..377d433489 100644 --- a/zh/deploy-tiproxy.md +++ b/zh/deploy-tiproxy.md @@ -51,6 +51,15 @@ summary: 了解如何在 Kubernetes 上为已有 TiDB 集群部署负载均衡 T 要获取更多可配置的 TiProxy 配置参数,请参考 [TiProxy 配置文档](https://docs.pingcap.com/zh/tidb/stable/tiproxy/tiproxy-configuration)。 + +TiProxy 启动后可通过以下命令找到对应的 `tiproxy-sql` 负载均衡服务。 + + {{< copyable "shell-regular" >}} + + ``` shell + kubectl get svc -n ${namespace} + ``` + ## 移除 TiProxy 如果你的 TiDB 集群不再需要 TiProxy,请进行以下操作移除 TiProxy。 From b323c38ee7d17029eefbf8a588087fcc5b10c7c3 Mon Sep 17 00:00:00 2001 From: xhe Date: Fri, 22 Dec 2023 12:56:35 +0800 Subject: [PATCH 10/15] Apply suggestions from code review Co-authored-by: xixirangrang --- zh/deploy-tiproxy.md | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/zh/deploy-tiproxy.md b/zh/deploy-tiproxy.md index 377d433489..658d3dd243 100644 --- a/zh/deploy-tiproxy.md +++ b/zh/deploy-tiproxy.md @@ -21,16 +21,12 @@ summary: 了解如何在 Kubernetes 上为已有 TiDB 集群部署负载均衡 T 1. 编辑 TidbCluster Custom Resource (CR): - {{< copyable "shell-regular" >}} - ``` shell kubectl edit tc ${cluster_name} -n ${namespace} ``` 2. 按照如下示例增加 TiProxy 配置: - {{< copyable "shell-regular" >}} - ```yaml spec: tiproxy: @@ -52,9 +48,7 @@ summary: 了解如何在 Kubernetes 上为已有 TiDB 集群部署负载均衡 T 要获取更多可配置的 TiProxy 配置参数,请参考 [TiProxy 配置文档](https://docs.pingcap.com/zh/tidb/stable/tiproxy/tiproxy-configuration)。 -TiProxy 启动后可通过以下命令找到对应的 `tiproxy-sql` 负载均衡服务。 - - {{< copyable "shell-regular" >}} +TiProxy 启动后,可通过以下命令找到对应的 `tiproxy-sql` 负载均衡服务。 ``` shell kubectl get svc -n ${namespace} @@ -64,9 +58,7 @@ TiProxy 启动后可通过以下命令找到对应的 `tiproxy-sql` 负载均衡 如果你的 TiDB 集群不再需要 TiProxy,请进行以下操作移除 TiProxy。 -1. 执行以下命令修改 `spec.tiproxy.replicas` 为 0 来移除 TiProxy Pod。 - - {{< copyable "shell-regular" >}} +1. 执行以下命令修改 `spec.tiproxy.replicas` 为 `0` 来移除 TiProxy Pod。 ```shell kubectl patch tidbcluster ${cluster_name} -n ${namespace} --type merge -p '{"spec":{"tiproxy":{"replicas": 0}}}' @@ -74,8 +66,6 @@ TiProxy 启动后可通过以下命令找到对应的 `tiproxy-sql` 负载均衡 2. 检查 TiProxy Pod 状态。 - {{< copyable "shell-regular" >}} - ```shell kubectl get pod -n ${namespace} -l app.kubernetes.io/component=tiproxy,app.kubernetes.io/instance=${cluster_name} ``` @@ -94,15 +84,11 @@ TiProxy 启动后可通过以下命令找到对应的 `tiproxy-sql` 负载均衡 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" >}} + 3. 执行以下命令,检查是否已经成功删除 TiProxy 集群的 StatefulSet: ```shell kubectl get sts -n ${namespace} -l app.kubernetes.io/component=tiproxy,app.kubernetes.io/instance=${cluster_name} From d642e0e216147559eefc84d6929b02de7974560f Mon Sep 17 00:00:00 2001 From: xhe Date: Fri, 22 Dec 2023 12:56:49 +0800 Subject: [PATCH 11/15] Apply suggestions from code review Co-authored-by: xixirangrang --- zh/deploy-tiproxy.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/zh/deploy-tiproxy.md b/zh/deploy-tiproxy.md index 658d3dd243..79ccc79561 100644 --- a/zh/deploy-tiproxy.md +++ b/zh/deploy-tiproxy.md @@ -56,7 +56,7 @@ TiProxy 启动后,可通过以下命令找到对应的 `tiproxy-sql` 负载均 ## 移除 TiProxy -如果你的 TiDB 集群不再需要 TiProxy,请进行以下操作移除 TiProxy。 +如果你的 TiDB 集群不再需要 TiProxy,执行以下操作移除。 1. 执行以下命令修改 `spec.tiproxy.replicas` 为 `0` 来移除 TiProxy Pod。 @@ -76,8 +76,6 @@ TiProxy 启动后,可通过以下命令找到对应的 `tiproxy-sql` 负载均 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"}]' ``` From a5d43c773ec6603c2231e82821dc2643573a957e Mon Sep 17 00:00:00 2001 From: Ran Date: Fri, 5 Jan 2024 13:19:26 +0800 Subject: [PATCH 12/15] Update zh/deploy-tidb-cluster-across-multiple-kubernetes.md --- zh/deploy-tidb-cluster-across-multiple-kubernetes.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/zh/deploy-tidb-cluster-across-multiple-kubernetes.md b/zh/deploy-tidb-cluster-across-multiple-kubernetes.md index ceba12cf1c..3272c420b1 100644 --- a/zh/deploy-tidb-cluster-across-multiple-kubernetes.md +++ b/zh/deploy-tidb-cluster-across-multiple-kubernetes.md @@ -509,12 +509,12 @@ EOF 2. 以步骤 1 为例,按顺序进行如下升级操作: - 1. 如果集群中部署了 TiProxy,为所有部署了 TiProxy 的 Kubernetes 集群升级 TiProxy 版本。 - 2. 如果集群中部署了 TiFlash,为所有部署了 TiFlash 的 Kubernetes 集群升级 TiFlash 版本。 - 3. 升级所有 Kubernetes 集群的 TiKV 版本。 - 4. 如果集群中部署了 Pump,为所有部署了 Pump 的 Kubernetes 集群升级 Pump 版本。 - 5. 升级所有 Kubernetes 集群的 TiDB 版本。 - 6. 如果集群中部署了 TiCDC,为所有部署了 TiCDC 的 Kubernetes 集群升级 TiCDC 版本。 + 1. 如果集群中部署了 TiProxy,为所有部署了 TiProxy 的 Kubernetes 集群升级 TiProxy 版本。 + 2. 如果集群中部署了 TiFlash,为所有部署了 TiFlash 的 Kubernetes 集群升级 TiFlash 版本。 + 3. 升级所有 Kubernetes 集群的 TiKV 版本。 + 4. 如果集群中部署了 Pump,为所有部署了 Pump 的 Kubernetes 集群升级 Pump 版本。 + 5. 升级所有 Kubernetes 集群的 TiDB 版本。 + 6. 如果集群中部署了 TiCDC,为所有部署了 TiCDC 的 Kubernetes 集群升级 TiCDC 版本。 ## 退出和回收已加入的 TidbCluster From a5cdaa61f72777ac8a284b648b6014a24c4c9fb5 Mon Sep 17 00:00:00 2001 From: xhe Date: Fri, 5 Jan 2024 13:54:26 +0800 Subject: [PATCH 13/15] Apply suggestions from code review Co-authored-by: Ran --- zh/configure-a-tidb-cluster.md | 2 +- zh/deploy-tiproxy.md | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/zh/configure-a-tidb-cluster.md b/zh/configure-a-tidb-cluster.md index ed4593d176..c153bd1034 100644 --- a/zh/configure-a-tidb-cluster.md +++ b/zh/configure-a-tidb-cluster.md @@ -391,7 +391,7 @@ spec: level = "info" ``` -获取所有可以配置的 TiProxy 配置参数,请参考 [TiProxy 配置文档](https://docs.pingcap.com/zh/tidb/stable/tiproxy/tiproxy-configuration)。 +获取所有可以配置的 TiProxy 配置参数,请参考 [TiProxy 配置文档](https://docs.pingcap.com/zh/tidb/v7.6/tiproxy/tiproxy-configuration)。 #### 配置 TiFlash 配置参数 diff --git a/zh/deploy-tiproxy.md b/zh/deploy-tiproxy.md index 79ccc79561..c17e159c7a 100644 --- a/zh/deploy-tiproxy.md +++ b/zh/deploy-tiproxy.md @@ -5,7 +5,7 @@ summary: 了解如何在 Kubernetes 上为已有 TiDB 集群部署负载均衡 T # 为已有 TiDB 集群部署负载均衡 TiProxy -本文介绍在 Kubernetes 上如何为已有的 TiDB 集群部署或删除 TiDB 负载均衡 [TiProxy](https://docs.pingcap.com/zh/tidb/stable/tiproxy/tiproxy-overview)。TiProxy 放置在客户端和 TiDB server 之间,为 TiDB 提供负载均衡、连接保持、服务发现等功能。 +本文介绍在 Kubernetes 上如何为已有的 TiDB 集群部署或删除 TiDB 负载均衡 [TiProxy](https://docs.pingcap.com/zh/tidb/v7.6/tiproxy/tiproxy-overview)。TiProxy 放置在客户端和 TiDB server 之间,为 TiDB 提供负载均衡、连接保持、服务发现等功能。 > **注意:** > @@ -29,7 +29,7 @@ summary: 了解如何在 Kubernetes 上为已有 TiDB 集群部署负载均衡 T ```yaml spec: - tiproxy: + tiproxy: baseImage: pingcap/tiproxy replicas: 3 ``` @@ -45,14 +45,12 @@ summary: 了解如何在 Kubernetes 上为已有 TiDB 集群部署负载均衡 T level = "info" ``` - 要获取更多可配置的 TiProxy 配置参数,请参考 [TiProxy 配置文档](https://docs.pingcap.com/zh/tidb/stable/tiproxy/tiproxy-configuration)。 - - + 要获取更多可配置的 TiProxy 配置参数,请参考 [TiProxy 配置文档](https://docs.pingcap.com/zh/tidb/v7.6/tiproxy/tiproxy-configuration)。 TiProxy 启动后,可通过以下命令找到对应的 `tiproxy-sql` 负载均衡服务。 - ``` shell - kubectl get svc -n ${namespace} - ``` +``` shell +kubectl get svc -n ${namespace} +``` ## 移除 TiProxy From 83c3db57b6b31bc08e20db0ff45976d5103efd0e Mon Sep 17 00:00:00 2001 From: xhe Date: Mon, 8 Jan 2024 12:32:48 +0800 Subject: [PATCH 14/15] Apply suggestions from code review Co-authored-by: xixirangrang --- zh/deploy-tidb-cluster-across-multiple-kubernetes.md | 2 +- zh/deploy-tiproxy.md | 1 + zh/enable-tls-between-components.md | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/zh/deploy-tidb-cluster-across-multiple-kubernetes.md b/zh/deploy-tidb-cluster-across-multiple-kubernetes.md index 3272c420b1..ee2b120a2e 100644 --- a/zh/deploy-tidb-cluster-across-multiple-kubernetes.md +++ b/zh/deploy-tidb-cluster-across-multiple-kubernetes.md @@ -522,7 +522,7 @@ EOF - 缩容后,集群中 TiKV 副本数应大于 PD 中设置的 `max-replicas` 数量,默认情况下 TiKV 副本数量需要大于 3。 -以上面文档创建的第二个 TidbCluster 为例,先将 PD、TiKV、TiDB 的副本数设置为 0,如果开启了 TiFlash、TiCDC、TiProxy、Pump 等其他组件,也请一并将其副本数设为 0: +以上面文档创建的第二个 TidbCluster 为例,先将 PD、TiKV、TiDB 的副本数设置为 0,如果开启了 TiFlash、TiCDC、TiProxy、Pump 等其他组件,也请一并将其副本数设为 `0`: {{< copyable "shell-regular" >}} diff --git a/zh/deploy-tiproxy.md b/zh/deploy-tiproxy.md index c17e159c7a..4990b08ded 100644 --- a/zh/deploy-tiproxy.md +++ b/zh/deploy-tiproxy.md @@ -46,6 +46,7 @@ summary: 了解如何在 Kubernetes 上为已有 TiDB 集群部署负载均衡 T ``` 要获取更多可配置的 TiProxy 配置参数,请参考 [TiProxy 配置文档](https://docs.pingcap.com/zh/tidb/v7.6/tiproxy/tiproxy-configuration)。 + TiProxy 启动后,可通过以下命令找到对应的 `tiproxy-sql` 负载均衡服务。 ``` shell diff --git a/zh/enable-tls-between-components.md b/zh/enable-tls-between-components.md index f67f8f81f0..c1c8d7518a 100644 --- a/zh/enable-tls-between-components.md +++ b/zh/enable-tls-between-components.md @@ -409,7 +409,7 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] cfssl print-defaults csr > tiproxy-server.json ``` - 然后编辑这个文件,修改 `CN`,`hosts` 属性: + 然后编辑这个文件,修改 `CN` 和 `hosts` 属性: ``` json ... From c3efc858e533b34d4487cabde49cffedd7d29a45 Mon Sep 17 00:00:00 2001 From: Ran Date: Fri, 12 Jan 2024 13:38:09 +0800 Subject: [PATCH 15/15] Update zh/deploy-tidb-cluster-across-multiple-kubernetes.md Co-authored-by: xixirangrang --- zh/deploy-tidb-cluster-across-multiple-kubernetes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh/deploy-tidb-cluster-across-multiple-kubernetes.md b/zh/deploy-tidb-cluster-across-multiple-kubernetes.md index ee2b120a2e..73ec68ee13 100644 --- a/zh/deploy-tidb-cluster-across-multiple-kubernetes.md +++ b/zh/deploy-tidb-cluster-across-multiple-kubernetes.md @@ -644,4 +644,4 @@ kubectl patch tidbcluster cluster1 --type merge -p '{"spec":{"acrossK8s": true}} ## 跨多个 Kubernetes 集群部署的 TiDB 集群监控 -请参阅[跨多个 Kubernetes 集群监控 TiDB 集群](deploy-tidb-monitor-across-multiple-kubernetes.md) +请参阅[跨多个 Kubernetes 集群监控 TiDB 集群](deploy-tidb-monitor-across-multiple-kubernetes.md)。