MySQL 集群扩缩容
KubeBlocks 支持 对 ApeCloud MySQL 集群进行垂直扩缩容和水平扩缩容。
备注
集群垂直或水平扩缩容后,KubeBlocks 会根据新的规格自动匹配合适的配置模板。这因为 KubeBlocks 在 v0.9.0 中引入了动态配置功能。该功能简化了配置参数的过程,节省了时间和精力,并减少了由于配置错误引起的性能问题。有关详细说明,请参阅配置。
垂直扩缩容
您可以通过更改资源需求和限制(CPU 和存储)来垂直扩展集群。例如,可通过垂直扩容将资源类别从 1C2G 调整为 2C4G。
开始之前
确保集群处于 Running 状态,否则后续操作可能会失败。
- kubectl
- kbcli
kubectl get cluster mycluster -n demo
>
NAME CLUSTER-DEFINITION VERSION TERMINATION-POLICY STATUS AGE
mycluster apecloud-mysql ac-mysql-8.0.30 Delete Running 27m
kbcli cluster list mycluster -n demo
>
NAME NAMESPACE CLUSTER-DEFINITION VERSION TERMINATION-POLICY STATUS CREATED-TIME
mycluster demo apecloud-mysql ac-mysql-8.0.30 Delete Running Sep 19,2024 16:01 UTC+0800
步骤
- OpsRequest
- 编辑集群 YAML 文件
- kbcli
-
对指定的集群应用 OpsRequest,可根据您的需求配置参数。
kubectl apply -f - <<EOF
apiVersion: apps.kubeblocks.io/v1alpha1
kind: OpsRequest
metadata:
name: ops-vertical-scaling
namespace: demo
spec:
clusterName: mycluster
type: VerticalScaling
verticalScaling:
- componentName: mysql
requests:
memory: "2Gi"
cpu: "1"
limits:
memory: "4Gi"
cpu: "2"
EOF -
查看运维任务状态,验证垂直扩缩容操作是否成功。
kubectl get ops -n demo
>
NAMESPACE NAME TYPE CLUSTER STATUS PROGRESS AGE
demo ops-vertical-scaling VerticalScaling mycluster Succeed 3/3 6m如果有报错,可执行
kubectl describe ops -n demo命令查看该运维操作的相关事件,协助排障。 -
当 OpsRequest 状态为
Succeed或集群状态再次回到Running后,查看相应资源是否变更。kubectl describe cluster mycluster -n demo
-
修改 YAML 文件中
spec.componentSpecs.resources的配置。spec.componentSpecs.resources控制资源的请求值和限制值,修改参数值将触发垂直扩缩容。kubectl edit cluster mycluster -n demo在编辑器中修改
spec.componentSpecs.resources的参数值。...
spec:
clusterDefinitionRef: apecloud-mysql
clusterVersionRef: ac-mysql-8.0.30
componentSpecs:
- name: mysql
componentDefRef: mysql
replicas: 3
resources: # 修改资源参数值
requests:
memory: "2Gi"
cpu: "1"
limits:
memory: "4Gi"
cpu: "2"
volumeClaimTemplates:
- name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
terminationPolicy: Delete -
当集群状态再次回到
Running后,查看相应资源是否变更。kubectl describe cluster mycluster -n demo
-
更改配置。
配置参数
--components、--memory和--cpu,并执行以下命令。kbcli cluster vscale mycluster --components="mysql" --memory="4Gi" --cpu="2" -n demo--components表示可进行垂直扩容的组件名称。--memory表示组件请求和限制的内存大小。--cpu表示组件请求和限制的 CPU 大小。
-
通过以下任意一种方式验证垂直扩容是否完成。