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