Saltar para o conteúdo principal

TDP Kubernetes

Pré-Requisitos
  • Cluster Kubernetes 1.32+
  • kubectl instalado e configurado
  • Helm 3.2.0+
  • Acesso ao registry OCI da Tecnisys (registry.tecnisys.com.br)
  • Recursos mínimos recomendados no cluster:
    • CPU: 16 vCPUs disponíveis
    • Memória RAM: 32 GB disponíveis
    • Armazenamento persistente: 200 GB disponíveis

O que é o TDP Kubernetes?​

O TDP Kubernetes é a edição cloud-native da plataforma TDP, projetada para execução em clusters Kubernetes. Esta edição utiliza contentores e orquestração para fornecer:

  • Escalabilidade horizontal automática de componentes.
  • Alta disponibilidade com failover automático.
  • Implantação declarativa via Helm Charts ou ArgoCD.
  • Isolamento de recursos e gestão eficiente.

Esta solução é ideal para equipas que procuram uma plataforma de dados moderna, escalável e baseada em práticas DevOps e GitOps.

Este guia irá auxiliá-lo na implantação, configuração e acesso ao TDP Kubernetes num cluster Kubernetes.

1. Preparação do Ambiente​

Antes de iniciar a instalação, certifique-se de que o cluster Kubernetes está configurado e acessível.

1.1. Verificar acesso ao cluster​

Execute o comando abaixo para validar o acesso ao cluster Kubernetes:

Terminal input
kubectl cluster-info

A saída deve exibir informações sobre o cluster, incluindo o endereço do servidor API.

1.2. Criar namespace para o TDP​

Crie um namespace dedicado para os componentes do TDP. O nome é livre — nos exemplos desta documentação utilizamos tdp-project, mas pode escolher qualquer nome adequado ao seu ambiente, como tdp-financeiro, tdp-rh ou data-platform.

Terminal input
kubectl create namespace tdp-project
nota

Sempre que tdp-project aparecer nos exemplos desta documentação, substitua pelo nome do namespace do seu ambiente.

1.3. Configurar acesso ao registry OCI​

Os Helm Charts do TDP Kubernetes estão hospedados no registry OCI da Tecnisys. Configure o acesso com as suas credenciais:

Terminal input
helm registry login registry.tecnisys.com.br \
--username <username> \
--password <password>
nota

Substitua <username> e <password> pelas credenciais fornecidas pela Tecnisys.

2. Instalação via Helm Charts​

O Helm é o método recomendado para instalação de componentes individuais do TDP Kubernetes.

2.1. Adicionar o repositório Helm (se aplicável)​

Caso o registry utilize repositório Helm tradicional, adicione-o:

Terminal input
helm repo add tecnisys https://registry.tecnisys.com.br/helm
helm repo update

2.2. Instalar componentes do TDP​

Cada componente do TDP possui o seu próprio Helm Chart.

Instalação ilustrativa do Apache Kafka (substitua <RELEASE_NAME> pelo nome do release Helm e <NAMESPACE> pelo namespace de destino):

Terminal input
helm install <RELEASE_NAME> oci://registry.tecnisys.com.br/tdp/charts/tdp-kafka \
--namespace <NAMESPACE> \
--version <CHART_VERSION> \
--create-namespace \
-f <VALUES_FILE>
Exemplo
Exemplo
helm install tdp-kafka oci://registry.tecnisys.com.br/tdp/charts/tdp-kafka \
--namespace tdp-project \
--version 3.0.1 \
--create-namespace \
-f values-kafka.yaml

2.3. Personalizar a instalação​

Pode personalizar a instalação criando um ficheiro values.yaml:

values.yaml
kafka:
replicas: 3
resources:
requests:
memory: "4Gi"
cpu: "2"
limits:
memory: "8Gi"
cpu: "4"
persistence:
enabled: true
size: 100Gi

Aplique a configuração durante a instalação:

Terminal input
helm install <RELEASE_NAME> oci://registry.tecnisys.com.br/tdp/charts/tdp-kafka \
--namespace <NAMESPACE> \
--version <CHART_VERSION> \
-f <VALUES_FILE>
Exemplo
Exemplo
helm install tdp-kafka oci://registry.tecnisys.com.br/tdp/charts/tdp-kafka \
--namespace tdp-project \
--version 3.0.1 \
-f values.yaml

2.4. Verificar a instalação​

Liste os recursos criados no namespace:

Terminal input
kubectl get all -n <NAMESPACE>

Verifique o estado dos Pods:

Terminal input
kubectl get pods -n <NAMESPACE>

Todos os Pods devem estar com estado Running após alguns minutos.

3. Instalação via ArgoCD (GitOps)​

O ArgoCD permite gerir a implantação dos componentes de forma declarativa via Git.

3.1. Instalar o ArgoCD​

Se o ArgoCD ainda não estiver instalado no cluster, instale-o com os comandos:

Terminal input
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

