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 ficheiros e exploram dados directamente no browser.

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

Para saber mais

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

Estrutura de valores (Helm)

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

BlocoFinalidade
tdp-jupyter:Configuração do JupyterHub: Hub, Proxy, pods single-user, autenticação, armazenamento e segurança
tdpSparkIntegration:Integração com Spark: modo local ou cluster externo, ConfigMap e subchart opcional
TDP-Settings:Configurações TDP: base de dados externa e controlo 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
Base de dados de metadadosSQLite por omissã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 pela autenticação e gestão dos ambientes
ProxyProxy reverso que encaminha cada utilizador para o seu ambiente
Single-user podsUm pod Kubernetes por utilizador autenticado
PVCsArmazenamento persistente para os notebooks, quando configurado

Modelo single-user

Cada vez que um utilizador inicia sessão, o Hub cria um pod dedicado no Kubernetes. Quando o utilizador para o servidor, o pod é terminado, mas o armazenamento pode persistir se estiver associado a um PVC.

O dimensionamento do cluster deve considerar o pico esperado de utilizadores 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 utilizador 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 ficheiro -f, são usados os valores padrão do chart. Em ambientes de produção, versione um ficheiro de valores com recursos, armazenamento e tipo de Service alinhados à política do cluster.

OpenShift

O chart detecta automaticamente o ambiente OpenShift através 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 ficheiro overlay values-openshift.yaml:

openshift:
enabled: true

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

Quando o modo OpenShift está activo, 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-instalação que nulifica runAsUser/runAsGroup no Hub e força runAsNonRoot: true