Este guia descreve como implantar e executar a API de Ingestão de Dados em um cluster Kubernetes gerenciado pelo MicroK8s. A solução permite a ingestão dinâmica de dados de um arquivo CSV em um banco de dados relacional e fornece endpoints para configurar a ingestão e ler os dados.
- MicroK8s instalado em sua máquina local. Você pode seguir as instruções de instalação em https://microk8s.io/docs.
-
Certifique-se de que o MicroK8s esteja em execução. Você pode iniciar o MicroK8s com o seguinte comando:
microk8s start microk8s enable ingress
-
Crie um banco de dados PostgreSQL no MicroK8s.
microk8s.kubectl create configmap api-config --from-file=app.py microk8s.kubectl create -f api-config.yaml
-
Implante o PostgreSQL no MicroK8s.
microk8s.kubectl apply -f postgres-deployment.yaml
-
Teste a conexão com o PostgreSQL.
microk8s.kubectl get svc postgres-service
-
Use o psql para se conectar ao banco de dados.
psql -h SEU_IP_DO_SERVICO -p 5432 -U cs3neuro -d previsao_tempo_amazonia
-
Clone este repositório em sua máquina local:
git clone https://github.com/jluizgomes/cs3_comp_neuromorfica_fiap2023.git cd cs3_comp_neuromorfica_fiap2023
-
Construa a imagem Docker da aplicação:
docker build -t previsao_tempo_amazonia:v1 .
-
Crie a imagem .tar do Docker
docker save previsao_tempo_amazonia > previsao_tempo_amazonia.tar
-
Carregue a imagem para o registro local do MicroK8s:
microk8s ctr images import previsao_tempo_amazonia.tar
-
Implante a aplicação no cluster Kubernetes:
microk8s.kubectl apply -f api-deployment.yaml
-
Exponha a API usando NodePort:
microk8s.kubectl apply -f api-service.yaml
-
Verifique se a aplicação está em execução:
microk8s.kubectl get pods
-
Obtenha o endereço IP e a porta do serviço NodePort:
microk8s.kubectl get svc previsao-tempo-amazonia-api-service
Agora, a API de Ingestão de Dados está implantada e exposta no MicroK8s. Você pode acessar a API usando o endereço IP e a porta fornecidos.
POST /configurations
: Configure a ingestão dinâmica de dados.POST /read
: Leia os dados do arquivo CSV e insira-os no banco de dados.
Para encerrar a aplicação e liberar os recursos do MicroK8s, você pode excluir os recursos implantados:
microk8s.kubectl delete -f api-service.yaml
microk8s.kubectl delete -f api-deployment.yaml
microk8s.kubectl delete configmap api-config
Para encerrar o MicroK8s, execute o seguinte comando:
microk8s stop
https://data.amerigeoss.org/dataset/previsao-climatica-do-censipam/resource/175fd55b-3bb8-4472-8c19-0de0e868dd7f
eyJhbGciOiJSUzI1NiIsImtpZCI6IlA4VWo1LTgtcVZZX3RfNU14bVMwQ1dSc1dJaDJLN0cycV9nWkNiNUdmQmcifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJtaWNyb2s4cy1kYXNoYm9hcmQtdG9rZW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGVmYXVsdCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjdkYWI3ZTY2LTNmZDUtNGY3Yy1hMWMzLWViMWVlMjc4NDZmOCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTpkZWZhdWx0In0.G9TWIXuYpUacwlCgwet1KtTDL4ZXlC-KVY8-212WpRlIT8sLBQjLuDiXwWYocpz8WqG5nR26Am-65OxazDksqijArVV4R_wd-4jEG7p-3YjlBbj5Mt0NKyoSo2YUx4OUd-Sq1MIUtDc4FkF4ZxM4_KHjQ032BrAeIIixZai4kOjxBi3me-E4g74ER9zH27ucmiw84555LjH9zUZzWkq8wWh3LCPvtJA4dQ8FSDo468LZdmG1lfx6tSB-gf3zfIxqGxm89YjprIlgtEWjg3W-9HRPPJtiArq7r2x7vCSoLOOwF4M6fxJ8DeziPrtD4kxdMS0GRjnz9Mzy0u1DioRUXA