Estudo de caso de um ambiente Kubernetes na Google Cloud, com Cloud Storage (bucket), como parte do Módulo 4 do curso de MBA em Engenharia de Dados - IGTI - Bootcamp Engenheiro de dados Cloud, usando as seguites ferramentas/tecnologias:
- Docker Desktop
- Google SDK Client
- GCP Kubernetes Engine (pod, job, deployment e service)
- GCP Cloud Storage
- Python
- Helm Chart for Apache Airflow
- Kubectx
- Chocolatey
- Kubectl
- Visual Studio Code
- Terraform
Cria o Cluster do Kubernetes no GCP via CLI:
gcloud container clusters create airflow-cluster --machine-type e2-medium --num-nodes 1 --region "us-east1"
Autoriza conexão através do Kubectl:
gcloud container clusters get-credentials airflow-cluster --region "us-east1"
Cria a namespace airflow:
kubectl create namespace airflow
Configura o repo oficial do Helm Chart do Apache AirFlow:
helm repo add apache-airflow https://airflow.apache.org
Visualiza os dados do repo:
helm repo list
Atualiza o repo:
helm repo update
Efetua a instalação do pacote padrão (helm chart) do Apache AirFlow no Kubernetes:
helm upgrade --install airflow apache-airflow/airflow -n airflow --debug
Permite acesso da console web atraves pelo localhost:
kubectl port-forward svc/airflow-webserver 8080:8080 -n airflow
Cria um arquivo yaml para que seja possivel customizar o chart do AirFlow:
helm show values apache-airflow/airflow > airflow/my_values.yaml
Atualiza a instalação com as alterações realizadas no arquivo my_values.yaml:
helm upgrade --install airflow apache-airflow/airflow -n airflow -f airflow/my_values.yaml --debug
Apaga o cluster de Kubernetes no GCP:
gcloud container clusters delete airflow-cluster --region "us-east1"