跳到主要内容

从 Zone 中减少 OBServer 节点

本节主要介绍如何通过从 Zone 内减少 OBServer 节点的方式进行集群的缩容。

前提条件

  • OceanBase 集群目前处于 running 状态。
  • observer 删除之后仍有足够的资源负载租户的 unit。

操作步骤

假设当前集群中共包含 3 个可用区 zone1、zone2 和 zone3,每个 Zone 内包含 2 个 OBServer 节点。现在希望从每个 Zone 减少 1 台 OBServer 节点来缩容,缩容后,3 个 Zone 内均包含 1 台 OBServer 节点。

  1. 修改配置文件 obcluster.yaml,每个 zone 对应的 replicas 由 2 修改为 1。

    # 示例: OB 集群中有 3 个 zone
    topology:
    - zone: zone1
    replica: 2
    - zone: zone2
    replica: 2
    - zone: zone3
    replica: 2

    # 从每个 zone 内减少 1 个 observer
    topology:
    - zone: zone1
    replica: 1
    - zone: zone2
    replica: 1
    - zone: zone3
    replica: 1
  2. 配置文件修改后,需运行如下命令使改动生效。

    kubectl apply -f obcluster.yaml
  3. 观察 CR 的状态等待操作成功。 通过以下命令,可以获取 OceanBase 集群资源的状态

kubectl get obclusters.oceanbase.oceanbase.com test -n oceanbase -o yaml

# obcluster desired output, only displays status here
status:
image: oceanbase/oceanbase-cloud-native:4.2.0.0-101000032023091319
obzones:
- status: running
zone: obcluster-1-zone1
- status: running
zone: obcluster-1-zone2
- status: running
zone: obcluster-1-zone3
parameters: []
status: running

通过以下命令,可以获取 observer 的状态, 可以观察 observer 数量匹配,并且都是 running 状态

kubectl get observers.oceanbase.oceanbase.com -n oceanbase

# observer desired output, only displays status here
oceanbase obcluster-1-zone1-7b0e9f7e7675 10.42.0.241 running 7h48m
oceanbase obcluster-1-zone2-67f3d1fe0b40 10.42.0.251 running 28m
oceanbase obcluster-1-zone3-914ef208ac46 10.42.0.252 running 28m