Aller au contenu principal
Version: 3.0.0-alpha (Diátaxis)

Comment scaler verticalement ClickHouse

Ce guide explique comment ajuster les ressources CPU, memoire et stockage de votre instance ClickHouse sur Hikube, soit via un preset predefini, soit en definissant des valeurs explicites.

Prerequis

  • Une instance ClickHouse deployee sur Hikube (voir le demarrage rapide)
  • kubectl configure pour interagir avec l'API Hikube
  • Le fichier YAML de configuration de votre instance ClickHouse

Etapes

1. Verifier les ressources actuelles

Consultez la configuration actuelle de votre instance ClickHouse :

kubectl get clickhouse my-clickhouse -o yaml

Notez les valeurs de resourcesPreset, resources, replicas, shards et size dans la section spec.

2. Modifier le resourcesPreset ou les resources explicites

Option A : Utiliser un preset

Voici les presets disponibles :

PresetCPUMemoire
nano250m128Mi
micro500m256Mi
small1512Mi
medium11Gi
large22Gi
xlarge44Gi
2xlarge88Gi

Par exemple, pour passer de small (valeur par defaut) a large :

clickhouse-large.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: ClickHouse
metadata:
name: my-clickhouse
spec:
replicas: 2
shards: 1
resourcesPreset: large
size: 20Gi
clickhouseKeeper:
enabled: true
replicas: 3
resourcesPreset: micro
size: 1Gi

Option B : Definir des ressources explicites

Pour un controle precis, specifiez directement le CPU et la memoire :

clickhouse-custom-resources.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: ClickHouse
metadata:
name: my-clickhouse
spec:
replicas: 2
shards: 1
resources:
cpu: 4000m
memory: 8Gi
size: 50Gi
clickhouseKeeper:
enabled: true
replicas: 3
resourcesPreset: small
size: 2Gi
attention

Si le champ resources est defini, la valeur de resourcesPreset est entierement ignoree. Supprimez resourcesPreset du manifeste pour eviter toute confusion.

3. Ajuster le stockage si necessaire

ClickHouse stocke les donnees sur disque (contrairement a Redis). Pensez a augmenter le volume persistant (size) en fonction du volume de donnees attendu :

clickhouse-storage.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: ClickHouse
metadata:
name: my-clickhouse
spec:
replicas: 2
shards: 1
resourcesPreset: xlarge
size: 100Gi
storageClass: replicated
clickhouseKeeper:
enabled: true
replicas: 3
resourcesPreset: micro
size: 1Gi
astuce

Utilisez storageClass: replicated en production pour proteger les donnees contre la perte d'un noeud physique.

4. Appliquer la mise a jour

kubectl apply -f clickhouse-large.yaml

Verification

Verifiez que les ressources ont ete mises a jour :

# Verifier la configuration de la ressource ClickHouse
kubectl get clickhouse my-clickhouse -o yaml | grep -A 5 resources

# Verifier l'etat des pods ClickHouse
kubectl get pods -l app.kubernetes.io/instance=my-clickhouse

Resultat attendu :

NAME                READY   STATUS    RESTARTS   AGE
my-clickhouse-0-0 1/1 Running 0 3m
my-clickhouse-0-1 1/1 Running 0 3m

Pour aller plus loin