Volume expansion increases the storage allocated to ClickHouse pods. The underlying StorageClass must support volume expansion.
kubectl v1.21+ installed and configured with cluster accessdemo namespace: kubectl create ns demoVolume expansion requires a StorageClass with allowVolumeExpansion: true. Verify this before proceeding:
kubectl get storageclass
kubectl apply -f - <<EOF
apiVersion: operations.kubeblocks.io/v1alpha1
kind: OpsRequest
metadata:
name: clickhouse-volumeexpansion
namespace: demo
spec:
clusterName: clickhouse-cluster
type: VolumeExpansion
volumeExpansion:
- componentName: clickhouse
volumeClaimTemplates:
- name: data
storage: 20Gi
EOF
Monitor progress:
kubectl get opsrequest clickhouse-volumeexpansion -n demo -w
NAME TYPE CLUSTER STATUS PROGRESS AGE
clickhouse-volumeexpansion VolumeExpansion clickhouse-cluster Succeed 1/1 60s
Verify the new storage size:
kubectl get pvc -n demo -l app.kubernetes.io/instance=clickhouse-cluster
For clusters using the cluster topology:
kubectl apply -f - <<EOF
apiVersion: operations.kubeblocks.io/v1alpha1
kind: OpsRequest
metadata:
name: clickhouse-volumeexpansion-keeper
namespace: demo
spec:
clusterName: clickhouse-cluster
type: VolumeExpansion
volumeExpansion:
- componentName: ch-keeper
volumeClaimTemplates:
- name: data
storage: 20Gi
EOF
kubectl delete opsrequest clickhouse-volumeexpansion clickhouse-volumeexpansion-keeper -n demo --ignore-not-found