重启集群
KubeBlocks 支持重启集群中的所有 Pod。当数据库出现异常时,也可以尝试重启集群。
备注
集群重启后,主节点可能会发生变化。
步骤
- kbcli
- kubectl
重启集群。
配置
components
和ttlSecondsAfterSucceed
的值,执行以下命令来重启指定集群。kbcli cluster restart mycluster -n demo --components="mysql" \
--ttlSecondsAfterSucceed=30components
表示需要重启的组件名称。ttlSecondsAfterSucceed
表示重启成功后 OpsRequest 作业的生存时间。
检查集群状态,验证重启操作是否成功。
kbcli cluster list mycluster -n demo
>
NAME NAMESPACE CLUSTER-DEFINITION VERSION TERMINATION-POLICY STATUS CREATED-TIME
mycluster default mysql mysql-8.0.33 Delete Updating Jul 05,2024 19:01 UTC+0800- STATUS=Updating 表示集群正在重启中。
- STATUS=Running 表示集群已重启。
创建 OpsRequest 重启集群。
kubectl apply -f - <<EOF
apiVersion: apps.kubeblocks.io/v1alpha1
kind: OpsRequest
metadata:
name: ops-restart
namespace: demo
spec:
clusterName: mycluster
type: Restart
restart:
- componentName: mysql
EOF查看 Pod 和重启操作的状态,验证该操作是否成功。
kubectl get pod -n demo
>
NAME READY STATUS RESTARTS AGE
mycluster-mysql-0 4/4 Running 0 5m32s
mycluster-mysql-1 3/4 Terminating 0 6m36s
kubectl get ops ops-restart -n demo
>
NAME TYPE CLUSTER STATUS PROGRESS AGE
ops-restart Restart mycluster Succeed 1/1 3m26s重启过程中,Pod 有如下两种状态:
- STATUS=Terminating:表示集群正在重启。
- STATUS=Running:表示集群已重启。
如果操作过程中出现报错,可通过
kubectl describe ops -n demo
查看该操作的事件,协助排障。