📣

TiDB Cloud Serverless 现已更名为
TiDB Cloud Starter
!体验不变,名字焕新。
立即试用 →

手动扩缩容 Kubernetes 上的 TiDB 集群

本文介绍如何对部署在 Kubernetes 上的 TiDB 集群进行手动水平扩缩容和垂直扩缩容。

水平扩缩容

水平扩缩容操作是指通过增加或减少组件的 Pod 的数量,来达到集群扩缩容的目的。可通过修改组件的 replicas 参数来控制 Pod 数量,从而实现扩容或缩容。

  • 如果要进行扩容操作,可将某个组件的 replicas调大。扩容操作会增加组件 Pod,直到 Pod 数量与 replicas 值相等。
  • 如果要进行缩容操作,可将某个组件的 replicas调小。缩容操作会删除组件 Pod,直到 Pod 数量与 replicas 值相等。

如果要对 TiDB 集群进行水平扩缩容,你可以使用 kubectl 修改对应组件的 Component Group Custom Resource (CR) 对象中的 spec.replicas 至期望值。

  1. 按需修改 TiDB 集群组件的 replicas 值。例如,执行以下命令可将 PD 的 replicas 值设置为 3

    kubectl patch -n ${namespace} pdgroup ${name} --type merge --patch '{"spec":{"replicas":3}}'
  2. 查看 Kubernetes 集群中对应组件的 Component Group CR 是否更新为期望的配置。例如,执行以下命令查看 PDGroup CR:

    kubectl get pdgroup ${name} -n ${namespace}

    上述命令输出的 DESIRED 的值预期应与你之前配置的值一致。

  3. 观察 Pod 是否新增或者减少:

    kubectl -n ${namespace} get pod -w

    当所有组件的 Pod 数量都达到了预设值,并且都进入 Running 状态后,水平扩缩容完成。

    PD 和 TiDB 通常需要 10 到 30 秒左右的时间进行扩容或者缩容。

    TiKV 组件由于涉及到数据搬迁,通常需要 3 到 5 分钟来进行扩容或者缩容。

垂直扩缩容

垂直扩缩容操作指的是通过增加或减少 Pod 的资源限制,来达到集群扩缩容的目的。垂直扩缩容本质上是 Pod 滚动升级的过程。

如果要对 PD、TiKV、TiDB、TiProxy、TiFlash 或 TiCDC 进行垂直扩缩容,通过 kubectl 修改对应的 Component Group CR 对象的 spec.template.spec.resources 至期望值。

查看垂直扩缩容进度

kubectl -n ${namespace} get pod -w

当所有 Pod 都重建完毕进入 Running 状态后,垂直扩缩容完成。

扩缩容故障诊断

无论是水平扩缩容、或者是垂直扩缩容,都可能遇到资源不够时造成 Pod 出现 Pending 的情况。可以参考 Pod 处于 Pending 状态来进行处理。

文档内容是否有帮助?