- 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.
- Stockage compatible S3 : stockage d’objets assurant la persistance des données ClickHouse.
Remarques importantes sur la configuration
Les exemples de configuration de ce guide sont fournis à titre de référence uniquement. L’environnement Kubernetes de chaque organisation étant unique, vous devrez probablement ajuster les éléments suivants pour votre instance auto-hébergée :- 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 ne sont que des points de départ. Consultez votre équipe Solutions Architect W&B pour obtenir un dimensionnement adapté au volume de traces attendu et à vos exigences de performances.
- Spécificités de l’infrastructure : adaptez les classes de stockage, les sélecteurs de nœuds et les autres paramètres propres à l’infrastructure à 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’articulent dans un déploiement autogéré de Weave.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 multi-nœuds (au moins 3 nœuds recommandés pour la haute disponibilité).
- Classe de stockage : une StorageClass fonctionnelle pour les volumes persistants (par exemple,
gp3,standardounfs-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 cours d’exécution. Voir le guide de déploiement de W&B autogéré.
- Licence W&B : licence incluant Weave, fournie par l’assistance W&B.
Outils requis
Pour configurer votre instance, vous avez besoin des outils suivants :kubectlconfiguré avec un accès au cluster.helmen version 3.0 ou ultérieure.- Des identifiants d’authentification 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 du namespace
clickhousedoivent pouvoir communiquer avec les pods du namespacewandb. - Les nœuds ClickHouse doivent pouvoir communiquer entre eux sur les ports
8123,9000,9009et2181.
Déployer votre instance Weave autogérée
Les étapes suivantes vous guident dans le déploiement de l’opérateur, la préparation du stockage, le déploiement de ClickHouse Keeper et du cluster ClickHouse, puis l’activation de Weave dans la plateforme W&B. Suivez ces étapes dans l’ordre, car chacune s’appuie sur les ressources créées lors de 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, lors des étapes suivantes, de déclarer des ressources ClickHouse Keeper et de cluster ClickHouse que l’opérateur réconcilie pour vous.Ajouter le dépôt Helm Altinity
Créer la configuration de l’opérateur
Créez un fichier nommé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 présentées ici conviennent à la plupart des distributions Kubernetes. Pour OpenShift, vous devrez peut-être ajuster runAsUser et fsGroup en fonction de la plage d’UID attribuée à votre projet.
Installer 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. Au cours de cette étape, vous allez créer le bucket et configurer la méthode d’authentification de ClickHouse auprès de celui-ci.Créer un bucket S3
Créez un bucket S3 dans votre compte AWS ou chez votre 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’authentification S3
ClickHouse a besoin d’identifiants d’authentification pour lire et écrire dans le bucket. Deux options s’offrent à vous pour fournir les identifiants d’accès S3. Sur AWS, W&B recommande l’option A (IRSA), car elle évite de stocker des secrets à longue durée de vie 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 fournit le système de coordination nécessaire à 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 se connectent à Keeper dès leur démarrage.Créer la configuration de Keeper
Créez un fichier nomméch-keeper.yaml. Ce manifeste définit un cluster Keeper à trois réplicas avec anti-affinité et stockage persistant, ainsi que les paramètres utilisés par l’opérateur Altinity pour provisionner les pods Keeper :
- StorageClass : modifiez
storageClassName: gp3pour qu’il corresponde à la StorageClass disponible dans 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 fournies à titre d’exemple. Consultez les Solutions Architects W&B pour un dimensionnement adapté.
- Nommage : si vous modifiez
metadata.nameouconfiguration.clusters[0].name, vous devez mettre à jour en conséquence les noms d’hôte Keeper dansch-server.yaml(étape 4).
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 Weave. Il s’agit de l’étape la plus longue du 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 nomméch-server.yaml. Ce manifeste déclare le cluster ClickHouse, sa connexion à Keeper, le compte utilisateur Weave ainsi que la stratégie de stockage S3 utilisée pour les données de trace :
- StorageClass : modifiez
storageClassName: gp3pour qu’il corresponde à la StorageClass de votre cluster. - Point de terminaison S3 : remplacez
[BUCKET-NAME]et[REGION]par vos propres valeurs. - 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é conformément aux 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 obtenir un dimensionnement adapté au volume de traces attendu.
- Règles d’anti-affinité : personnalisez-les ou supprimez-les en fonction de la topologie de votre cluster et de vos besoins en 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 défini à l’étape 3 (voir « Nommage Keeper »).
- Nommage du cluster : le nom de cluster
weaveclusterpeut être modifié, mais il doit correspondre à la valeurWF_CLICKHOUSE_REPLICATED_CLUSTERde l’étape 5. - Identifiants d’authentification :
- 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
Mettre à jour la configuration S3
Modifiez la sectionstorage_configuration.xml dans ch-server.yaml.
Exemple pour AWS S3 :
Configurer les identifiants d’authentification (option B uniquement)
Si vous utilisez l’option B (clés d’accès) de l’étape 2, vérifiez que la sectionenv du fichier ch-server.yaml fait bien référence au secret :
env.
Nommage des Keepers
Il est essentiel de bien définir les noms d’hôte des Keepers. 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 de ClickHouseKeeperInstallation (fixe).[INSTALLATION-NAME]correspond à la valeurmetadata.namedech-keeper.yaml(par exemple,wandb).[CLUSTER-NAME]correspond à la valeurconfiguration.clusters[0].namedech-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 le namespace Kubernetes (par exemple,clickhouse).
metadata.name: myweave) :
clusters[0].name: coordination) :
Les noms d’hôte Keeper définis dans
ch-server.yaml doivent correspondre exactement aux noms des services réellement créés par le déploiement Keeper, faute de quoi les serveurs ClickHouse ne pourront 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 qu’elle utilise le cluster ClickHouse pour les traces Weave. Cette étape indique au W&B Operator où trouver votre instance ClickHouse gérée en externe et active le serviceweave-trace.
Rassembler 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 de Weave :clickhouse.replicated: true: requis si vous utilisez 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 défini dansch-server.yaml.
Les contextes de sécurité, les allocations de ressources et les autres configurations propres à Kubernetes présentés ici sont fournis à titre d’exemple. Personnalisez-les selon les exigences de votre organisation et consultez votre équipe Solutions Architect W&B pour dimensionner correctement les ressources.
Appliquer 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 base de données requis lors de son premier démarrage. Au cours de cette étape, vous vérifiez que la migration s’est bien déroulée avant de mettre Weave à la disposition des 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 confirmer que Weave dispose d’une licence, qu’il est accessible depuis la console W&B et qu’il peut enregistrer des traces depuis un SDK client.Accéder à la console W&B
Accédez à l’URL de votre instance W&B dans un navigateur web.Vérifier le statut de la licence Weave
Dans la console W&B :- Accédez à menu en haut à droite > tableau de bord de l’organisation.
- Vérifiez que Weave access 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 leur résolution, regroupés selon le composant où le symptôme se manifeste en premier.Problèmes liés à ClickHouse Keeper
Problème : les pods Keeper restent bloqués à l’étatPending
Solution : vérifiez plusieurs causes possibles :
- Problèmes liés au PVC et à la StorageClass :
- Anti-affinité et disponibilité des nœuds :
- L’anti-affinité requiert 3 nœuds distincts, mais le cluster en compte moins.
- Les nœuds ne disposent pas de suffisamment de CPU ou de mémoire pour satisfaire les requêtes de ressources des pods.
- Des taints sur les nœuds empêchent la planification des pods.
- Supprimez ou ajustez les règles d’anti-affinité si vous disposez de moins de 3 nœuds.
- Utilisez
preferredDuringSchedulingIgnoredDuringExecutionau lieu derequiredDuringSchedulingIgnoredDuringExecutionpour une anti-affinité plus souple. - Réduisez les requêtes de ressources si les ressources des nœuds sont limitées.
- Ajoutez des nœuds supplémentaires à votre cluster.
Problème : pods Keeper en état
CrashLoopBackOff
Solution : consultez les journaux et vérifiez la configuration :
- Contexte de sécurité incorrect (vérifiez
runAsUseretfsGroup). - Problèmes d’autorisations sur les volumes.
- Conflits de ports.
- Erreurs de configuration dans
ch-keeper.yaml.
Problèmes liés au serveur ClickHouse
Problème : ClickHouse ne parvient pas à se connecter à S3 Solution : Vérifiez les identifiants d’authentification et les autorisations S3 :Problème : ClickHouse ne parvient pas à se connecter à Keeper Solution : Vérifiez les points de terminaison et le nommage de Keeper :
ch-server.yaml ne correspondent probablement pas à votre déploiement Keeper réel. Voir la section « Nommage de Keeper » de l’étape 4 pour connaître le modèle de nommage.
Problèmes liés à Weave Trace
Problème : le podweave-trace ne démarre pas
Solution : vérifiez la connectivité à ClickHouse :
Problème : Weave n’apparaît pas comme activé dans la 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. -
Consultez 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 défini dans ch-server.yaml :
Ressources requises
Cette section fournit des exemples d’allocation de ressources pour deux profils de déploiement courants. Utilisez-les comme point de départ pour planifier votre cluster, puis ajustez les valeurs en fonction de la charge de travail observée.Configuration de production minimale
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 générant un volume de traces élevé :
Cette configuration convient aux environnements de production à fort volume.
Pour les déploiements à très fort volume, contactez votre équipe de Solutions Architects W&B afin d’obtenir des recommandations de dimensionnement personnalisées, basées sur votre volume de traces et 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 horizontale, la mise à jour des versions de ClickHouse par la modification des tags d’image dans les configurations du keeper et du serveur, ainsi que la surveillance de l’état de santé de ClickHouse. W&B recommande de consulter votre équipe Solutions Architect W&B avant d’apporter des modifications avancées à votre instance, afin de vous assurer qu’elles répondent à vos exigences de performances et de fiabilité.Mettre à l’échelle ClickHouse
Pour augmenter la capacité de ClickHouse, vous pouvez recourir à :-
Mise à l’échelle verticale : augmentez les ressources de chaque pod (approche la plus simple).
Recommandation : surveillez l’utilisation réelle des ressources et ajustez-les en conséquence. Pour les déploiements à très fort volume, contactez votre équipe Solutions Architect W&B.
-
Mise à l’échelle horizontale : ajoutez des réplicas (nécessite une planification rigoureuse).
- L’augmentation du nombre de réplicas implique 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 œuvre la mise à l’échelle horizontale en production.
Utiliser une autre version de ClickHouse
Pour utiliser une autre version de ClickHouse, mettez à jour le tag d’image dansch-keeper.yaml et dans ch-server.yaml :
Surveiller ClickHouse
Accédez aux tables système de ClickHouse pour en assurer la surveillance :Sauvegarde et récupération
ClickHouse stocke les données dans S3, ce qui offre des capacités de sauvegarde intégrées grâce aux fonctionnalités de gestion des versions et de réplication de buckets S3. Pour définir une stratégie de sauvegarde adaptée à votre déploiement, consultez votre équipe Solutions Architect W&B et reportez-vous à la documentation ClickHouse sur la sauvegarde.Considérations de sécurité
Pour les déploiements en production, renforcez les valeurs par défaut présentées dans ce guide. La liste suivante récapitule les principaux points à examiner avec votre équipe de sécurité.- Identifiants d’authentification : stockez les mots de passe ClickHouse dans des secrets Kubernetes, et non en texte clair.
- Stratégies réseau : envisagez de mettre en place des NetworkPolicies pour restreindre l’accès à ClickHouse.
- RBAC : assurez-vous que les comptes de service ne disposent que des autorisations strictement nécessaires.
- Bucket S3 : activez le chiffrement au repos et limitez l’accès au bucket aux seuls rôles IAM nécessaires.
- TLS : facultatif. En production, activez TLS pour les connexions client à ClickHouse.
Mise à niveau
Les procédures suivantes décrivent les mises à niveau courantes des composants suivants : l’opérateur, le serveur ClickHouse et Weave Trace. Mettez à niveau un seul composant à la fois et vérifiez que le déploiement est opérationnel avant de passer au suivant.Weave nécessite une version de ClickHouse prise en charge. Consultez Compatibilité de ClickHouse pour les mises à niveau et 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 simultanément.
Mettre à niveau l’opérateur ClickHouse
Mettre à niveau le serveur ClickHouse
Mettez à jour la version de l’image dans les fichiersch-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 la configuration :
Ressources supplémentaires
- Configurer l’échantillonnage à l’ingestion : ne conservez qu’une partie des traces entrantes afin de maîtriser les coûts de stockage et d’évaluation par LLM lorsque le volume de traces est élevé.
- Documentation de l’opérateur ClickHouse d’Altinity
- Documentation de ClickHouse
- Documentation de W&B Weave
- Configuration du stockage S3 pour ClickHouse
Assistance
Pour les déploiements en production ou en cas de problème :- Assistance CoreWeave Forge :
forge-support@coreweave.com - Architectes de solutions : pour les déploiements à très grand volume, le dimensionnement personnalisé et la planification des déploiements.
- À inclure dans vos demandes d’assistance :
- Les journaux de
weave-trace, des pods ClickHouse et de l’opérateur. - Les versions de W&B, de ClickHouse et de Kubernetes.
- Les informations sur le cluster et le volume de traces.
- Les journaux de
FAQ
Q : Puis-je utiliser un seul réplica ClickHouse au lieu de 3 ? R : Oui, mais ce n’est pas recommandé en production. DéfinissezreplicasCount: 1 dans ch-server.yaml et clickhouse.replicated: false dans wandb-cr.yaml.
Q : Puis-je utiliser une autre base de données que ClickHouse ?
R : Non. Weave Trace nécessite ClickHouse pour ses capacités de stockage en colonnes hautes performances.
Q : De quelle capacité de stockage S3 ai-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 en colonnes de ClickHouse compresse efficacement les données de trace.
Q : Dois-je configurer le nom de la database dans ClickHouse ?
R : Non. Le service weave-trace crée automatiquement la base de données weave lors du 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 sur le nom de votre cluster, faute de quoi les migrations de base de données échoueront.
Q : Dois-je reprendre à l’identique 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 aux politiques de sécurité de votre organisation, en particulier pour les clusters OpenShift, qui imposent des plages d’UID et de GID spécifiques.
Q : Comment puis-je savoir si mon cluster ClickHouse est correctement dimensionné ?
R : Contactez l’équipe Solutions Architect W&B en lui indiquant votre volume de traces prévu et vos profils d’utilisation. Elle vous fournira des recommandations de dimensionnement. Surveillez l’utilisation des ressources de votre déploiement et ajustez-la si nécessaire.
Q : Puis-je personnaliser les conventions de nommage utilisées dans les exemples ?
R : Oui, mais vous devez garantir leur cohérence entre tous les composants :
- Noms ClickHouse Keeper : ils doivent correspondre aux noms d’hôte des nœuds Keeper dans la section
zookeeper.nodesdech-server.yaml. - Nom du cluster ClickHouse (
weavecluster) : il doit correspondre àWF_CLICKHOUSE_REPLICATED_CLUSTERdanswandb-cr.yaml. - Nom de l’installation ClickHouse : il détermine le nom d’hôte du service utilisé par
weave-trace.