- Altinity ClickHouse Operator: Gestion de ClickHouse de niveau entreprise pour Kubernetes
- ClickHouse Keeper: Service de coordination distribué (remplace ZooKeeper)
- cluster ClickHouse: Cluster de base de données haute disponibilité pour le stockage des traces
- S3-Compatible Storage: Stockage d’objets pour la persistance des données ClickHouse
Notes importantes sur la configuration
- Sécurité et conformité : les contextes de sécurité, les valeurs
runAsUser/fsGroupet les autres paramètres de sécurité, conformément aux politiques de sécurité de votre organisation et aux exigences de Kubernetes/OpenShift. - Dimensionnement des ressources : les allocations de ressources indiquées sont des points de départ. Consultez votre équipe W&B Solutions Architect pour dimensionner correctement votre déploiement en fonction du volume de traces attendu et des exigences de performances.
- Spécificités de l’infrastructure : mettez à jour les classes de stockage, les sélecteurs de nœud et les autres paramètres propres à l’infrastructure afin qu’ils correspondent à votre environnement.
Architecture
Prérequis
- Cluster Kubernetes : version 1.29+
- Nœuds Kubernetes : cluster multinœud (minimum 3 nœuds recommandés pour une haute disponibilité)
- Classe de stockage : une StorageClass fonctionnelle pour les volumes persistants (par ex. :
gp3,standard,nfs-csi) - Bucket S3 : bucket S3 ou compatible S3 préconfiguré avec les autorisations d’accès appropriées
- Plateforme W&B : déjà installée et en fonctionnement (voir le W&B Self-Managed Deployment Guide)
- Licence W&B : licence compatible avec Weave fournie par l’assistance W&B
Outils requis
kubectlconfiguré avec un accès au clusterhelmv3.0+- Identifiants AWS (si vous utilisez S3) ou un accès à un stockage compatible S3
Exigences réseau
- Les pods de l’espace de noms
clickhousedoivent pouvoir communiquer avec les pods de l’espace de nomswandb - Les nœuds ClickHouse doivent pouvoir communiquer entre eux sur les ports 8123, 9000, 9009 et 2181
Déployez votre instance autogérée de Weave
Étape 1 : Déployer l’Altinity ClickHouse Operator
1.1 Ajouter le dépôt Helm d’Altinity
1.2 Créez la configuration de l’opérateur
ch-operator.yaml :
containerSecurityContext indiquées ici conviennent à la plupart des distributions Kubernetes. Pour OpenShift, vous devrez peut-être ajuster runAsUser et fsGroup pour qu’ils correspondent à la plage d’UID attribuée à votre projet.
1.3 Installez l’opérateur
1.4 Vérifier l’installation de l’opérateur
Étape 2 : Préparer le stockage S3
2.1 Créer un bucket S3
2.2 Configurer les identifiants d’accès à S3
Option A : utiliser des rôles IAM AWS (IRSA - recommandé pour AWS)
Option B : Utiliser des clés d’accès
Étape 3 : Déployer ClickHouse Keeper
3.1 Créez la configuration de Keeper
ch-keeper.yaml :
- StorageClass : Mettez à jour
storageClassName: gp3afin qu’il corresponde à une StorageClass disponible sur votre cluster - Contexte de sécurité : Ajustez les valeurs
runAsUseretfsGrouppour respecter les politiques de sécurité de votre organisation - Anti-affinité : Personnalisez ou supprimez la section
affinityen fonction de la topologie de votre cluster et de vos exigences de haute disponibilité - Ressources : Les valeurs de CPU et de mémoire sont données à titre d’exemple - consultez les architectes solutions W&B pour dimensionner correctement
- Nommage : Si vous modifiez
metadata.nameouconfiguration.clusters[0].name, vous devez mettre à jour les noms d’hôte Keeper dans ch-server.yaml (Étape 4) en conséquence
3.2 Déployer ClickHouse Keeper
3.3 Vérifier le déploiement de Keeper
Étape 4 : Déployer le cluster ClickHouse
4.1 Créer la configuration du serveur ClickHouse
ch-server.yaml :
- StorageClass : Mettez à jour
storageClassName: gp3pour qu’il corresponde à la StorageClass de votre cluster - Endpoint S3 : Remplacez
YOUR-BUCKET-NAMEetYOUR-REGIONpar vos valeurs réelles - Taille du cache : La valeur
<max_size>40Gi</max_size>doit être inférieure à la taille du volume persistant (50Gi) - Contexte de sécurité : Ajustez
runAsUser,fsGroupet les autres paramètres de sécurité pour qu’ils soient conformes aux politiques de votre organisation - Allocation des ressources : Les valeurs de CPU et de mémoire sont fournies à titre d’exemple uniquement - consultez votre Solutions Architect W&B pour dimensionner correctement en fonction du volume de traces attendu
- Règles d’anti-affinité : Personnalisez-les ou supprimez-les selon la topologie de votre cluster et vos besoins en haute disponibilité
- Noms d’hôte Keeper : Les noms d’hôte des nœuds Keeper doivent correspondre à la convention de nommage de votre déploiement Keeper à l’étape 3 (voir « Comprendre le nommage de Keeper » ci-dessous)
- Nommage du cluster : Le nom du cluster
weaveclusterpeut être modifié, mais il doit correspondre à la valeurWF_CLICKHOUSE_REPLICATED_CLUSTERà l’étape 5 - Identifiants :
- Pour IRSA : Conservez
<use_environment_credentials>true</use_environment_credentials>ou utilisez vos clés secrètes mappées sur des variables d’environnement.
- Pour IRSA : Conservez
4.2 Mettre à jour la configuration S3
storage_configuration.xml de ch-server.yaml :
Exemple avec AWS S3 :
4.3 Configurez les identifiants d’accès (option B uniquement)
env de ch-server.yaml fait référence au secret :
env.
4.4 Comprendre la convention de nommage de Keeper
zookeeper.nodes suivent un format précis en fonction de votre déploiement Keeper à l’étape 3 :
Format du nom d’hôte : chk-{installation-name}-{cluster-name}-{cluster-index}-{replica-index}.{namespace}.svc.cluster.local
Où :
chk= préfixe ClickHouseKeeperInstallation (fixe){installation-name}= lemetadata.namede ch-keeper.yaml (par ex.,wandb){cluster-name}= leconfiguration.clusters[0].namede ch-keeper.yaml (par ex.,keeper){cluster-index}= index du cluster, généralement0pour un cluster unique{replica-index}= numéro de réplique :0,1,2pour 3 répliques{namespace}= espace de noms Kubernetes (par ex.,clickhouse)
metadata.name: myweave) :
clusters[0].name: coordination) :
Les noms d’hôte Keeper dans
ch-server.yaml doivent correspondre exactement aux noms de service effectivement créés lors du déploiement de Keeper, faute de quoi les serveurs ClickHouse ne pourront pas se connecter au service de coordination.4.5 Déployer le cluster ClickHouse
4.6 Vérifier le déploiement de ClickHouse
Étape 5 : Activer Weave dans la plateforme W&B
5.1 Rassemblez les informations de connexion à ClickHouse
- Hôte :
clickhouse-wandb.clickhouse.svc.cluster.local - Port :
8123 - Utilisateur :
weave(tel que configuré dans ch-server.yaml) - Mot de passe :
weave123(tel que configuré dans ch-server.yaml) - Base de données :
weave(sera créée automatiquement) - Nom du cluster :
weavecluster(tel que configuré dans ch-server.yaml)
clickhouse-{installation-name}.{namespace}.svc.cluster.local
5.2 Mettre à jour la ressource personnalisée W&B
clickhouse.replicated: true- Requis lors de l’utilisation de 3 réplicasWF_CLICKHOUSE_REPLICATED: "true"- Requis pour une configuration répliquéeWF_CLICKHOUSE_REPLICATED_CLUSTER: "weavecluster"- Doit correspondre au nom du cluster dans ch-server.yaml
Les contextes de sécurité, les allocations de ressources et les autres configurations spécifiques à Kubernetes présentés ci-dessus sont fournis à titre d’exemple. Personnalisez-les en fonction des besoins de votre organisation et consultez votre équipe d’architectes solutions W&B pour dimensionner correctement les ressources.
5.3 Appliquez la configuration mise à jour
5.4 Vérifier le déploiement de Weave Trace
Étape 6 : Initialiser la base de données Weave
6.1 Surveiller la migration de la base de données
6.2 Vérifier la création de la base de données
Étape 7 : Vérifier que Weave est activé
7.1 Accéder à la console W&B
7.2 Vérifier le statut de la licence Weave
- Accédez à Top Right Menu → Organization Dashboard
- Vérifiez que l’accès à Weave est activé
7.3 Tester le bon fonctionnement de Weave
Dépannage
Problèmes liés à ClickHouse Keeper
Pending
Solution : vérifiez les différentes causes possibles :
- Problèmes de PVC et de StorageClass :
- Anti-affinité et disponibilité des nœuds :
- L’anti-affinité nécessite 3 nœuds distincts, mais le cluster en compte moins
- Les nœuds n’ont pas suffisamment de CPU/mémoire pour satisfaire les requêtes des pods
- Les taints des nœuds empêchent la planification des pods
- Supprimez ou ajustez les règles d’anti-affinité si vous avez moins de 3 nœuds
- Utilisez
preferredDuringSchedulingIgnoredDuringExecutionau lieu derequiredDuringSchedulingIgnoredDuringExecutionpour une anti-affinité moins stricte - Réduisez les requêtes de ressources si les nœuds sont limités
- Ajoutez davantage de nœuds à votre cluster
Problème : les pods Keeper sont en
CrashLoopBackOff
Solution : consultez les journaux et vérifiez la configuration :
- Contexte de sécurité incorrect (vérifiez runAsUser, fsGroup)
- Problèmes d’autorisation sur les volumes
- Conflits de ports
- Erreurs de configuration dans ch-keeper.yaml
Problèmes du serveur ClickHouse
Problème : ClickHouse ne parvient pas à se connecter à Keeper Solution : Vérifiez les endpoints et le naming de Keeper :
Problèmes Weave Trace
weave-trace ne parvient pas à démarrer
Solution : vérifiez la connectivité à ClickHouse :
Problème : Weave n’apparaît pas comme activé dans Console Solution : Vérifiez la configuration :
-
Vérifiez que la licence inclut Weave :
-
Assurez-vous que
weave-trace.enabled: trueetclickhouse.replicated: truesont définis dans wandb-cr.yaml -
Vérifiez les journaux de l’opérateur W&B :
Problème : La migration de la base de données échoue Solution : Vérifiez que le nom du cluster correspond : La variable d’environnement
WF_CLICKHOUSE_REPLICATED_CLUSTER doit correspondre au nom du cluster dans ch-server.yaml :
Exigences de ressources
Configuration minimale pour la production
Convient pour : le développement, les tests ou les environnements de production à faible volume
Configuration de production recommandée
Convient pour : les environnements de production à fort volume
Pour les déploiements à très haut volume, contactez votre équipe d’architectes solutions W&B pour obtenir des recommandations de dimensionnement personnalisées en fonction de votre volume de traces et de vos exigences de performances.
Configuration avancée
Mise à l’échelle de ClickHouse
-
Mise à l’échelle verticale : augmente les ressources par pod (approche la plus simple)
Recommandation : surveillez l’utilisation réelle des ressources et ajustez la mise à l’échelle en conséquence. Pour les déploiements à très grand volume, contactez votre équipe W&B Solutions Architect.
-
Mise à l’échelle horizontale : ajoute plus de réplicas (nécessite une planification rigoureuse)
- L’augmentation du nombre de réplicas nécessite un rééquilibrage des données
- Consultez la documentation de ClickHouse pour la gestion des shards
- Contactez un W&B Solutions Architect avant de mettre en place une mise à l’échelle horizontale en production
Utiliser différentes versions de ClickHouse
ch-keeper.yaml et ch-server.yaml :
Surveillance de ClickHouse
Sauvegarde et récupération
Considérations de sécurité
- Identifiants : stockez les mots de passe ClickHouse dans des secrets Kubernetes, et non en texte brut
- Politiques réseau : envisagez de mettre en place des NetworkPolicies pour restreindre l’accès à ClickHouse
- RBAC : assurez-vous que les comptes de service disposent des autorisations minimales requises
- Bucket S3 : activez le chiffrement au repos et limitez l’accès au bucket aux rôles IAM nécessaires
- TLS (Facultatif) : en production, activez TLS pour les connexions clientes à ClickHouse
Mise à niveau
Mise à niveau de l’opérateur ClickHouse
Mise à niveau du serveur ClickHouse
ch-server.yaml, puis appliquez la modification :
Mise à niveau de Weave Trace
wandb-cr.yaml, puis appliquez :
Ressources supplémentaires
- Documentation de l’opérateur Altinity ClickHouse
- Documentation de ClickHouse
- Documentation de Weave de W&B
- Configuration du stockage S3 de ClickHouse
Support
- Support W&B :
support@wandb.com - Architectes solutions : pour les déploiements à très gros volume, le dimensionnement personnalisé et la planification du déploiement
- Incluez dans les demandes d’assistance :
- Journaux de weave-trace, des pods ClickHouse et de l’opérateur
- Version de W&B, version de ClickHouse, version de Kubernetes
- Informations sur le cluster et volume de traces
FAQ
replicasCount: 1 dans ch-server.yaml et définissez clickhouse.replicated: false dans wandb-cr.yaml.
Q : Puis-je utiliser une autre base de données à la place de ClickHouse ?
R : Non, Weave Trace nécessite ClickHouse pour ses capacités de stockage colonnaire haute performance.
Q : De combien de stockage S3 aurai-je besoin ?
R : Les besoins en stockage S3 dépendent de votre volume de traces, de la durée de rétention et de la compression des données. Surveillez votre utilisation réelle après le déploiement et ajustez en conséquence. Le format colonnaire de ClickHouse offre une excellente compression pour les données de trace.
Q : Dois-je configurer le nom de database dans ClickHouse ?
R : Non, la base de données weave sera créée automatiquement par le service weave-trace lors du démarrage initial.
Q : Que faire si le nom de mon cluster n’est pas weavecluster ?
R : Vous devez définir la variable d’environnement WF_CLICKHOUSE_REPLICATED_CLUSTER pour qu’elle corresponde au nom de votre cluster, sinon les migrations de base de données échoueront.
Q : Dois-je utiliser exactement les contextes de sécurité indiqués dans les exemples ?
R : Non. Les contextes de sécurité (runAsUser, fsGroup, etc.) fournis dans ce guide sont des exemples de référence. Vous devez les adapter pour respecter les politiques de sécurité de votre organisation, en particulier pour les clusters OpenShift, qui imposent des plages UID/GID spécifiques.
Q : Comment savoir si mon cluster ClickHouse est correctement dimensionné ?
R : Contactez votre équipe d’architectes solutions W&B en indiquant votre volume de traces prévu et vos modèles d’utilisation. Elle vous fournira des recommandations de dimensionnement spécifiques. Surveillez l’utilisation des ressources de votre déploiement et ajustez si nécessaire.
Q : Puis-je personnaliser les conventions de nommage utilisées dans les exemples ?
R : Oui, mais vous devez rester cohérent dans tous les composants :
- Noms des ClickHouse Keeper → Doivent correspondre aux noms d’hôte des nœuds Keeper dans la section
zookeeper.nodesde ch-server.yaml - Nom du cluster ClickHouse (
weavecluster) → Doit correspondre àWF_CLICKHOUSE_REPLICATED_CLUSTERdans wandb-cr.yaml - Nom de l’installation ClickHouse → Affecte le nom d’hôte du service utilisé par weave-trace