Saltar para o conteúdo principal
Versão 3.0.0

Ingress - JupyterHub

A exposicao do JupyterHub via Ingress permite o acesso a interface web atraves de um hostname dedicado.

Ingress vs Gateway API

TDPConfiguration.gateway.ingress e TDPConfiguration.gateway.gatewayApi sao mutuamente exclusivos. Ative apenas um deles.

Pre-requisitos

  • Ingress Controller instalado no cluster (ex.: NGINX).
  • Hostname configurado no DNS ou em /etc/hosts.
  • O TLS e opcional.

Exemplo de configuracao

TDPConfiguration:
gateway:
ingress:
enabled: true

ingress:
ingressClassName: <ingress-class>
hosts:
- host: jupyter.tdp.local
paths:
- path: /
pathType: Prefix
tls: []

Substitua <ingress-class> pelo nome do Ingress Controller do ambiente (verifique com kubectl get ingressclass).

Acesso

  1. Obtenha o IP externo do Ingress Controller:
    Terminal input
    kubectl get svc -A -l app.kubernetes.io/name=ingress-nginx \
    -o jsonpath='{.items[0].status.loadBalancer.ingress[0].ip}'
  2. Adicione o hostname no DNS ou no ficheiro /etc/hosts:
    <INGRESS_IP>   jupyter.tdp.local
  3. Aceda a http://jupyter.tdp.local (ou https:// se o TLS estiver configurado).

Resolucao de Problemas

ProblemaCausaSolucao
Ingress nao criadoTDPConfiguration.gateway.ingress.enabled: false ou ingressClassName incorretoVerificar ambas as configuracoes
Host nao resolveDNS ou /etc/hosts nao configuradoCorrigir a resolucao de nomes no cliente
502 Bad GatewayPod do JupyterHub nao esta prontoVerificar kubectl get pods -n <namespace>