kube-exam/README.md

4.1 KiB

Uso de run.sh

El script run.sh automatiza el proceso de implementación para un entorno de k8s utilizando minikube. Incluye la construcción de imágenes docker, la personalización de versiones de postgres, la habilitación de SSL y la configuración de réplicas para la API.

Requisitos

Uso

./run.sh -i  # Modo interactivo
./run.sh -p <version> -s <Y|N> -r <number>  # Modo no interactivo
./run.sh -p <version> -s <Y|N> -r <number> -f  # Modo no interactivo con Fluentd habilitado

Opciones de línea de comandos

  • -i: Modo interactivo
  • -p : Especificar la versión de postgres
  • -s <Y|N>: Habilitar o deshabilitar SSL (Y para sí, N para no)
  • -r : Especificar el número de réplicas para la API
  • -f: Habilitar fluentd para la agregación de registros
  • -u: Desinstalar el chart
  • -d: Agrega datos básicos a la DB

Funcionalidad del script

  1. Verificación del estado de minikube:

    El script verifica si minikube ya está en ejecución y lo inicia si no lo está.

  2. Versión de postgres y construcción:

    Solicita al usuario la versión de postgres, construye imágenes docker y actualiza la versión en el archivo de valores de helm.

  3. Configuración de TLS:

    Pregunta al usuario si desea habilitar TLS y actualiza el archivo de valores de helm en consecuencia.

  4. Configuración de réplicas para la API:

    Solicita al usuario el número de réplicas para la API y actualiza el archivo de valores de helm.

  5. Configuración de Ingress:

    Habilita extensión ingress si minikube está en ejecución.

  6. Configuración de fluentd (opcional):

    Se consulta al usuario si desea habilitar fluentd para la agregación de registros. Puede activarse o desactivarse directamente en el archivo values.yaml. Es importante destacar que, con el objetivo de mantener la simplicidad y evitar el "bloat" de values.yaml, se proporciona un archivo adicional llamado fluentd.yaml. Este archivo debe pasarse como parámetro -f a helm para configurar fluentd con los parámetros necesarios. Cabe señalar que esto es opcional, ya que Fluentd puede funcionar sin estas configuraciones, pero se recomienda su uso debido a que realiza algunas condiciones de contenedores de inicio para esperar el servicio de fluentd y para recopilar solo los registros de los contenedores exam-* (y no todos los registros de k8s).

    Se utiliza la siguiente instrucción al instalar o actualizar helm:

    helm install exam ./helm -n exam -f helm/values.yaml -f helm/fluentd.yaml
    

    Para ver los registros de los contenedores exam-*, podés usar:

    kubectl logs -n exam exam-fluentd-0
    

    Para realizar la configuración y el envío a un backend de registros como elasticsearch, podés editar fluentd.yaml según tus necesidades.

  7. Implementación de helm:

    Verifica la existencia de un release de helm llamado "exam" y lo actualiza o instala según sea necesario.

  8. Configuración de Secrets (opcional):

    Para no mantener los secretos en el SVC (si se utiliza uno), se pueden pasar a helm mediante un archivo secrets.yaml con la opción -f. Si existe ./helm/secrets.yaml (en la carpeta ./helm, es decir en la misma ubicación que values.yaml), se utilizarán estos valores; de lo contrario, se utilizarán los definidos en values.yaml. Estos valores sobrescribirán los existentes.

    Cabe destacar que al crear ./helm/secrets.yaml, el script run.sh lo detectará automáticamente y lo utilizará al ejecutar helm. Por lo tanto, no es necesario realizar acciones adicionales, ya que el script gestionará la detección y el paso de este archivo a helm.

Uso

./build.sh -d <dominio> -b -v <versión>

Opciones

  • -b: Construye las imágenes de docker.
  • -v <version>: Especifica la versión de postgreSQL.

Ejemplo

./build.sh -d ejemplo.com -b -v 13.3