La idea de este workshop nace luego de unas charlas que la UNS nos invitó a realizar en sus aulas. Con el fin de promover el uso de Kubernetes, y hacer llegar esta tecnología a estudiantes que seguramente se cruzarán con ella en sus próximos años, surge la necesidad de armar un Workshop para explorar distintos contenidos relacionados al tema.
La audiencia de este material es todo aquel que tenga una base de conocimientos sobre contenedores, y quiera empezar a experimentar con Kubernetes en su propia computadora.
Queremos acercar Kubernetes a distintos grupos que pueden adoptarlo para su trabajo actual o futuro, e incluso hacer uso de esta tecnología en su propio hogar. Creemos que aquellas tecnologías que son accesibles gracias a proyectos como éste, deben ser aprovechados por la comunidad para expandir su conocimiento, como también entender las distintas opciones que existen hoy en día para desplegar sus aplicaciones y administrar sus cargas de trabajo.
Si de este taller surge al menos una persona interesada en usarlo para su trabajo y/o proyectos personales, hemos logrado nuestro objetivo.
Kubernetes es más que un orquestador de contenedores. Durante el workshop, esperamos mostrar tres de sus varias características:
- Portabilidad
- Alta disponibilidad
- Self-healing
Durante el Workshop aprenderán lo necesario para llevar una aplicación casera desde su concepción hasta tenerla corriendo en Kubernetes siguiendo buenas prácticas.
- Instalación de los componentes necesarios para utilizar Docker
- Pull y Push de una imagen
- Container Registry/Docker Registry
- Crear una imagen a partir de una aplicación propia
- Tagging de imágenes
- Update de imágenes
- Correr varias instancias de la misma imagen
- Balanceando tráfico a las imágenes
- Instalación de Kubernetes en local
- Primera prueba de pod
- Nuestra app en un pod
- Exponer y probar nuestra aplicación
- Formas de exponer servicios
- Self-healing
- Controladores
- Balanceo por medio de servicio
- Multiples servicios, mismo label
- Namespaces
- Kustomization
- Herramientas
- Aplicar resources al spec
- SecurityContext
- Optimizar imagen
- Tamaño
- Layers
- Alpine
- Readiness, Liveness
- Prometheus
- Queries
- Grafana
- Dashboards públicos
- Ejemplos de situaciones comunes
- CrashLoopBackOff
- ImagePullBackOff
- Pending
- OOMKill
- Readiness
- Terminating
- kubectl explain
- kubectl debug
- Operadores y su complejidad
- K3d
- Docker
- Kubernetes
En un archivo dejamos todos los comandos que se utilizarán durante el workshop para que puedan copiar y pegar acorde a como vayan avanzando en el material.