Saltar para o conteúdo principal

TDP Kubernetes

Pré-Requisitos
  • Cluster Kubernetes: versão 1.27 ou superior
  • kubectl instalado e configurado
  • Helm: versão 3.2.0 ou superior
  • 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

O TDP Kubernetes utiliza o namespace tdp-project como padrão. Crie o namespace com o comando:

Terminal input
kubectl create namespace tdp-project

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 <seu-utilizador> \
--password <sua-senha>
nota

Substitua <seu-utilizador> e <sua-senha> 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. Exemplo de instalação do Apache Kafka:

Terminal input
helm install tdp-kafka oci://registry.tecnisys.com.br/helm/tdp-kafka \
--namespace tdp-project \
--version 3.0.0 \
--create-namespace

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 tdp-kafka oci://registry.tecnisys.com.br/helm/tdp-kafka \
--namespace tdp-project \
--values 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 senha inicial do utilizador 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:

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):

kafka-ui-ingress.yaml
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 kafka-ui-ingress.yaml

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

<IP-DO-CLUSTER> 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 <nome-do-pod> -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=<seu-utilizador> \
--docker-password=<sua-senha> \
-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/helm/tdp-kafka \
--namespace tdp-project \
--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.