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:
-
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 -
Run the following command for the modification to take effect:
kubectl apply -f tenant.yaml
-
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:
-
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 -
Run the following command for the modification to take effect:
kubectl apply -f tenant.yaml
-
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