- 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
Les exemples de configuration de ce guide sont fournis à titre de référence uniquement. Comme l’environnement Kubernetes de chaque organisation est unique, votre instance auto-hébergée vous oblige probablement à ajuster les éléments suivants :- 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
Le diagramme suivant montre comment la plateforme W&B, le cluster ClickHouse, le service de coordination ClickHouse Keeper et le stockage S3 s’intègrent dans un déploiement Weave autogéré.Prérequis
Avant de commencer, assurez-vous que votre environnement répond aux exigences suivantes. Les instances Weave autogérées nécessitent les ressources suivantes :- 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
Pour configurer votre instance, vous avez besoin des outils suivants :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
Votre cluster Kubernetes nécessite la configuration réseau suivante :- 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
Les étapes suivantes vous guident tout au long du déploiement de l’opérateur, de la préparation du stockage, du déploiement de ClickHouse Keeper et du cluster ClickHouse, ainsi que de l’activation de Weave dans la plateforme W&B. Effectuez-les dans l’ordre, car chacune s’appuie sur les ressources créées à l’étape précédente.Déployer l’Altinity ClickHouse Operator
L’Altinity ClickHouse Operator gère les installations ClickHouse dans Kubernetes. Installer l’opérateur en premier permet aux étapes suivantes de déclarer les ressources ClickHouse Keeper et de cluster ClickHouse, que l’opérateur prend ensuite en charge pour vous.Ajouter le dépôt Helm d’Altinity
Créez la configuration de l’opérateur
Créez un fichier appelé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
ClickHouse nécessite un stockage S3 ou compatible S3 pour assurer la persistance des données. Dans cette étape, vous créez le bucket et configurez l’authentification de ClickHouse à celui-ci.Créer un bucket S3
Créez un bucket S3 dans votre compte AWS ou chez un fournisseur de stockage compatible S3. Remplacez[BUCKET-NAME] par le nom de votre bucket et [REGION] par votre région AWS :
Configurer les identifiants d’accès à S3
ClickHouse nécessite des identifiants pour lire dans le bucket et y écrire. Vous avez deux options pour fournir des identifiants d’accès à S3. W&B recommande l’option A (IRSA) sur AWS, car elle évite de stocker des secrets à long terme dans le cluster. Si vos nœuds Kubernetes disposent d’un rôle IAM donnant accès à S3, ClickHouse peut utiliser les métadonnées de l’instance EC2 :[ACCESS-KEY] par votre clé d’accès AWS et [SECRET-KEY] par votre clé secrète AWS :
Déployer ClickHouse Keeper
ClickHouse Keeper sert de système de coordination pour la réplication des données et l’exécution des requêtes DDL distribuées. Vous devez déployer Keeper avant le cluster ClickHouse, car les serveurs ClickHouse de l’étape 4 s’y connectent au démarrage.Créez la configuration de Keeper
Créez un fichier appelé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
Déployez maintenant le cluster de serveurs ClickHouse qui stocke les données de trace de Weave. Il s’agit de l’étape la plus importante de ce guide, car le cluster se connecte à la fois au service Keeper de l’étape 3 et au bucket S3 de l’étape 2.Créer la configuration du serveur ClickHouse
Créez un fichier appelé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
Modifiez la sectionstorage_configuration.xml de ch-server.yaml.
Exemple avec AWS S3 :
Configurez les identifiants d’accès (option B uniquement)
Si vous utilisez l’option B (clés d’accès) de l’étape 2, assurez-vous que la sectionenv de ch-server.yaml fait référence au secret :
env.
Noms d’hôte de Keeper
Il est essentiel que les noms d’hôte de Keeper soient corrects. S’ils ne correspondent pas aux services créés à l’étape 3, ClickHouse ne démarrera pas. Les noms d’hôte des nœuds Keeper dans la sectionzookeeper.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
Configurez maintenant la plateforme W&B afin d’utiliser le cluster ClickHouse pour les traces Weave. Cette étape indique à l’opérateur W&B où trouver votre instance ClickHouse gérée en externe et active le serviceweave-trace.
Rassemblez les informations de connexion à ClickHouse
Vous aurez besoin des éléments suivants :- 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
Modifiez la ressource personnalisée (CR) de votre plateforme W&B pour y ajouter la configuration Weave :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
Le service weave-trace crée automatiquement le schéma de la base de données requis lors du premier démarrage. Dans cette étape, vous confirmez que la migration s’est bien terminée avant d’exposer Weave aux utilisateurs finaux.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é
Cette dernière étape permet de vérifier que Weave est couvert par une licence, accessible depuis la W&B Console et capable d’enregistrer des traces à partir d’un SDK client.Accéder à la console W&B
Accédez à l’URL de votre instance W&B depuis un navigateur web.Vérifier le statut de la licence Weave
Dans la console W&B :- Accédez à Top Right Menu > Organization Dashboard.
- Vérifiez que l’accès à Weave est activé.
Tester le fonctionnement de Weave
Créez un test Python pour vérifier que Weave fonctionne :Dépannage
Les sections suivantes décrivent les problèmes de déploiement courants et expliquent comment les résoudre, regroupés selon le composant où le symptôme apparaît pour la première fois.Problèmes liés à ClickHouse Keeper
Problème : les pods Keeper restent bloqués à l’étatPending
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 parvient pas à se connecter à S3 Solution : Vérifiez les identifiants et les autorisations S3 :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
Problème : le podweave-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
Cette section fournit des allocations de ressources données à titre d’exemple pour deux profils de déploiement courants. Utilisez-les comme points de départ pour planifier votre cluster, puis affinez les chiffres en fonction de la charge de travail observée.Configuration minimale de production
Convient aux environnements de développement, de test ou de production à faible volume.
Configuration de production recommandée
Pour les charges de travail de production avec un volume de traces élevé :
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
Cette section présente les options de personnalisation des déploiements Weave autogérés, notamment l’augmentation de la capacité de ClickHouse par mise à l’échelle verticale ou mise à l’échelle horizontale, la mise à jour des versions de ClickHouse en modifiant les tags d’image dans les configurations keeper et server, ainsi que la surveillance de l’état de ClickHouse. W&B recommande de consulter l’équipe de Solutions Architect W&B lorsque vous apportez des modifications avancées à votre instance, afin de vous assurer qu’elles répondent à vos exigences en matière de performances et de fiabilité.Mettre à l’échelle ClickHouse
Pour augmenter la capacité de ClickHouse, vous pouvez :-
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
Pour utiliser une autre version de ClickHouse, mettez à jour le tag de l’image dans les deux fichiersch-keeper.yaml et ch-server.yaml :
Surveiller ClickHouse
Accédez aux tables système de ClickHouse pour la supervision :Sauvegarde et récupération
ClickHouse stocke les données dans S3, ce qui offre des capacités de sauvegarde natives grâce à la gestion des versions de S3 et aux fonctionnalités de réplication de bucket. Pour les stratégies de sauvegarde propres à votre déploiement, consultez votre équipe Solutions Architect W&B et référez-vous à la documentation de sauvegarde ClickHouse.Considérations de sécurité
Les déploiements de production doivent renforcer la sécurité des valeurs par défaut présentées dans ce guide. La liste suivante met en évidence les points les plus importants à examiner avec votre équipe 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 procédures suivantes décrivent les mises à niveau courantes de l’opérateur, du serveur ClickHouse et des composants Weave Trace. Mettez à niveau un composant à la fois et vérifiez que le déploiement est en bon état avant de passer au suivant.Weave nécessite une version de ClickHouse prise en charge. 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
Mettez à jour la version de l’image dansch-keeper.yaml et ch-server.yaml, puis appliquez le manifeste du serveur :
Mettre à niveau Weave Trace
Mettez à jour le tag d’image danswandb-cr.yaml, puis appliquez :
Ressources supplémentaires
- Configurer l’échantillonnage à l’ingestion: Conservez uniquement une partie des traces entrantes pour contrôler les coûts de stockage et de scoring des LLM lorsque le volume de traces est élevé.
- Documentation de l’opérateur Altinity ClickHouse
- Documentation de ClickHouse
- Documentation de Weave de W&B
- Configuration du stockage S3 de ClickHouse
Support
Pour les déploiements en Production ou en cas de problème :- 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
Q : Puis-je utiliser un seul réplica ClickHouse au lieu de 3 ? R : Oui, mais ce n’est pas recommandé pour la production. Mettez à jourreplicasCount: 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.