Skip to main content

Manage resources

This topic describes how to change the resource specifications and pools of a tenant by using ob-operator.

Tenant resources consist of tenant resource specifications and tenant resource pools. You can change tenant resource specifications and resource pools to scale in or out a tenant.

Change resource specifications

You can increase or decrease the CPU, memory, and log disk capacities to change the resource specifications.

For more information about how to change resource specifications, see Change resource specifications.

Procedure

To change the resource unit specifications of a zone, apply the parameters in the resource section of the zone in the tenant configuration file tenant.yaml. Perform the following steps:

  1. Modify the tenant configuration file tenant.yaml.

    # For example, the value of maxCPU is 1 before the modification.
    resource:
    maxCPU: 1
    memorySize: 1Gi

    # After the modification, the value of maxCPU is changed to 2.
    resource:
    maxCPU: 2 # Change the value from 1 to 2.
    memorySize: 1Gi
  2. Run the following command for the modification to take effect:

    kubectl apply -f tenant.yaml
  3. Run the following command to view the custom resources of the tenant in the current Kubernetes cluster to check whether the modification is successful:

    kubectl get obtenants.oceanbase.oceanbase.com -n oceanbase -o yaml

If the value of the corresponding parameter in the status.pools.resource section in the custom resources of the tenant is changed to the new value, the modification is successful.

  status:
...
resourcePool:
- priority: 1
type:
isActive: true
name: FULL
replica: 1
unitConfig:
iopsWeight: 2
logDiskSize: "12884901888"
maxCPU: "2" # The value of maxCPU is changed to 2.
maxIops: 1024
memorySize: "5368709120"
minCPU: "1"
minIops: 1024
unitNum: 1
units:
- migrate:
serverIP: ""
serverPort: 0
serverIP: xxx.xxx.xxx.xxx
serverPort: 2882
status: ACTIVE
unitId: 1006
zoneList: zone1

Change the number of resource units for a resource pool

Before you increase the resource units for a resource pool, make sure that the zone has sufficient OBServer nodes. For more information about how to add OBServer nodes to a zone, see Add OBServer nodes to zones.

Procedure

When you modify the number of resource units for a resource pool, apply the unitNum parameter of each zone in the pools section in the tenant configuration file tenant.yaml. Perform the following steps:

  1. Modify the tenant configuration file tenant.yaml.

    # For example, the number of resource units in each zone of the tenant is 1 before the modification.
    spec:
    unitNum: 1

    # After the modification, the value of unitNum is 2.
    spec:
    unitNum: 2
  2. Run the following command for the modification to take effect:

    kubectl apply -f tenant.yaml
  3. Run the following command to view the custom resources of the tenant in the current Kubernetes cluster to check whether the modification is successful:

    kubectl get obtenants.oceanbase.oceanbase.com -n oceanbase -o yaml

If the value of the corresponding parameter in the status.resourcePool.unitNum section in the custom resources of the tenant is changed to the new value, the modification is successful.

  status:
...
resourcePool:
- priority: 1
type:
isActive: true
name: FULL
replica: 1
unitConfig:
iopsWeight: 2
logDiskSize: "12884901888"
maxCPU: "1"
maxIops: 1024
memorySize: "5368709120"
minCPU: "1"
minIops: 1024
unitNum: 2 # The value of unitNum is changed to 2.
units:
- migrate:
serverIP: ""
serverPort: 0
serverIP: 10.42.0.189
serverPort: 2882
status: ACTIVE
unitId: 1006
zoneList: zone1