Commit 4070e361 authored by Cristian Aguirre's avatar Cristian Aguirre

Update 26-06-23. Update README

parent 37a85a5c
...@@ -35,7 +35,7 @@ docker push <nombrecuenta>/<repositorio>:<tag> ...@@ -35,7 +35,7 @@ docker push <nombrecuenta>/<repositorio>:<tag>
3.- Con la imagen ya subida a un repositorio, colocamos este nombre en el archivo 3.- Con la imagen ya subida a un repositorio, colocamos este nombre en el archivo
**airflow-envvars-configmap.yaml**, además que aprovechamos en actualizar y validar **airflow-envvars-configmap.yaml**, además que aprovechamos en actualizar y validar
todas las configuraciones presentes en dicho archivo y también en nuestro todas las configuraciones presentes y también en nuestro
archivo de Secrets **airflow-secrets.yaml** archivo de Secrets **airflow-secrets.yaml**
```text ```text
...@@ -75,13 +75,56 @@ Adicionalmente, validar o actualizar los valores del archivo **airflow-secrets.y ...@@ -75,13 +75,56 @@ Adicionalmente, validar o actualizar los valores del archivo **airflow-secrets.y
tiene encriptación con método **"base64"** - tipo de Secret **Opaque**) tiene encriptación con método **"base64"** - tipo de Secret **Opaque**)
```text ```text
AWS_ACCESS_KEY: bWluaW9hZG1pbg== # ACCESS_KEY de AWS si en caso se usa bucket S3 para guardar los DAG's AWS_ACCESS_KEY: bWluaW9hZG1pbg== # ACCESS_KEY de AWS si en caso se usa bucket S3 para guardar los DAG's
AWS_SECRET_KEY: bWluaW9hZG1pbg== # SECRET_KEY de AWS si en caso se usa bucket S3 para guardar los DAG's AWS_SECRET_KEY: bWluaW9hZG1pbg== # SECRET_KEY de AWS si en caso se usa bucket S3 para guardar los DAG's
MINIO_USER: bWluaW9hZG1pbg== # Usuario de Minio para conectarse al bucket del Minio Server MINIO_USER: bWluaW9hZG1pbg== # Usuario de Minio para conectarse al bucket del Minio Server
MINIO_PASSWORD: bWluaW9hZG1pbg== # Contraseña de Minio para conectarse al bucket del Minio Server MINIO_PASSWORD: bWluaW9hZG1pbg== # Contraseña de Minio para conectarse al bucket del Minio Server
``` ```
4.- Ejecutar el script **script_apply.sh** para crear todos los configsMaps, volúmenes, secrets, deployments 4.- **Como nuestro despliegue hace uso de NFS como sistema de persistencia de datos, tanto para la BD de Postgres,
logs de Airflow y dags desarrollados**, entonces se tiene que configurar los servidores NFS usados.
Para eso modificamos y/o validamos el archivo **airflow-volumes.yaml** (sección de _PersistentVolume_) para corrobar los hosts y paths de los
volúmenes. Por ejemplo, parte del template donde está el volúmen para los dags desarrollados es el siguiente:
```yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: airflow-dags-pv
namespace: bcom-airflow
spec:
capacity:
storage: 300Mi # Espacio solicitado para el storage de los dags
accessModes:
- ReadWriteMany
storageClassName: airflow-dags
nfs:
server: 192.168.1.11 # Host del servidor NFS a usar
path: "/mnt/nfs_share" # Path dentro del servidor NFS dedicado a almacenar los DAG's desarrollados
```
Luego de configurar la ruta del host y path del servidor NFS a usar para cada requisito, se modifica y/o valida
cuánto storage del volumen se va a usar para tal propósito. Por ejemplo para los dags desarrollados, vamos a
indicar que de los 300Mi, vamos a utilizar 200Mi. Esto también dentro del archivo airflow-volumes.yaml, pero en la
sección de PersistentVolumeClaim (este uso de volumen se enlaza con el volumen creado antes por medio del
_storageClassName_):
```yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: airflow-dags-pvc
namespace: bcom-airflow
spec:
accessModes:
- ReadWriteMany
storageClassName: airflow-dags
resources:
requests:
storage: 200Mi # Se solicita un uso de 200Mi para el volumen de tipo airflow-dags
```
5.- Ejecutar el script **script_apply.sh** para crear todos los configsMaps, volúmenes, secrets, deployments
y servicios para correr Airflow. y servicios para correr Airflow.
⚠️ _Nota_: Verifique si usará la sincronización de la carpeta **dags** con un bucket en Minio o en S3. ⚠️ _Nota_: Verifique si usará la sincronización de la carpeta **dags** con un bucket en Minio o en S3.
...@@ -95,7 +138,7 @@ Con este comando, tiene que esperar unos minutos para que todos los recursos est ...@@ -95,7 +138,7 @@ Con este comando, tiene que esperar unos minutos para que todos los recursos est
normalmente. Todos los recursos serán creados en el namespace **bcom-airflow** (configurado en los normalmente. Todos los recursos serán creados en el namespace **bcom-airflow** (configurado en los
templates) templates)
5.- (OPCIONAL) Si en caso a deployado usando Minikube, será necesario exponer el puerto del Airflow Webserver 6.- (OPCIONAL) Si en caso a deployado usando Minikube, será necesario exponer el puerto del Airflow Webserver
para que desde su local puede ingresar a la web. La forma más simple es exponiendo directamente el puerto del para que desde su local puede ingresar a la web. La forma más simple es exponiendo directamente el puerto del
servicio del clúster a nuestro localhost con la ayuda de _kubectl_. Ejecutamos el siguiente comando: servicio del clúster a nuestro localhost con la ayuda de _kubectl_. Ejecutamos el siguiente comando:
...@@ -105,7 +148,7 @@ kubectl port-forward <ID-POD-AIRFLOW-WEBSERVER> 8081:8080 -n bcom-airflow ...@@ -105,7 +148,7 @@ kubectl port-forward <ID-POD-AIRFLOW-WEBSERVER> 8081:8080 -n bcom-airflow
Ahora desde su navegador puede ingresar la ruta http://localhost:8081 para ver la Web de Airflow Ahora desde su navegador puede ingresar la ruta http://localhost:8081 para ver la Web de Airflow
6.- Validamos que nuestros POD's están corriendo en estado "Running" con el siguiente comando: 7.- Validamos que nuestros POD's están corriendo en estado "Running" con el siguiente comando:
```shell ```shell
kubectl get pods -n bcom-airflow kubectl get pods -n bcom-airflow
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment