Before proceeding, verify your environment meets these requirements:
kubectl v1.21+ installed and configured with cluster accessStopping a cluster suspends all pods while retaining PVCs and data. This is useful for saving compute costs during idle periods.
kubectl apply -f - <<EOF
apiVersion: operations.kubeblocks.io/v1alpha1
kind: OpsRequest
metadata:
name: rocketmq-stop
namespace: demo
spec:
clusterName: rocketmq-cluster
type: Stop
EOF
Monitor progress:
kubectl get cluster rocketmq-cluster -n demo -w
NAME CLUSTER-DEFINITION TERMINATION-POLICY STATUS AGE
rocketmq-cluster rocketmq Delete Stopping 10s
rocketmq-cluster rocketmq Delete Stopped 45s
All pods are terminated while PVCs remain intact.
kubectl apply -f - <<EOF
apiVersion: operations.kubeblocks.io/v1alpha1
kind: OpsRequest
metadata:
name: rocketmq-start
namespace: demo
spec:
clusterName: rocketmq-cluster
type: Start
EOF
NAME CLUSTER-DEFINITION TERMINATION-POLICY STATUS AGE
rocketmq-cluster rocketmq Delete Running 2m
You can restart individual components without affecting the others. For example, restart the NameServer:
kubectl apply -f - <<EOF
apiVersion: operations.kubeblocks.io/v1alpha1
kind: OpsRequest
metadata:
name: rocketmq-restart-namesrv
namespace: demo
spec:
clusterName: rocketmq-cluster
type: Restart
restart:
- componentName: namesrv
EOF
To restart the broker, use the sharding group name broker:
kubectl apply -f - <<EOF
apiVersion: operations.kubeblocks.io/v1alpha1
kind: OpsRequest
metadata:
name: rocketmq-restart-broker
namespace: demo
spec:
clusterName: rocketmq-cluster
type: Restart
restart:
- componentName: broker
EOF
Monitor the OpsRequest:
kubectl get opsrequest -n demo -w
NAME TYPE CLUSTER STATUS PROGRESS AGE
rocketmq-restart-namesrv Restart rocketmq-cluster Succeed 1/1 30s
kubectl delete opsrequest rocketmq-stop rocketmq-start rocketmq-restart-namesrv -n demo --ignore-not-found