Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Como configurar PodDefaults em Notebook Servers do Kubeflow

By Vinay GandhiAug 25, 20202 min read

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

Em algum momento, você vai precisar acessar variáveis de ambiente, secrets (como usuário ou senha) e/ou propriedades de configuração dentro do notebook Jupyter enquanto desenvolve o código dos seus modelos de machine learning.

No Kubernetes, secrets e propriedades de configuração ficam armazenados no banco de dados "etcd". Mas como acessá-los nos Notebook Servers do Kubeflow?

Este guia passo a passo mostra um método para acessar variáveis de ambiente, secrets e propriedades de configuração nos notebooks.

Configurando PodDefaults para Notebook Servers do Kubeflow

Pré-requisitos: ter conhecimento básico de Kubernetes + Kubeflow e já ter o Kubeflow instalado.

O Kubeflow foi criado para ajudar você a experimentar e implantar pipelines de machine learning no Kubernetes Engine. A instalação do Kubeflow cria nove namespaces, conforme mostrado abaixo:

A instalação do Notebook Server, um dos componentes do Kubeflow, roda por padrão no namespace "kubeflow-".

Veja o passo a passo:

  1. Crie secrets para as variáveis de ambiente DB_USER e DB_PASSWORD no namespace kubeflow-.

2. Crie um arquivo "db-root-secret.yaml" com o seguinte conteúdo:

Em seguida, rode o comando abaixo no namespace kubeflow-:

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

3. Crie um configMap com a configuração do banco de dados em um arquivo chamado "max_allowed_packet.cnf"; a chave do map é "db-config" e o namespace é kubeflow-

Concluídos esses três passos com sucesso, você verá o seguinte na configuração do Kubernetes.

4. Crie um arquivo chamado "add-db-info-poddefaults.yaml" com o seguinte conteúdo:

Depois, rode o comando kubectl apply assim:

kubectl apply -f kubeflow-poddefaults.yaml

Confira os objetos do Kubernetes do pod default "add-database-info":

5. Crie um novo Notebook Server no Kubeflow. Repare que o pod default recém-adicionado aparece no menu suspenso de configuração.

6. Por fim, conecte-se ao Notebook Server recém-criado e execute o código de exemplo para validar.

Variáveis de ambiente

O arquivo de configuração em um caminho montado

Referências:

Baixe a versão em texto dos comandos e arquivos deste post em 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