Para poder realizar los laboratorios es necesario clonar el repo desde GitHub.Para ello realizamos abrimos una consola de comandos e instalamos git en la máquina virtual.
sudo apt-get -y update
sudo apt-get -y install git
Ahora clonamos el repositorio con los laboratorios del curso.
cd ~
git clone https://github.com/antsala/k8s_desarrolladores.git
cd ~/k8s_desarrolladores
Instalamos Visual Studio Code (Si lo prefieres instala tu editor preferido)
sudo snap install code --classic
El repositorio GIT está organizado en una serie de carpetas. Las presentaciones de PowerPoint irán indicando en cada momento el laboratorio a realizar. No obstante, te presento la lista de actividades que se realizarán en el curso, y la carpeta en la que se ubica.
- Laboratorio 00: Herramientas de administración en Azure. Los ejercicios a realizar son:
- Instalación de Azure CLI.
- Creación de AKS desde Azure CLI.
- Eliminación de AKS desde Azure CLI.
- Laboratorio 01: Herramientas de administración en AWS. Ejercicios:
- Instalación de AWS CLI.
- Configuración de la credencial AWS para la CLI.
- Instalación y configuración de eksctl.
- Creación de EKS desde AWS CLI.
- Eliminación de EKS desde AWS CLI.
-
Laboratorio 03-A: Creación de contenedores con Docker. Ejercicios:
- Instalación de Docker.
- Primeros contenedores con Docker.
- Imágenes con Docker.
-
Laboratorio 03-B: Construir imágenes desde Dockerfile. Ejercicios:
- Creación de imagen desde Dockerfile.
- Publicación de puertos en el host.
- ENTRYPOINT en Dockerfile.
- ENTRYPOINT y CMD en Dockerfile.
-
Laboratorio 03-C: Volúmenes. Ejercicios:
- Publicar aplicación en el contenedor.
-
Laboratorio 03-D: Frontend-Backend. Ejercicios:
- Creación del Frontend.
- Creación del Backend.
- Creación de una red.
- Recreación del Backend conectado a la nueva red.
- Despliegue de la versión de Frontend que conecta con Backend.
-
Laboratorio 03-E: Micro servicios. Ejercicios:
- Instalación de Go.
- Compilar una app en Go.
- Contenerizar la app Go.
- Desplegar servicio en Swarm.
- Frontend y Backend por medio de archivo YAML.
-
Laboratorio 06-A: Instalar Podman. Ejercicios:
- Desinstalación de Docker.
- Instalación de Podman.
-
Laboratorio 06-B: Frontend-Backend con POD. Ejercicios:
- Descargar imágenes de contenedor.
- Archivo con variables de entorno.
- Creación del pod.
- Eliminación del pod.
-
Laboratorio 20-A: Instalación de Minikube. Ejercicios:
- Instalación de Minikube.
- Instalación de kubectl.
- Modificar sudoers e instalar uidmap.
- Iniciar Minikube.
-
Laboratorio 20-B: Comandos básicos de kubectl. Ejercicios:
- Primera toma de contacto con kubectl.
- Crear un deployment con kubectl.
- El ReplicaSet.
- Editar un deployment con kubectl.
- Rollout undo del deployment con kubectl.
- Describir un objeto con kubectl.
- Ver la salida estándar del contenedor con kubectl.
- Ejecutar comandos en el contenedor con kubectl.
- Eliminar objetos del cluster con kubectl.
-
Laboratorio 25-A: Despliegue de archivos YAML. Ejercicios:
- Aplicar un deployment desde archivo YAML.
- Aplicar un servicio desde archivo YAML.
- Obtener el estado de Kubernetes.
- Crear un servicio de tipo LoadBalancer desde archivo YAML.
-
Laboratorio 25-B: Despliegue de MongoDB. Ejercicios:
- Descripción del sistema.
- Crear la base de datos MongoDB.
- Crear un secreto en Kubernetes.
- Aplicar el deployment de MongoDB.
- Crear el deployment Mongo Express.
- Aplicar el deployment de Mongo Express.
-
Laboratorio 25-C: Backend de Redis con un master y dos réplicas
- Despliegue del maestro de Redis.
- Creación de ConfigMap desde un archivo.
- Despliegue de las réplicas de Redis.
- Despliegue del Frontend.
- Despliegue del balanceador para el Frontend.
- Laboratorio 30: Espacios de Nombres. Ejercicios:
- Creación de un espacio de nombres.
- Aplicar un archivo YAML en un espacio de nombres.
- Predeterminar el espacio de nombres.
- Predeterminar el espacio de nombres en el archivo YAML.
-
Laboratorio 35-A: Ingress. Ejercicios:
- Despliegue de helloContainer y mongodb.
- Creación del objeto Ingress.
- Instalar el Controlador Ingress.
- Configurar el Registro de Recurso de DNS.
- Configurar el Default Backend.
-
Laboratorio 35-B: Asegurar el Ingress con TLS. Ejercicios:
- Configuración de un Gateway de aplicación de Azure como Ingress de K8s.
- Añadir una regla de entrada (Ingress) a la aplicación.
- Instalación de cert-manager.
- Instalación del emisor de certificados (issuer).
- Crear el certificado TLS y asegurar la Ingress.
- Cambiar al entorno de producción de Let´s Encrypt.
-
Laboratorio 45-A: Horizontal POD Autoscaler (HPA) en Azure y autoescalado de nodos. Ejercicios:
- Desplegar la aplicación de ejemplo.
- Escalar el frontend de GuestBook.
- Autoescalado de nodos.
-
Laboratorio 45-B: Horizontal POD Autoscaler (HPA) en AWS. Ejercicios:
- Desplegar la aplicación de ejemplo.
- Escalar el frontend de GuestBook.
- Laboratorio 50: Instalar aplicaciones usando HELM. Ejercicios:
- Instalar Helm.
- Instalar WordPress con Helm.
- Desinstalar WordPress con Helm.
-
Laboratorio 55-A: Usar volúmenes en las aplicaciones. Ejercicios:
- Despliegue del servidor Redis.
- Creación de un ConfigMap desde un archivo.
- Creación de un ConfigMap desde archivo YAML.
- Instalar aplicaciones con estado (statefull) en el cluster.
- Persistent Volume Claims (PVCs).
-
Laboratorio 55-B: MySQL replicado con StatefulSet. Ejercicios:
- Crear el ConfigMap.
- Creación de los servicios.
- Creación del StatefulSet.
- Enviar tráfico desde el Frontend.
-
Laboratorio 55-C: MongoDB con StatefulSet y Sidecar. Ejercicios:
- Crear secretos y script de inicio.
- Proteger las comunicaciones de MongoDB.
- Cambiar permisos al script.
- Creación de un espacio de nombres.
- Creación del servicio y cuenta de servicio.
- Creación del StatefulSet de MongoDB.
- Creación del objeto Kustomization.
- Laboratorio 60: Despliegue de Prometeus con Operator. Ejercicios:
- Instalación del Operator de Prometheus.
-
Laboratorio 65-A: Endpoints externos. Ejercicios:
- Creación del endpoint.
- Creación del servicio interno.
- Prueba del endpoint.
-
Laboratorio 65-B: Monitorización del cluster. Ejercicios:
- Sondas Readiness y Liveness.
- Depuración de errores en el pull de imágenes.
- Errores de la aplicación.
- Sondas Readiness y liveness (Revisión).
- Experimentos con liveness y readiness.
- Métricas simples.
-
Laboratorio 65-C: RBAC en AKS (Azure). Ejercicios:
- Introduccion a RBAC.
- Habilitar la integración de Azure AD en AKS.
- Añadir al usuario administrador del tenant al grupo aks admins.
- Crear un usuario y un grupo de seguridad para asignar roles.
- Configurar RBAC en AKS.
- Verificar RBAC para el usuario Luke.
-
Laboratorio 65-D: Despliegue Canary. Ejercicios:
- ¿Qué es un despliegue Canary?.
- Ejemplo de un despliegue Canary.