En esta charla conjunta con el Colegio de Ingenieros de Guatemala hablamos acerca de Kubernetes como plataforma de orquestación de contenedores, incluyendo:
- Motivaciones e historia de Kubernetes
- Arquitectura básica de funcionamiento
- Uso de objetos centrales -e.g. Container, Pod, Deployment, Service-
Para la charla se ejecutan diversas pruebas básicas con Minikube y Oracle Cloud con el objetivo de presentar Kubernetes a las personas que estan iniciando con la plataforma.
6. Kubernetes
Kubernetes
Kubernetes despliega y gestiona (orquesta) aplicaciones que están empacadas
para ser ejecutadas como contenedores y que están programadas de tal forma
que escalan, son resilientes y pueden ser actualizadas, alineándose a los
requerimientos de negocio modernos.
5
7. Kubernetes
¿Que es un Kubernetes?
• Orquestador
• Gestiona aplicaciones y despliegues (en contenedores)
• Declarativo
• Elastico (scale up)
• Resiliente (self healing)
• Actualizaciones
6
24. Kubernetes - Empaquetado
Proceso
• Aplicación debe estar en contenedor
• Contenedor se declara en Pod
• Pod se utiliza (opcionalmente) en Deployment
21
26. Kubernetes - Empaquetado
Secuencia de ejecución
• Estado se encuentra en archivo manifest (YAML)
• Estado se envia (POST) hacia API server
• Kubernetes almacena el estado como desired
• Kubernetes implementa el estado en el cluster
• Kubernetes reconcilia constantemente current state con desired state
23
27. Kubernetes - Pod
Pod of Whales
¿Que es un pod?
• Uno o más vinculados
• IP Compartida
• Caen todos o ninguno (ciclo de vida)
• Storage compartido
• Recursos compartidos
24
28. Kubernetes - Pod
Casos de multiples containers
• Service mesh
• Helper container
• Log scrapper
25
31. Kubernetes - Pod
Kernel ring fenced
• Red (Ip)
• Kernel Namespace
• IPC
• Memory space
• Volumes
Desplegables con
• Deployments
• Daemon Sets
• Stateful Sets
28
32. Kubernetes - Deployment
¿Que es un deployment?
Descriptor que mantiene el número de PODs/replicas en ejecución. Describe un
estado
29
33. Kubernetes - Servicios
¿Que es un servicio?
Agrupación de PODs de una misma naturaleza, -e.g. una IP estable virtual y un
nombre de DNS para replicas de un servicio-
30
37. Kubernetes - Servicios
• Red estable
• Punto de abstracción
• Balanceo TPC/UDP
• Label = Etiqueta para decidir si entra en balanceo
Tipos
• Cluster IP
• NodePort
• LoadBalancer
• Externa name
33