Skip to content

Laboratorio Final

Introducción

El Laboratorio Final marca la culminación del entrenamiento, brindando una oportunidad para poner en práctica los conocimientos adquiridos. A través de este ejercicio, los participantes se enfrentarán a un entorno de simulación realista que replica los desafíos de la gestión y configuración de clústeres Kubernetes utilizando herramientas modernas como Rancher Manager Server y Rancher Kubernetes Engine 2 (RKE2).


Objetivo

El propósito de este laboratorio es consolidar habilidades clave en la implementación, administración y aseguramiento de aplicaciones en Kubernetes, todo ello bajo un entorno controlado. Además, se reforzarán conceptos fundamentales de seguridad, eficiencia y organización de recursos, aspectos esenciales para operar infraestructuras Kubernetes en producción.

Este ejercicio permitirá no solo aplicar las técnicas aprendidas, sino también fomentar una mentalidad analítica y proactiva para resolver problemas comunes en la administración de plataformas de contenedores. Al completar este laboratorio, los participantes estarán mejor preparados para gestionar entornos Kubernetes complejos en escenarios reales.

Se invita a los participantes a leer cuidadosamente las instrucciones y proceder con precisión en cada paso del laboratorio para asegurar el éxito en su implementación.

A continuación, se presenta un ejercicio final, con el objetivo de reforzar los conocimientos adquiridos durante este entrenamiento.

Considere los siguientes lineamientos para esta implementación:


Instrucciones 📖

  1. Leer detenidamente todos los requerimientos antes de comenzar a ejecutarlos.
  2. Utilizar el mismo ambiente de laboratorio que se entregó para el entrenamiento.
  3. Todas las instrucciones deben ejecutarse desde el servidor Bastión asignado para el laboratorio.
    • Debe crear un estructura de directorios que contenga la configuración de cada cluster configurado.
  4. Utilizar el siguiente diagrama como referencia de la configuración de la conectividad.

Lab Final

Rancher Manager Server 🏭

  1. Instalar Rancher Manager Server en la versión 2.9.1, en un cluster de Kubernetes, modalidad All In One.
  2. El cluster donde se encuentre instalado Rancher Manager Server debe estar configurado con el plugin de red llamado Calico.
  3. Rancher Manager Server debe tener una sola réplica en su implementación.
  4. Este cluster de Kubernetes debe estar instalado en la versión v1.30.6+rke2r1.

Rancher Kubernetes Engine (Downstream Cluster) 🏢

  1. Crear un cluster de Kubernetes con tres servidores, los cuales deben tener todos los roles siguientes:
  2. Control Plane
  3. Etcd
  4. Worker
  5. Utilizar Cilium como plugin de red en este cluster de Kubernetes.
  6. Este cluster de Kubernetes debe estar instalado en la versión v1.30.5+rke2r1.
  7. El cluster de Kubernetes debe ser gestionado por Rancher Manager Server.
  8. El nombre de este cluster de Kubernetes en Rancher Manager Server debe ser lab-final.
  9. El componente cluster Ingress Controller debe estar habilitado y configurado únicamente en los servidores de cluster Node1 y Node2.

Implementación del Aplicativo 💻

  1. Desplegar el aplicativo llamado podinfo, cuyo repositorio en Docker Hub es stefanprodan/podinfo, en un proyecto llamado lab-final dentro de un Namespace con nombre app01 con recursos de cómputo restringidos de la siguiente manera (3 réplicas):
  2. Máximo de CPU: 500m
  3. Máximo de memoria RAM: 512M
  4. Solicitud de CPU: 100m
  5. Solicitud de memoria: 128M
  6. Esta aplicación debe estar expuesta con el nombre lab-app01.apps.*WILDCARDOMAIN* vía HTTPS (no es necesario que cambie el certificado), utilizando el servicio podinfo en el puerto 9898/tcp.

Requerimientos Adicionales de Seguridad 🔒

  1. Opciones Generales para los pods.

    • NoRoot
    • NoPrivilegeEscalation
    • Ejecutar como el UserID 1001
    • DROP ALL capabilities
  2. Realice una copia de seguridad de etcd en 1 nodo de cada cluster y copielo al bastion al usuario student.

  3. Habilite e instale la Extensión de UI de Kubewarden.

    📝 NO DEBE INSTALAR EL COMPONENTE, UNICAMENTE LA EXTENSION.

  4. El Namespace app01 y app02 deben estar etiquetado con: pod-security.kubernetes.io/enforce=restricted para obligar a cumplir esta política de seguridad de PSS.

  5. Realice un Scan de cumplimiento de Benchmark de CIS en el cluster lab-final (rke2-cis-1.8-profile-permissive)

    📝 NO ES NECESARIO QUE PASE LA PRUEBA. UNICAMENTE DOCUMENTE EL RESULTADO.

Reto 🤘 💪

  1. Cree el namespace app03 y evite la ejecución de cargas de trabajo que NO tengan definido recursos de cómmputo. TIP: Utilice Kubewarden.

    • Si despliega Kubewarden por medio de Rancher Server, instale cert-manager en el cluster lab-final por medio de HELM.
  2. Modifique su Downstream Cluster lab-final y haga que cumpla con el *Benchmark de CIS 1.8 RKE2 hardened.

    • Debe realizar todos los cambios necesario al nivel del Sistema Operativo
    • Debe Documentar el resultado de la prueba exitosa.
  3. Despliegue el componente de Monitoring.

    • NO ES NECESARIO HABILITAR VOLUMENES PERSISTENTES

Capturas de pantalla de Referencia

Listado de Clusters:

Listado de Cluster

Cluster local (aio) - Single Node:

Local

Downstream Cluster (lab-final) - 3 Node Cluster:

lab-final

Proyecto Cluster (lab-final):

lab-final

Ingress Controller (node01 / node02):

lab-final

Aplicación (pod-info):

podinfo replicas app

Rancher UI:

ui1 ui2

CIS Benchmark:

cis pass

Bastion:

terminal