挂起 TiDB 集群
本文介绍如何通过配置 TidbCluster
对象来挂起 Kubernetes 上的 TiDB 集群,或挂起 TiDB 集群组件。挂起集群后,你可以停止所有组件或某个组件的 Pod,保留 TidbCluster
对象以及其他资源(例如 Service、PVC 等)。
在某些测试场景下,如果你需要节省资源,你可以在不使用 TiDB 集群时挂起集群。
配置挂起 TiDB 集群
如果你需要挂起 TiDB 集群,执行以下步骤:
在
TidbCluster
对象中,配置spec.suspendAction
字段,挂起整个 TiDB 集群:apiVersion: pingcap.com/v1alpha1 kind: TidbCluster metadata: name: ${cluster_name} namespace: ${namespace} spec: suspendAction: suspendStatefulSet: true # ...TiDB Operator 也支持挂起一个或多个 TiDB 集群的组件。以 TiKV 为例,通过配置
TidbCluster
对象的spec.tikv.suspendAction
字段来挂起 TiDB 集群中的 TiKV。apiVersion: pingcap.com/v1alpha1 kind: TidbCluster metadata: name: ${cluster_name} namespace: ${namespace} spec: tikv: suspendAction: suspendStatefulSet: true # ...挂起 TiDB 集群后,通过以下命令观察到挂起的组件的 Pod 逐步被删除。
kubectl -n ${namespace} get pods每个挂起的组件的 Pod 会按照以下的顺序被删除:
- TiDB
- TiFlash
- TiCDC
- TiKV
- Pump
- TiProxy
- PD
恢复 TiDB 集群
在 TiDB 集群或组件被挂起后,如果你需要恢复 TiDB 集群,执行以下步骤:
在
TidbCluster
对象中,配置spec.suspendAction
字段,恢复被挂起的整个 TiDB 集群:apiVersion: pingcap.com/v1alpha1 kind: TidbCluster metadata: name: ${cluster_name} namespace: ${namespace} spec: suspendAction: suspendStatefulSet: false # ...TiDB Operator 也支持恢复一个或多个 TiDB 集群的组件。以 TiKV 为例,通过配置
TidbCluster
对象的spec.tikv.suspendAction
字段来恢复 TiDB 集群中的 TiKV。apiVersion: pingcap.com/v1alpha1 kind: TidbCluster metadata: name: ${cluster_name} namespace: ${namespace} spec: tikv: suspendAction: suspendStatefulSet: false # ...恢复 TiDB 集群后,通过以下命令观察到挂起的组件的 Pod 逐步被创建。
kubectl -n ${namespace} get pods