Saltar para o conteúdo principal
Versão 3.0

Configuração do JupyterLab

ChartVersion3.0.1TypeapplicationAppVersion5.3.0
CompatibilidadeKubernetes1.32+OpenShift4.19+Rancher2.10.x+
Suporte a recursosLDAPsuportadoS3suportadoExternal DBsuportadoIngresssuportadoGateway APIsuportado

O que é o JupyterLab?

O JupyterLab é a interface interativa de notebooks do TDP Kubernetes. É o ambiente onde analistas e engenheiros de dados escrevem e executam código, organizam arquivos e exploram dados diretamente no browser.

No TDP Kubernetes, o JupyterLab é servido pelo JupyterHub, responsável pela autenticação e pelo ciclo de vida dos ambientes de cada usuário no cluster.

Para saber mais

Consulte JupyterLab — Conceitos para uma visão completa da ferramenta, sua arquitetura e funcionamento.

Estrutura de valores (Helm)

O chart tdp-jupyter organiza sua configuração em quatro blocos principais:

BlocoFinalidade
tdp-jupyter:Configuração do JupyterHub: Hub, Proxy, pods single-user, autenticação, storage e segurança
tdpSparkIntegration:Integração com Spark: modo local ou cluster externo, ConfigMap e subchart opcional
TDP-Settings:Configurações TDP: banco de dados externo e controle de exposição (Ingress/Gateway API)
openshift:Forçar modo OpenShift quando a detecção automática não é possível

Use helm show values oci://registry.tecnisys.com.br/tdp/charts/tdp-jupyter > values-padrao.yaml para consultar todos os parâmetros disponíveis.

Visão geral

PropriedadeValor
Charttdp-jupyter
Versão do JupyterHub5.3.0
Versão do chart3.0.1
Interface de usoJupyterLab servido pelo JupyterHub
Modelo de execuçãoUm pod single-user por usuário autenticado
Banco de metadadosSQLite por padrão, com opção de PostgreSQL externo
Exposição HTTPProxy do JupyterHub via Service, Ingress ou Gateway API

Componentes principais

ComponenteDescrição
HubServiço central do JupyterHub, responsável por autenticação e gestão dos ambientes
ProxyProxy reverso que encaminha cada usuário para o seu ambiente
Single-user podsUm pod Kubernetes por usuário autenticado
PVCsArmazenamento persistente para os notebooks, quando configurado

Modelo single-user

Cada vez que um usuário faz login, o Hub cria um pod dedicado para ele no Kubernetes. Quando o usuário para o servidor, o pod é encerrado, mas o storage pode persistir se estiver associado a PVC.

Isso significa que o dimensionamento do cluster deve considerar o pico esperado de usuários simultâneos.

Kernel padrão (Python 3.12)

Ao iniciar, o pod single-user executa um postStart hook que torna o kernel py312 (Python 3.12, com as bibliotecas Spark/Delta/Iceberg pré-instaladas) o kernel padrão exibido como "Python 3" no notebook — o kernel python3 original é substituído pela cópia do py312. A configuração KernelSpecManager.allowed_kernelspecs restringe a lista de kernels disponíveis ao usuário a esse kernel.

Pré-requisitos

  • Kubernetes 1.32+, Red Hat OpenShift 4.19+ ou Rancher Manager 2.10.x+
  • Helm 3.2.0+
  • Provisionador de PV disponível no cluster
  • Cluster Spark disponível via tdp-spark ou instalação compatível, quando for usar a integração Spark

Páginas relacionadas

Instalação (OCI)

Kubernetes

Terminal input
helm upgrade --install <RELEASE_NAME> \
oci://registry.tecnisys.com.br/tdp/charts/tdp-jupyter \
-n <NAMESPACE> --create-namespace --timeout 10m

Sem um arquivo -f, utilizam-se os valores padrão do chart. Em ambientes reais, versione um arquivo de valores com recursos, storage e tipo de Service alinhados à política do cluster.

OpenShift

O chart detecta automaticamente o ambiente OpenShift por meio da API de descoberta do Kubernetes. Se a detecção automática não for possível (redes restritas, pipelines CI), force o modo OpenShift explicitamente:

Terminal input
helm upgrade --install <RELEASE_NAME> \
oci://registry.tecnisys.com.br/tdp/charts/tdp-jupyter \
-n <NAMESPACE> --create-namespace --timeout 10m \
--set openshift.enabled=true \
--set tdp-jupyter.scheduling.userScheduler.containerSecurityContext.runAsNonRoot=true

Ou use um arquivo overlay values-openshift.yaml:

openshift:
enabled: true

tdp-jupyter:
scheduling:
userScheduler:
containerSecurityContext:
runAsNonRoot: true
OpenShift — o que muda

Quando o modo OpenShift está ativo, o chart aplica automaticamente:

  • Volumes de overlay para /etc/passwd e /etc/group nos pods single-user
  • Init container openshift-passwd-bootstrap para mapear UID/GID
  • Hook pós-install que nulifica runAsUser/runAsGroup no Hub e força runAsNonRoot: true