Ingress - ClickHouse
A exposicao do ClickHouse via Ingress permite o acesso a Play UI e ao Dashboard 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: clickhouse.tdp.local
paths:
- path: /
pathType: Prefix
tls: []
Substitua <ingress-class> pelo nome do Ingress Controller do ambiente (verifique com kubectl get ingressclass).
Acesso
- 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}' - Adicione o hostname no DNS ou no ficheiro
/etc/hosts:<INGRESS_IP> clickhouse.tdp.local - Aceda a:
- Play UI:
http://clickhouse.tdp.local/play - Dashboard:
http://clickhouse.tdp.local/dashboard - Utilize
https://se o TLS estiver configurado.
- Play UI:
Resolucao de Problemas
| Problema | Causa | Solucao |
|---|---|---|
| Ingress nao criado | TDPConfiguration.gateway.ingress.enabled: false ou ingressClassName incorreto | Verificar ambas as configuracoes |
| Host nao resolve | DNS ou /etc/hosts nao configurado | Corrigir a resolucao de nomes no cliente |
| 502 Bad Gateway | Pod do ClickHouse nao esta pronto | Verificar kubectl get pods -n <namespace> |