Proyecto final: Implementación de sitios web en Kubernetes#


Objetivos#

  • Crear imagenes de contenedores con Docker
  • Instalar un cluster de Kubernetes
  • Instalar un ingress controller en el cluster de Kubernetes
  • Despliegue de sitios web en Kubernetes
  • Configuración del certificado SSL en el ingress controller

Elementos de apoyo#

Material Escrito#
Videos#

Restricciones#

  • La evaluación de este proyecto final corresponderá al último examen parcial del curso
  • La fecha límite de entrega es el domingo 19 de junio de 2022 a las 23:59 horas
  • Esta actividad debe ser entregada en equipo de acuerdo al flujo de trabajo para la entrega de tareas y prácticas
    • Utilizar la carpeta docs/proyectos/proyecto-final/Equipo-ABCD-EFGH-IJKL-MNOP para entregar la práctica
      • Donde Equipo-ABCD-EFGH-IJKL-MNOP representa el nombre del equipo que debió anotarse previamente en la lista del grupo
    • Hacer un merge request a la rama proyecto-final del repositorio de tareas para entregar la actividad

Danger


Procedimiento#


Entregables#

  • Archivo README.md

    • Explicación del proceso de creación de las imagenes de contenedor
    • Explicación del proceso de instalación de k3s en Debian 11
    • Explicación del proceso de instalación del ingress controller en el cluster
    • Explicación del proceso de despliegue de los sitios web en el cluster de Kubernetes
    • Explicación de la configuración de SSL/TLS en el ingress controller
  • Carpeta img

    • Cada captura de pantalla tiene que ser referenciada en el archivo README.md
    • Capturas de pantalla donde se muestre la instalación de Docker Desktop
    • Capturas de pantalla de los sitios web hospedados utilizando HTTP y HTTPS
  • Carpeta files

    • Cada archivo tiene que ser referenciado en el archivo README.md

    • Archivos de configuración

      • Incluir en un archivo tar.gz el contenido del directorio /etc/letsencrypt
      • Incluir en un archivo tar.gz el contenido del directorio /etc/rancher
    • Archivos de bitácora

      • Preparación de la máqina virtual de Azure (reducción de uso de CPU y RAM)
      • Instalación de k3s en Debian 11
      • Instalación de kubectl y krew en el equipo local
      • Instalación de krew en el equipo remoto
      • Bitácora de conexión a los puertos 80 y 443 del cluster de Kubernetes
      • Bitácora de conexión al puerto 443 utilizando openssl s_client
      • Bitácora de comprobación de la validez del certificado SSL emitido por Let's Encrypt
      • Bitácira de conexión a los sitios web hospedados utilizando HTTP y HTTPS
    • Archivos de datos

      • Archivos Dockerfile para los contenedores linux-doc y tareas-redes
      • Incluir en un archivo tar.gz el contenido del directorio /var/www/html de la máquina virual de Azure
      • Archivo cert.txt que es la representación en texto del certificado SSL emitido por Let's Encrypt
    • Recursos de Kubernetes

      • Exporta los recursos del cluster de Kubernetes utilizando kubectl
      • Quita los campos innecesarios utilizando el siguiente comando
        • kubectl neat < archivo.yaml > archivo.neat.yaml
        • Anexa el archivo original (archivo.yaml) y el archivo sin campos extra (archivo.neat.yaml) a tu reporte
        • Repite para todos los recursos de Kubernetes solicitados
      • Explica cuales campos no necesarios se quitan en los recursos de tipo deployment, configmap, secret e ingress
        • Puedes utilizar el comando diff -u archivo.yaml archivo.neat.yaml para ver las diferencias
usuario@laptop ~ % kubectl get all --all-namespaces > recursos-kubernetes.log

usuario@laptop ~ % kubectl get all --all-namespaces -o yaml > recursos-kubernetes.yaml

usuario@laptop ~ % kubectl get nodes -o yaml

usuario@laptop ~ % kubectl get configmap index-equipo-aaaa-bbbb-cccc-dddd -n default -o yaml

usuario@laptop ~ % kubectl get deployment/root-nginx -n default -o yaml

usuario@laptop ~ % kubectl get deployment/linux-doc -n default -o yaml

usuario@laptop ~ % kubectl get deployment/tareas-redes -n default -o yaml

usuario@laptop ~ % kubectl get secret/nginx-ingress-tls -n default -o yaml

usuario@laptop ~ % kubectl get ingress ingress-nginx -n default -o yaml

usuario@laptop ~ % kubectl get deployment/ingress-nginx-controller -n ingress-nginx -o yaml

Página anterior Arriba Página siguiente