3.2. Aceder à interface do ArgoCD​

Exponha o serviço do ArgoCD:

Terminal input
kubectl port-forward svc/argocd-server -n argocd 8080:443

Aceda à interface em https://localhost:8080.

A palavra-passe inicial do usuário admin pode ser obtida com:

Terminal input
kubectl get secret argocd-initial-admin-secret -n argocd \
-o jsonpath="{.data.password}" | base64 -d

3.3. Criar Application no ArgoCD​

Crie um ficheiro YAML descrevendo a aplicação TDP, conforme exemplo:

tdp-application.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: tdp-kafka
namespace: argocd
spec:
project: default
source:
repoURL: oci://registry.tecnisys.com.br/helm
targetRevision: 3.0.0
chart: tdp-kafka
destination:
server: https://kubernetes.default.svc
namespace: tdp-project
syncPolicy:
automated:
prune: true
selfHeal: true

Aplique a configuração:

Terminal input
kubectl apply -f tdp-application.yaml

O ArgoCD sincronizará automaticamente o estado desejado com o cluster.

4. Acesso aos Componentes​

Após a instalação, os componentes podem ser acedidos via Services do Kubernetes.

4.1. Listar Services disponíveis​

Terminal input
kubectl get services -n <NAMESPACE>

4.2. Aceder a interfaces web via Port Forwarding​

Exemplo para aceder ao Kafka UI:

Terminal input
kubectl port-forward svc/tdp-kafka-ui -n <NAMESPACE> 8080:80

Aceda à interface em http://localhost:8080.

4.3. Configurar Ingress (opcional)​

Para acesso externo permanente, configure um Ingress Controller (como NGINX Ingress).

Manifesto genérico (substitua <NAMESPACE>, <INGRESS_NAME> e <KAFKA_UI_HOSTNAME>):

ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: <INGRESS_NAME>
namespace: <NAMESPACE>
spec:
rules:
- host: <KAFKA_UI_HOSTNAME>
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kafka-ui
port:
number: 80
Exemplo

Valores ilustrativos:

Exemplo
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kafka-ui-ingress
namespace: tdp-project
spec:
rules:
- host: kafka-ui.tdp.local
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: tdp-kafka-ui
port:
number: 80

Aplique o Ingress:

Terminal input
kubectl apply -f <ingress-manifest>
Exemplo
Exemplo
kubectl apply -f kafka-ui-ingress.yaml

Configure a resolução de DNS local (/etc/hosts no Linux ou C:\Windows\System32\drivers\etc\hosts no Windows):

<INGRESS_IP>   <hostname>
Exemplo
192.168.1.50   kafka-ui.tdp.local

5. Principais Componentes do TDP Kubernetes​

O TDP Kubernetes é composto por diversos componentes organizados em camadas:

ComponenteDescriçãoHelm Chart
Apache KafkaStreaming de eventostdp-kafka
Apache NiFiOrquestração de fluxos de dadostdp-nifi
TrinoMotor de consultas SQL distribuídastdp-trino
Apache AirflowOrquestração de workflowstdp-airflow
Apache SupersetVisualização e BItdp-superset
PostgreSQLBase de dados relacionaltdp-postgresql
ClickHouseBase de dados OLAPtdp-clickhouse

Para instalar múltiplos componentes, repita os passos de instalação via Helm ou ArgoCD para cada chart.

6. Resolução de Problemas​

6.1. Pods não inicializam​

Verifique os logs do Pod com problemas:

Terminal input
kubectl logs <pod-name> -n <NAMESPACE>

Verifique eventos do namespace:

Terminal input
kubectl get events -n <NAMESPACE> --sort-by='.lastTimestamp'

6.2. Problemas de autenticação no registry​

Recrie o secret de autenticação:

Terminal input
kubectl delete secret regcred -n <NAMESPACE>
kubectl create secret docker-registry regcred \
--docker-server=registry.tecnisys.com.br \
--docker-username=<username> \
--docker-password=<password> \
-n <NAMESPACE>

6.3. Recursos insuficientes​

Verifique o consumo de recursos no cluster:

Terminal input
kubectl top nodes
kubectl top pods -n <NAMESPACE>

Ajuste os limites de recursos no ficheiro values.yaml e execute um upgrade:

Terminal input
helm upgrade tdp-kafka oci://registry.tecnisys.com.br/tdp/charts/tdp-kafka \
--namespace <NAMESPACE> \
--values values.yaml

Próximos Passos​

Após concluir a instalação do TDP Kubernetes, consulte a documentação completa para:

  • Configuração avançada de componentes
  • Integração com ferramentas de monitorização (Prometheus, Grafana)
  • Backup e recuperação de dados
  • Atualizações de versões dos componentes
  • Segurança e controlo de acesso (RBAC, Network Policies)

Para mais informações sobre os conceitos e arquitetura do TDP Kubernetes, consulte a secção de Conceitos na documentação.