Add OBServer nodes to zones

2024-03-28 09:13:08  Updated

This topic describes how to scale out a cluster by adding OBServer nodes to zones in the cluster.

Prerequisites

Before you add an OBServer node to a zone, make sure that the following conditions are met:

  • The server has sufficient resources for the new OBServer node.
  • The OceanBase cluster is in the Running state.

Procedure

Assume that the current cluster has three zones, zone1, zone2, and zone3, each zone contains one OBServer node, and you want to add one OBServer node to each zone so that each zone contains two OBServer nodes. Perform the following steps:

  1. Open the obcluster.yaml configuration file and change the value of the replica parameter of each zone from 1 to 2.

    # For example, assume that an OceanBase cluster has three zones.
    topology:
        - zone: zone1
        replica: 1
        - zone: zone2
        replica: 1
        - zone: zone3
        replica: 1
    
    # Add an OBServer node to each zone.
    topology:
        - zone: zone1
        replica: 2
        - zone: zone2
        replica: 2
        - zone: zone3
        replica: 2
    
  2. Run the following command for the modification to take effect:

    kubectl apply -f obcluster.yaml
    
  3. Query the status of custom resources in the OceanBase cluster to check whether the operation succeeds.

Run the following command to query the status of custom resources in the OceanBase cluster.

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

Run the following command to check whether the number of OBServer nodes is correct and whether they are all in the Running state:

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
oceanbase     obcluster-1-zone2-2336549ba883   10.42.0.19    running   3m15s
oceanbase     obcluster-1-zone3-d7011a909e2b   10.42.0.26    running   3m10s
oceanbase     obcluster-1-zone1-0f5d712adb19   10.42.0.27    running   3m10s

Contact Us