磁盘扩容
KubeBlocks 支持调整 Pod 磁盘容量。
备注
磁盘扩容会触发 Pod 重启。重启后,主节点可能会发生变化。
开始之前
确保集群处于 Running
状态,否则后续操作可能会失败。
kubectl get cluster mycluster -n demo
>
NAME CLUSTER-DEFINITION VERSION TERMINATION-POLICY STATUS AGE
mycluster redis redis-7.0.6 Delete Running 4d18h
步骤
当前支持通过以下两种方式扩容磁盘。
- OpsRequest
- 编辑集群 YAML 文件
应用 OpsRequest。根据需求更改 storage 的值,并执行以下命令来更改集群的存储容量。
kubectl apply -f - <<EOF
apiVersion: apps.kubeblocks.io/v1alpha1
kind: OpsRequest
metadata:
name: ops-volume-expansion
namespace: demo
spec:
clusterName: mycluster
type: VolumeExpansion
volumeExpansion:
- componentName: redis
volumeClaimTemplates:
- name: data
storage: "40Gi"
EOF验证磁盘扩容操作是否成功。
kubectl get ops -n demo
>
NAMESPACE NAME TYPE CLUSTER STATUS PROGRESS AGE
demo ops-volume-expansion VolumeExpansion mycluster Succeed 3/3 6m如果操作过程中出现报错,可通过
kubectl describe ops -n demo
查看该操作的事件,协助排障。查看对应的集群资源是否变更。
kubectl describe cluster mycluster -n demo
>
......
Volume Claim Templates:
Name: data
Spec:
Access Modes:
ReadWriteOnce
Resources:
Requests:
Storage: 40Gi
更改集群 YAML 文件中
spec.componentSpecs.volumeClaimTemplates.spec.resources
的值。spec.componentSpecs.volumeClaimTemplates.spec.resources
定义了 Pod 的存储资源信息,更改此值会触发磁盘扩容。spec:
affinity:
podAntiAffinity: Preferred
topologyKeys:
- kubernetes.io/hostname
clusterDefinitionRef: redis
clusterVersionRef: redis-7.0.6
componentSpecs:
- componentDefRef: redis
enabledLogs:
- running
disableExporter: true
name: redis
replicas: 1
resources:
limits:
cpu: "0.5"
memory: 0.5Gi
requests:
cpu: "0.5"
memory: 0.5Gi
serviceAccountName: kb-redis
volumeClaimTemplates:
- name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 40Gi # 修改该参数值查看对应的集群资源是否变更。
kubectl describe cluster mycluster -n demo
>
......
Volume Claim Templates:
Name: data
Spec:
Access Modes:
ReadWriteOnce
Resources:
Requests:
Storage: 40Gi