Vertical scaling adjusts the CPU and memory allocated to a component's pods. KubeBlocks performs a rolling restart to apply the new resource limits.
Before proceeding, verify your environment meets these requirements:
kubectl v1.21+ installed and configured with cluster accesskubectl apply -f - <<EOF
apiVersion: operations.kubeblocks.io/v1alpha1
kind: OpsRequest
metadata:
name: rocketmq-verticalscale-namesrv
namespace: demo
spec:
clusterName: rocketmq-cluster
type: VerticalScaling
verticalScaling:
- componentName: namesrv
requests:
cpu: "1"
memory: "1Gi"
limits:
cpu: "1"
memory: "1Gi"
EOF
Use the sharding group name broker in the OpsRequest:
kubectl apply -f - <<EOF
apiVersion: operations.kubeblocks.io/v1alpha1
kind: OpsRequest
metadata:
name: rocketmq-verticalscale-broker
namespace: demo
spec:
clusterName: rocketmq-cluster
type: VerticalScaling
verticalScaling:
- componentName: broker
requests:
cpu: "1"
memory: "2Gi"
limits:
cpu: "1"
memory: "2Gi"
EOF
Monitor progress:
kubectl get opsrequest rocketmq-verticalscale-namesrv -n demo -w
NAME TYPE CLUSTER STATUS PROGRESS AGE
rocketmq-verticalscale-namesrv VerticalScaling rocketmq-cluster Succeed 1/1 45s
Verify the new resource allocation on the NameServer pod:
kubectl get pod rocketmq-cluster-namesrv-0 -n demo \
-o jsonpath='{.spec.containers[0].resources}' | python3 -m json.tool
kubectl delete opsrequest rocketmq-verticalscale-namesrv rocketmq-verticalscale-broker -n demo --ignore-not-found