Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Configurer les PodDefaults pour les Kubeflow Notebook Servers

By Vinay GandhiAug 25, 20202 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

Lors du développement de modèles de machine learning, vous aurez parfois besoin d'accéder, depuis un notebook Jupyter, à des variables d'environnement, à des secrets (nom d'utilisateur, mot de passe, etc.) ou encore à des propriétés de configuration.

Dans Kubernetes, les secrets et les propriétés de configuration sont stockés dans la base etcd. Mais comment y accéder depuis les Kubeflow Notebook Servers ?

Ce guide pas à pas détaille une méthode pour accéder aux variables d'environnement, aux secrets et aux propriétés de configuration depuis les notebooks.

Configurer les PodDefaults pour les Kubeflow Notebook Servers

Prérequis : le lecteur dispose de connaissances de base sur Kubernetes et Kubeflow, et a déjà installé Kubeflow.

Kubeflow est conçu pour vous aider à expérimenter et à déployer des pipelines de machine learning au sein de Kubernetes Engine. L'installation de Kubeflow crée neuf namespaces :

L'installation du Notebook Server, l'un des composants de Kubeflow, s'exécute par défaut dans le namespace kubeflow-<username>.

Voici les étapes à suivre :

  1. Créez les secrets pour les variables d'environnement DB_USER et DB_PASSWORD dans le namespace kubeflow-<username>.

2. Créez un fichier db-root-secret.yaml avec le contenu suivant :

Exécutez ensuite la commande suivante dans le namespace kubeflow-<username> :

kubectl apply -n kubeflow-vinay -f db-root-secret.yaml

3. Créez un configMap contenant la configuration de la base de données dans un fichier nommé max_allowed_packet.cnf ; la clé de la map est db-config et le namespace est kubeflow-<username>.

Une fois ces trois étapes terminées, voici ce que l'on doit observer dans la configuration Kubernetes :

4. Créez un fichier nommé add-db-info-poddefaults.yaml avec le contenu suivant :

Exécutez ensuite la commande kubectl apply :

kubectl apply -f kubeflow-poddefaults.yaml

Vérifiez les objets Kubernetes pour le pod default add-database-info :

5. Créez un nouveau Notebook Server dans Kubeflow. Le pod default qui vient d'être ajouté apparaît dans la liste déroulante de configuration.

6. Enfin, connectez-vous au Notebook Server que vous venez de créer et exécutez l'exemple de code pour vérification.

Variables d'environnement

Le fichier de configuration sur un chemin monté

Références :

Téléchargez la version texte des commandes et des fichiers de cet article ici : https://bit.ly/3k8B08d

Set Up Your Notebooks \ \ Getting started with Jupyter notebooks on Kubeflow Your Kubeflow deployment includes services for spawning and managing…\ \ www.kubeflow.org

kubeflow/kubeflow \ \ We need a way to inject common data (env vars, volumes) to pods (e.g. notebooks). See issue. K8s has PodPreset resource…\ \ github.com

Inject Information into Pods Using a PodPreset \ \ FEATURE STATE: Kubernetes v1.6 [alpha] This page shows how to use PodPreset objects to inject information like…\ \ kubernetes.io

An Introduction to Kubernetes Secrets and ConfigMaps \ \ Kubernetes has two types of objects that can inject configuration data into a container when it starts up: Secrets and…\ \ opensource.com