Introduction
Ce guide fournit des instructions détaillées pour déployer la plateforme W&B dans des environnements gérés par le client, isolés du réseau, déconnectés ou soumis à des restrictions réseau. En suivant ce guide, vous configurez un registre de conteneurs interne et un dépôt Helm pour héberger les images et charts W&B, installez l’opérateur Kubernetes W&B et déployez la plateforme W&B sans nécessiter de connectivité Internet sortante. Ce guide s’adresse aux administrateurs de plateforme et aux ingénieurs DevOps qui gèrent une infrastructure Kubernetes dans des réseaux réglementés ou isolés. Les déploiements isolés du réseau sont courants dans les environnements suivants :- Les installations gouvernementales sécurisées.
- Les établissements financiers soumis à une isolation réseau stricte.
- Les organisations de santé soumises à des exigences de conformité.
- Les environnements de systèmes de contrôle industriels (ICS).
- Les centres de recherche disposant de réseaux classifiés.
Prérequis
Avant de commencer, assurez-vous que votre environnement isolé du réseau répond aux exigences suivantes.Versions requises
Prérequis SSL/TLS
W&B exige un certificat SSL/TLS valide, signé par une autorité reconnue, pour sécuriser les communications entre les clients et le serveur. La terminaison SSL/TLS doit se faire au niveau de l’ingress ou de l’équilibreur de charge. L’application W&B Server ne termine pas les connexions SSL ou TLS. Si possible, utilisez un service comme Let’s Encrypt pour fournir des certificats approuvés à votre équilibreur de charge. Des services comme Caddy et Cloudflare gèrent le SSL pour vous. Si vos politiques de sécurité exigent une communication SSL au sein de vos réseaux de confiance, envisagez d’utiliser un outil comme Istio et des conteneurs sidecar.Prérequis matériels
Architecture CPU : W&B fonctionne uniquement sur des processeurs Intel (x86). ARM n’est pas pris en charge. Dimensionnement : Pour les recommandations de dimensionnement du processeur, de la mémoire et du disque pour les nœuds Kubernetes et MySQL, consultez la section Dimensionnement de l’architecture de référence. Les exigences varient selon que vous exécutez Models, Weave ou les deux.Base de données MySQL
W&B nécessite une base de données MySQL externe. Pour la Production, W&B recommande d’utiliser des services de base de données gérés : Les services de base de données gérés offrent des sauvegardes automatisées, de la supervision, une haute disponibilité et l’application des correctifs, tout en réduisant la charge opérationnelle. Voir l’architecture de référence pour connaître les exigences MySQL, y compris les recommandations de dimensionnement et les paramètres de configuration. Pour le SQL permettant de créer la base de données, consultez le guide bare-metal. Pour toute question sur la configuration de la base de données de votre déploiement, contactez l’assistance ou votre AISE. Pour les paramètres de configuration de MySQL pour les instances autogérées, voir la section de l’architecture de référence consacrée à la configuration de MySQL.Redis
W&B dépend d’un déploiement Redis 7.x à nœud unique, utilisé par les composants de W&B pour la mise en file d’attente des jobs et la mise en cache des données. Pour les tests et les preuves de concept, W&B Autogéré inclut un déploiement Redis local. Ce déploiement intégré n’est pas adapté à un usage en production. Pour les déploiements en production, W&B peut se connecter à une instance Redis dans les environnements suivants :- Amazon ElastiCache
- Google Cloud Memorystore
- Azure Cache for Redis
- Redis auto-hébergé dans votre cloud ou sur site
Stockage d’objets
W&B requiert un stockage d’objets prenant en charge les URL pré-signées et CORS. W&B recommande les fournisseurs de stockage suivants :- Amazon S3 : service de stockage d’objets offrant évolutivité, disponibilité des données, sécurité et performances.
- Google Cloud Storage : service géré pour stocker des données non structurées à grande échelle.
- Azure Blob Storage : service de stockage d’objets cloud pour les données non structurées à grande échelle.
- CoreWeave AI Object Storage : stockage d’objets compatible S3 optimisé pour les charges de travail d’IA.
- Stockage compatible S3 de niveau entreprise, comme MinIO Enterprise (AIStor), NetApp StorageGRID ou d’autres solutions d’entreprise.
MinIO Open Source est en mode maintenance, sans développement actif ni binaires précompilés. Pour les déploiements en production, W&B recommande les services de stockage d’objets gérés ou les solutions compatibles S3 de niveau entreprise, comme MinIO Enterprise (AIStor).
Exigences spécifiques aux environnements isolés du réseau
En plus des exigences standard précédentes, les déploiements isolés du réseau nécessitent ce qui suit :- Registre interne de conteneurs : un accès à un registre privé de conteneurs tel que Harbor, JFrog Artifactory ou Nexus, contenant toutes les images W&B requises.
- Dépôt Helm interne : un accès à un dépôt privé de chart Helm contenant les charts Helm W&B.
- Capacité de transfert d’images : une méthode permettant de transférer des images de conteneur depuis un système connecté à Internet vers votre registre isolé du réseau.
- Fichier de licence : une licence W&B Enterprise valide. Pour obtenir une licence (par exemple, depuis une machine connectée à Internet), voir la section License de la page Requirements, ou contactez votre équipe commerciale W&B.
Préparez votre environnement isolé du réseau
Les étapes suivantes permettent de préparer votre environnement isolé du réseau à héberger les images de conteneur W&B et les charts Helm. Effectuez ces étapes avant d’installer l’opérateur ou de déployer la plateforme.Étape 1 : Configurer le registre de conteneurs interne
Comme le cluster Kubernetes ne peut pas extraire d’images depuis des registres publics, toutes les images de conteneur requises doivent être disponibles dans votre registre de conteneurs interne isolé du réseau avant le déploiement.Il vous incombe de suivre les exigences de l’opérateur W&B et de tenir votre registre de conteneurs à jour avec les dernières images. Pour obtenir la liste la plus récente des images de conteneur et des versions requises, référez-vous au chart Helm ou contactez l’assistance W&B ou votre ingénieur d’assistance W&B attitré.
Conteneurs des composants W&B essentiels
Les images principales suivantes sont requises :docker.io/wandb/controller: opérateur Kubernetes W&B.docker.io/wandb/local: serveur d’application W&B.docker.io/wandb/console: console de gestion W&B.docker.io/wandb/megabinary: microservices W&B (API, executor, glue, parquet).
Conteneurs de dépendances
Les images de dépendances tierces suivantes sont requises :docker.io/bitnamilegacy/redis: Requis pour le déploiement local de Redis pendant les phases de test et de développement. Pour les exigences Redis en Production, voir la section Redis dans les prérequis.docker.io/otel/opentelemetry-collector-contrib: Agent OpenTelemetry pour collecter les métriques et les journaux.quay.io/prometheus/prometheus: Prometheus pour la collecte de métriques.quay.io/prometheus-operator/prometheus-config-reloader: Dépendance Prometheus.
Obtenir la liste complète des images
Pour extraire la liste complète des images et des versions requises depuis le chart Helm :-
Sur un système connecté à Internet, téléchargez les charts Helm W&B depuis le dépôt des charts Helm W&B :
-
Inspectez les fichiers
values.yamlpour identifier toutes les images de conteneur et leurs versions :Vous pouvez également utiliser cette commande pour extraire uniquement les noms des dépôts (sans les tags de version) :La liste des dépôts ressemblera à ceci :Pour obtenir les tags de version spécifiques à chaque image, utilisez la première commande précédente (grep -E "repository:|tag:"), qui affiche à la fois les noms des dépôts et les tags de version correspondants.
Transférer des images vers un registre isolé du réseau
-
Sur un système connecté à Internet, téléchargez et enregistrez toutes les images requises.
Utilisez des variables shell pour gérer les versions de manière cohérente :Remplacez les numéros de version dans les exemples suivants par les versions réelles obtenues lors de l’inspection de votre chart Helm à l’étape précédente. Les versions indiquées ici sont données à titre d’exemple et deviennent obsolètes au fil du temps.
-
Transférez les fichiers
.tarvers votre environnement isolé du réseau à l’aide de la méthode approuvée, par exemple une clé USB ou un transfert de fichiers sécurisé. -
Dans votre environnement isolé du réseau, chargez les images et poussez-les vers votre registre interne :
Étape 2 : Configurer le dépôt interne de charts Helm
Une fois les images de conteneur en place, l’opérateur Kubernetes doit également avoir accès aux charts Helm W&B. Assurez-vous que les charts Helm suivants sont disponibles dans votre dépôt Helm interne :-
Sur un système connecté à Internet, téléchargez les charts :
-
Transférez les fichiers de chart
.tgzvers votre environnement isolé du réseau et téléversez-les dans votre dépôt Helm interne conformément aux procédures de votre dépôt. Le chartoperatordéploie l’opérateur Kubernetes W&B (Controller Manager). Le chartoperator-wandbdéploie la plateforme W&B à l’aide des valeurs configurées dans la Ressource personnalisée (CR).
Étape 3 : Configurer l’accès au dépôt Helm
Configurez votre client Helm local dans l’environnement isolé du réseau pour qu’il pointe vers votre dépôt interne, afin que les commandes d’installation suivantes puissent localiser les charts.-
Dans votre environnement isolé du réseau, configurez Helm pour utiliser votre dépôt interne :
-
Vérifiez que les charts sont disponibles :
Déployer W&B dans un environnement isolé du réseau
Une fois votre registre interne et votre dépôt Helm en place, vous pouvez désormais installer l’opérateur Kubernetes, configurer les services externes et déployer la plateforme W&B.Étape 4 : Installer l’opérateur Kubernetes
L’opérateur Kubernetes W&B (controller manager) gère les composants de la plateforme W&B. Pour l’installer dans un environnement isolé du réseau, configurez-le pour utiliser votre registre de conteneurs interne.-
Créez un fichier
values.yamlavec le contenu suivant :Remplacez le dépôt et le tag par les versions réelles que vous avez transférées vers votre registre interne à l’étape 1. La version indiquée ici (1.13.3) est un exemple et devient obsolète au fil du temps. -
Installez l’opérateur et la définition de ressource personnalisée (CRD) :
-
Vérifiez que l’opérateur est en cours d’exécution :
Vous devriez voir le pod de l’opérateur dans l’état
Running.
Étape 5 : Configurer la base de données MySQL
Avant de configurer la Ressource personnalisée W&B, configurez une base de données MySQL externe. Pour les déploiements de production, W&B recommande fortement d’utiliser des services de base de données gérés lorsqu’ils sont disponibles. Cependant, si vous exploitez votre propre instance MySQL, créez la base de données et l’utilisateur : Créez une base de données et un utilisateur à l’aide des commandes SQL suivantes. Remplacez[PASSWORD] par un mot de passe robuste :
Étape 6 : Configurer la Ressource personnalisée W&B
Après avoir installé l’opérateur Kubernetes W&B, configurez la Ressource personnalisée (CR) pour qu’elle pointe vers votre dépôt Helm interne et votre registre de conteneurs interne. Cette configuration garantit que l’opérateur Kubernetes utilise votre registre et votre dépôt internes lors du déploiement des composants requis de la plateforme W&B, au lieu de tenter d’accéder à des sources publiques.L’exemple de configuration suivant inclut des tags de version d’image qui deviennent obsolètes au fil du temps. Remplacez toutes les valeurs
tag: par les versions réelles que vous avez transférées vers votre registre interne à l’étape 1.wandb.yaml avec le contenu suivant :
Remplacez toutes les valeurs fictives, telles que les noms d’hôte, les mots de passe et les tags, par vos valeurs de configuration réelles. L’exemple précédent présente les composants les plus couramment utilisés.
settingsMigrationJobweave-tracefilestreamflat-runs-table
Étape 7 : Déployer la plateforme W&B
Le fait d’appliquer la Ressource personnalisée déclenche l’installation par l’opérateur des composants de la plateforme W&B définis dans le chartoperator-wandb, à partir de la configuration et des références d’image de wandb.yaml.
-
Appliquez la Ressource personnalisée W&B pour déployer la plateforme :
-
Surveillez la progression du déploiement :
Le déploiement peut prendre plusieurs minutes, le temps que l’opérateur crée tous les composants nécessaires.
Configuration d’OpenShift
W&B prend en charge le déploiement sur des clusters Kubernetes OpenShift isolés. Les déploiements OpenShift nécessitent une configuration supplémentaire du contexte de sécurité en raison des politiques de sécurité plus strictes d’OpenShift. Si vous effectuez un déploiement sur OpenShift, appliquez les configurations de cette section en plus des étapes précédentes.Contraintes de contexte de sécurité d’OpenShift
OpenShift utilise les Security Context Constraints (SCC) pour contrôler les autorisations des pods. Par défaut, OpenShift attribue la SCCrestricted aux pods, ce qui empêche de s’exécuter en tant que root et exige des identifiants utilisateur spécifiques.
Option 1 : Utiliser la SCC restricted (recommandée)
Configurez les composants W&B pour qu’ils s’exécutent avec la SCC restricted en définissant les contextes de sécurité appropriés dans votre Ressource personnalisée :Option 2 : Créer une SCC personnalisée (si nécessaire)
Si votre déploiement nécessite des capacités qui ne sont pas disponibles dans la SCCrestricted, créez une SCC personnalisée :
-
Appliquez le SCC :
-
Associez le SCC aux comptes de service de W&B :
Routes d’OpenShift
OpenShift utilise des Routes au lieu de l’ingress Kubernetes standard. Configurez W&B pour utiliser les Routes d’OpenShift :Configuration de récupération d’image pour OpenShift
Si votre cluster OpenShift utilise un registre d’images interne avec authentification :-
Créez un secret de récupération d’image :
-
Ajoutez une référence au secret dans votre Ressource personnalisée :
Exemple complet pour OpenShift
L’exemple suivant montre une CR complète pour un déploiement OpenShift isolé du réseau :Remplacez toutes les valeurs
tag: de cet exemple par les versions réelles que vous avez transférées dans votre registre interne à l’étape 1. Les versions indiquées ici sont fournies à titre d’exemple et deviennent obsolètes avec le temps.Contactez assistance W&B ou votre ingénieur d’assistance W&B attitré pour obtenir des exemples complets de configuration d’OpenShift adaptés à vos exigences de sécurité.
Vérifiez votre installation
Après avoir déployé W&B, vérifiez que l’installation fonctionne correctement afin de confirmer que la plateforme est accessible, que les pods sont en bon état et que le déploiement utilise uniquement vos ressources internes. Suivez les étapes générales de vérification, puis effectuez les vérifications supplémentaires propres aux environnements isolés du réseau dans la section suivante. Pour vérifier l’installation, W&B recommande d’utiliser le W&B CLI. La commandewandb verify exécute des tests qui confirment que les composants et les configurations fonctionnent comme prévu.
Cette procédure suppose que vous créez le premier compte administrateur dans un navigateur.
-
Installez le W&B CLI :
-
Connectez-vous à W&B :
Par exemple :
-
Vérifiez l’installation :
Vérifications supplémentaires pour un environnement isolé du réseau
Pour les déploiements isolés du réseau, vérifiez également les points suivants :-
Récupération d’image : assurez-vous que tous les pods ont bien récupéré les images depuis votre registre interne :
Toutes les images doivent pointer vers votre registre interne, et tous les pods doivent être dans l’état
Running. -
Connectivité externe : vérifiez que W&B ne tente pas d’établir de connexions externes (cela ne devrait pas arriver en mode isolé du réseau) :
- Validation de la licence : accédez à la console W&B et vérifiez que votre licence est active.
Dépannage
Erreurs de récupération d’image
Si les pods ne parviennent pas à récupérer des images, vérifiez les points suivants :- Vérifiez que les images sont présentes dans votre registre interne.
- Vérifiez que le secret de récupération d’image est correctement configuré.
- Vérifiez la connectivité réseau entre les nœuds Kubernetes et le registre.
- Vérifiez les identifiants d’authentification du registre.
Erreurs SCC d’OpenShift
Si des pods échouent en raison d’erreurs d’autorisation sur OpenShift :Chart Helm introuvable
Si l’opérateur ne parvient pas à trouver le chart de la plateforme, vérifiez les points suivants :- Vérifiez l’URL du dépôt Helm dans la Ressource personnalisée.
- Vérifiez que le pod de l’opérateur peut accéder à votre dépôt Helm interne.
-
Vérifiez que le chart existe dans votre dépôt :
Foire aux questions
Puis-je utiliser une autre classe d’ingress ?
Oui, configurez votre classe d’ingress en modifiant les paramètres d’ingress dans votre ressource personnalisée :Comment puis-je gérer des bundles de certificats contenant plusieurs certificats ?
Répartissez les certificats en plusieurs entrées dans la sectioncustomCACerts :
Comment puis-je empêcher les mises à jour automatiques ?
Pour configurer l’opérateur afin qu’il ne mette pas W&B à jour automatiquement, procédez comme suit :- Définissez
airgapped: truedans l’installation de l’opérateur (cela désactive les vérifications automatiques de mise à jour). - Gérez les mises à jour de version en mettant à jour manuellement
spec.chart.versiondans votre Ressource personnalisée. - Si nécessaire, désactivez les mises à jour automatiques depuis la console système de W&B.
W&B recommande vivement aux clients disposant d’instances autogérées de mettre à jour leurs déploiements avec la dernière version au moins une fois par trimestre afin de conserver l’assistance et de bénéficier des dernières fonctionnalités, améliorations des performances et correctifs. W&B prend en charge une version majeure pendant 12 mois à compter de sa date de sortie initiale. Reportez-vous à Politiques et processus de version.
Le déploiement fonctionne-t-il sans connexion à des dépôts publics ?
Oui. Lorsqueairgapped: true est défini dans la configuration de l’opérateur, l’opérateur Kubernetes utilise uniquement vos ressources internes et n’essaie pas de se connecter à des dépôts publics.
Comment puis-je mettre à jour W&B dans un environnement isolé du réseau ?
Pour mettre à jour W&B :- Téléchargez les nouvelles images de conteneur sur un système connecté à Internet.
- Transférez les images vers votre registre isolé du réseau.
- Téléversez les nouveaux charts Helm dans votre dépôt interne.
-
Mettez à jour
spec.chart.versionet les tags d’image dans votre Ressource personnalisée. - Appliquez la Ressource personnalisée mise à jour. L’opérateur effectue une mise à jour progressive des composants W&B.
Prochaines étapes
Après un déploiement réussi, effectuez les tâches suivantes :- Configurer l’authentification des utilisateurs : Configurez SSO ou d’autres méthodes d’authentification.
- Mettre en place la supervision : Configurez la supervision de votre instance W&B et de votre infrastructure.
- Planifier les mises à jour : Consultez le processus de mise à niveau du serveur et définissez une cadence de mise à jour.
- Configurer les sauvegardes : Mettez en place des procédures de sauvegarde pour votre base de données MySQL.
- Documenter votre processus : Créez des runbooks pour vos procédures spécifiques de mise à jour en environnement isolé.
Obtenir de l’aide
Si vous rencontrez des problèmes pendant le déploiement :- Consultez l’architecture de référence pour obtenir des conseils sur l’infrastructure.
- Consultez le guide de l’opérateur pour plus de détails sur la configuration.
- Contactez l’assistance W&B ou votre ingénieur d’assistance W&B dédié.
- Pour les problèmes spécifiques à OpenShift, consultez la documentation Red Hat OpenShift.