- Altinity ClickHouse Operator : gestion de ClickHouse de niveau entreprise pour Kubernetes.
- ClickHouse Keeper : service de coordination distribué (remplace ZooKeeper).
- ClickHouse Cluster : 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
runAsUseroufsGroupet les autres paramètres de sécurité, conformément aux politiques de sécurité de votre organisation et aux exigences de Kubernetes ou d’OpenShift. - Dimensionnement des ressources : les allocations de ressources indiquées sont des points de départ. Consultez votre équipe Solutions Architect W&B 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 ou ultérieure.
- 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 exemple,
gp3,standardounfs-csi). - Bucket S3 : bucket S3 ou S3-compatible préconfiguré avec les autorisations d’accès appropriées.
- plateforme W&B : déjà installée et en fonctionnement. Voir le guide de déploiement W&B Autogéré.
- Licence W&B : licence avec Weave activé obtenue auprès de l’assistance W&B.
Outils requis
kubectlconfiguré avec un accès au cluster.helmversion 3.0 ou ultérieure.- 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,9009et2181.
Déployez votre instance Weave autogérée
Déployer l’Altinity ClickHouse Operator
Ajouter le dépôt Helm d’Altinity
Créez la configuration de l’opérateur
ch-operator.yaml. Ce fichier définit le contexte de sécurité et les métadonnées du déploiement de l’opérateur :
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.
Installez l’opérateur
Vérifier l’installation de l’opérateur
Préparer le stockage S3
Créer un bucket S3
[BUCKET-NAME] par le nom de votre bucket et [REGION] par votre région AWS :
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
[ACCESS-KEY] par votre clé d’accès AWS et [SECRET-KEY] par votre clé secrète AWS :
Déployer ClickHouse Keeper
Créez la configuration de Keeper
ch-keeper.yaml. Ce manifeste définit un cluster Keeper à trois réplicas avec anti-affinité, stockage persistant et les paramètres utilisés par l’opérateur Altinity pour provisionner les pods Keeper :
- 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 Solutions Architects W&B pour dimensionner correctement.
- Nommage : Si vous modifiez
metadata.nameouconfiguration.clusters[0].name, vous devez mettre à jour les noms d’hôte Keeper dansch-server.yaml(Étape 4) en conséquence.
Déployer les ressources ClickHouse Keeper
Vérifier le déploiement de Keeper
Déployer le cluster ClickHouse
Créer la configuration du serveur ClickHouse
ch-server.yaml. Ce manifeste décrit le cluster ClickHouse, sa connexion à Keeper, le compte utilisateur Weave et la stratégie de stockage S3 utilisée pour les données de trace :
- StorageClass : Mettez à jour
storageClassName: gp3pour qu’il corresponde à la StorageClass de votre cluster. - Point de terminaison S3 : Remplacez
[BUCKET-NAME]et[REGION]par vos valeurs effectives. - 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 respectent les politiques de votre organisation. - Allocation des ressources : Les valeurs de CPU et de mémoire sont fournies à titre d’exemple. Consultez votre Solutions Architect W&B pour dimensionner correctement en fonction du volume de traces prévu.
- Règles d’anti-affinité : Personnalisez-les ou supprimez-les en fonction de la topologie de votre cluster et de vos exigences de haute disponibilité.
- Noms d’hôte Keeper : Les noms d’hôte des nœuds Keeper doivent correspondre au nommage de votre déploiement Keeper à l’étape 3 (voir « Keeper naming »).
- Nommage du cluster : Le nom de 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 exposées via des variables d’environnement.
- Pour IRSA : Conservez
Mettre à jour la configuration S3
storage_configuration.xml de ch-server.yaml.
Exemple avec AWS S3 :
Configurez les identifiants d’accès (option B uniquement)
env de ch-server.yaml fait référence au secret :
env.
Noms d’hôte de Keeper
zookeeper.nodes suivent un modèle précis, basé sur votre déploiement Keeper de l’étape 3.
Modèle de nom d’hôte : chk-[INSTALLATION-NAME]-[CLUSTER-NAME]-[CLUSTER-INDEX]-[REPLICA-INDEX].[NAMESPACE].svc.cluster.local
Où :
chkest le préfixe ClickHouseKeeperInstallation (fixe).[INSTALLATION-NAME]correspond àmetadata.namedansch-keeper.yaml(par exemple,wandb).[CLUSTER-NAME]correspond àconfiguration.clusters[0].namedansch-keeper.yaml(par exemple,keeper).[CLUSTER-INDEX]est l’index du cluster, généralement0pour un cluster unique.[REPLICA-INDEX]est le numéro du réplica :0,1ou2pour 3 réplicas.[NAMESPACE]est l’espace de noms Kubernetes (par exemple,clickhouse).
metadata.name: myweave) :
clusters[0].name: coordination) :
Les noms d’hôte de Keeper dans
ch-server.yaml doivent correspondre exactement aux noms de service réellement créés par le déploiement de Keeper ; sinon, les serveurs ClickHouse ne parviendront pas à se connecter au service de coordination.Déployer les ressources du cluster ClickHouse
Vérifier le déploiement de ClickHouse
Activer Weave dans la plateforme W&B
weave-trace.
Rassemblez les informations de connexion à ClickHouse
- Hôte :
clickhouse-wandb.clickhouse.svc.cluster.local - Port :
8123 - Utilisateur :
weave(tel que configuré dansch-server.yaml) - Mot de passe : Le mot de passe que vous avez défini dans
ch-server.yaml - Base de données :
weave(créée automatiquement) - Nom du cluster :
weavecluster(tel que configuré dansch-server.yaml)
clickhouse-[INSTALLATION-NAME].[NAMESPACE].svc.cluster.local
Mettre à jour la ressource personnalisée W&B
clickhouse.replicated: true: Requis lors de l’utilisation de 3 réplicas.WF_CLICKHOUSE_REPLICATED: "true": Requis pour une configuration répliquée.WF_CLICKHOUSE_REPLICATED_CLUSTER: "weavecluster": Doit correspondre au nom du cluster dansch-server.yaml.
Les contextes de sécurité, les allocations de ressources et les autres configurations spécifiques à Kubernetes présentés ici sont fournis à titre d’exemple. Personnalisez-les en fonction des besoins de votre organisation et consultez votre équipe de Solutions Architect W&B pour dimensionner correctement les ressources.
Appliquez la configuration mise à jour
Vérifier le déploiement de Weave Trace
Initialiser la base de données Weave
Surveiller la migration de la base de données
Vérifier la création de la base de données
Vérifier que Weave est activé
Accéder à la console W&B
Vérifier le statut de la licence Weave
- Accédez à Top Right Menu > Organization Dashboard.
- Vérifiez que l’accès à Weave est activé.
Tester le 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 ou de 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
runAsUseretfsGroup). - 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 peut pas se connecter à Keeper Solution : Vérifier les points de terminaison et le nommage de Keeper :
ch-server.yaml ne correspondent probablement pas à votre déploiement Keeper. Voir « nommage de Keeper » à l’étape 4 pour la convention de nommage.
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 danswandb-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 de production
Convient aux environnements de développement, de test ou de production à faible volume.
Configuration de production recommandée
Convient aux environnements de production à fort volume.
Pour les déploiements à très haut volume, contactez votre équipe de Solutions Architect 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
Mettre à l’échelle ClickHouse
-
Mise à l’échelle verticale : augmentez les ressources par pod (approche 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 Solutions Architect W&B.
-
Mise à l’échelle horizontale : ajoutez 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 Solutions Architect W&B avant de mettre en place une mise à l’échelle horizontale en production.
Utiliser une autre version de ClickHouse
ch-keeper.yaml et ch-server.yaml :
Surveiller 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.
- S3 bucket : 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
Les déploiements autogérés qui utilisent ClickHouse pour les fonctionnalités OLAP de Weave et de Models doivent respecter les exigences de version des deux produits. Les fonctionnalités OLAP de Models et Weave peuvent avoir des exigences de version de ClickHouse différentes.Voir la compatibilité de ClickHouse pour les mises à niveau et les versions du serveur W&B prises en charge avant de mettre à niveau ClickHouse ou le serveur W&B. Mettez à niveau le serveur ClickHouse et ClickHouse Keeper ensemble.
Mise à niveau de l’opérateur ClickHouse
Mise à niveau du serveur ClickHouse
ch-keeper.yaml et ch-server.yaml, puis appliquez le manifeste du serveur :
Mettre à niveau 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.
- Journaux de
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 en colonnes haute performance.
Q : De quelle quantité de stockage S3 ai-je besoin ?
R : Les exigences en matière de stockage S3 dépendent de votre volume de traces, de la période 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 en colonnes de ClickHouse compresse efficacement les données de trace.
Q : Dois-je configurer le nom database dans ClickHouse ?
R : Non, le service weave-trace crée automatiquement la base de données weave au premier démarrage.
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, faute de quoi les migrations de base de données échouent.
Q : Dois-je utiliser exactement les contextes de sécurité présentés dans les exemples ?
R : Non. Les contextes de sécurité tels que runAsUser et fsGroup fournis dans ce guide sont des exemples de référence. Vous devez les adapter pour vous conformer aux politiques de sécurité de votre organisation, en particulier pour les clusters OpenShift, qui imposent des exigences spécifiques en matière de plages UID et GID.
Q : Comment savoir si mon cluster ClickHouse est correctement dimensionné ?
R : Contactez votre équipe Solutions Architect W&B en lui indiquant votre volume de traces attendu et vos patterns d’utilisation. Ils vous fourniront des recommandations de dimensionnement. Surveillez l’utilisation des ressources de votre déploiement et ajustez selon les besoins.
Q : Puis-je personnaliser les conventions de nommage utilisées dans les exemples ?
R : Oui, mais vous devez veiller à la cohérence entre tous les composants :
- Noms des ClickHouse Keeper : Doivent correspondre aux noms d’hôtes des nœuds Keeper dans la section
zookeeper.nodesdech-server.yaml. - Nom du cluster ClickHouse (
weavecluster) : Doit correspondre àWF_CLICKHOUSE_REPLICATED_CLUSTERdanswandb-cr.yaml. - Nom de l’installation ClickHouse : Détermine le nom d’hôte du service utilisé par
weave-trace.