Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Come configurare i PodDefaults per i Notebook Server di Kubeflow

By Vinay GandhiAug 25, 20202 min read

Questa pagina è disponibile anche in English, Deutsch, Español, Français, 日本語 e Português.

Durante lo sviluppo del codice per modelli di machine learning, prima o poi nasce l'esigenza di accedere a variabili d'ambiente, secret (come username o password) e proprietà di configurazione direttamente da un notebook Jupyter.

In Kubernetes secret e proprietà di configurazione vengono salvati nel database "etcd": come fare però a leggerli dai Notebook Server di Kubeflow?

Questa guida passo passo illustra un metodo per accedere a variabili d'ambiente, secret e proprietà di configurazione dai notebook.

Configurare i PodDefaults per i Notebook Server di Kubeflow

Prerequisiti: il lettore ha conoscenze di base di Kubernetes e Kubeflow e ha già installato Kubeflow.

Kubeflow è pensato per sperimentare e mettere in produzione pipeline di machine learning su Kubernetes Engine. L'installazione di Kubeflow crea i nove namespace seguenti:

Il Notebook Server, uno dei componenti di Kubeflow, viene installato per impostazione predefinita nel namespace "kubeflow-".

Ecco i passaggi da seguire:

  1. Creare i secret per le variabili d'ambiente DB_USER e DB_PASSWORD nel namespace kubeflow-.

2. Creare un file "db-root-secret.yaml" con il contenuto seguente:

Quindi eseguire questo comando nel namespace kubeflow-:

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

3. Creare una configMap con la configurazione del database in un file denominato "max_allowed_packet.cnf"; la chiave della map è "db-config" e il namespace è kubeflow-.

Completati i tre passaggi precedenti, nella configurazione di Kubernetes dovremmo vedere quanto segue.

4. Creare un file denominato "add-db-info-poddefaults.yaml" con il contenuto seguente:

Quindi lanciare il comando kubectl apply in questo modo:

kubectl apply -f kubeflow-poddefaults.yaml

Verificare gli oggetti Kubernetes relativi al pod default "add-database-info":

5. Creare un nuovo Notebook Server in Kubeflow. Si nota che il pod default appena aggiunto compare nel menu a tendina di configurazione.

6. Infine, collegarsi al Notebook Server appena creato ed eseguire il codice di esempio per la verifica.

Variabili d'ambiente

Il file di configurazione su un percorso montato

Riferimenti:

Scarichi la versione testuale dei comandi e dei file di questo post da 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