More Related Content Similar to Kubernetes Operator 101 - Edith Puclla (20) More from Edith Puclla (14) Kubernetes Operator 101 - Edith Puclla2. Edith Puclla
● Technology Evangelist at Percona
● Embajadora de Cloud Native
Computing Foundation
● Capitan de Docker
● Colaborador de código abierto:
Apache Airflow, Kubernetes
Website
Edith Puclla edithpuclla
3. © 2023 | Percona
3
○ ¿Por qué Percona decide implementar Operadores de
Kubernetes?
○ Kubernetes
■ Terminología, ejemplo y arquitectura
○ Operadores de Kubernetes
■ CRD, Controllers, Con y Sin Operadores
Agenda
6. © 2023 | Percona
6
● Decisión impulsada por el cliente/comunidad
● Contenedores -> Kubernetes
● Operadores = Simplificación + Automatización
○ Despliegue
○ Administración
○ Configuracón
● Aplicaciones complejas -> base de datos
8. © 2023 | Percona
8
Contenedores
● Application
● Runtime
● Dependencies
9. © 2023 | Percona
9
Simplificándolo
OPERATING SYSTEM
PROCESS Container
10. © 2023 | Percona
10
¿Qué hace un contenedor?
CGROUPS NAMESPACES FILESYSTEM
ASIGNAR Y
RESTRINGIR
LOS RECURSOS DEL
SISTEMA
RECURSOS
AISLADOS
SISTEMA DE
ARCHIVOS
RAÍZ (ROOT
FILESYSTEM)
Container
11. © 2023 | Percona
● Automatización
● Administrar servicios, equilibrio de carga
● Gestión eficiente de los recursos
● Capacidades de autocuración (Self-healing capabilities) y
Provisión para actualización y reversión(update and rollback)
Desafíos con contenedores a escala
11
13. © 2023 | Percona
Advantages of Kubernetes
● Portabilidad de aplicaciones
● Sin bloqueo de proveedor (No Vendor lock-in)
● Buena opción para microservicios
● Comunidad activa (03 lanzamientos por año).
● Amplia adopción
14. © 2023 | Percona
● Pods
○ Red y almacenamiento
● Deployments
○ Estado deseado
○ Replicas
● Services
○ Acceso a Pods
Terminología Kubernetes
14
15. © 2023 | Percona
15
Ejemplo: Application de Voto
voting-app result-app
KodeKloud: www.youtube.com/watch?v=XuSQU5Grv1g
16. © 2023 | Percona
16
Ejemplo: Application de Voto
voting-app result-app
redis DB
worker
17. © 2023 | Percona
POD
POD
POD
POD
POD
17
PODS
voting-app result-app
redis DB
worker
6379
5432
80
80
18. © 2023 | Percona
Service
Service
POD
POD
POD
POD
POD
18
voting-app result-app
redis DB
worker
6379
5432
80
80
Service
Service
SERVICES
19. © 2023 | Percona
DEPLOYMENT
DEPLOYMENT
DEPLOYMENT
DEPLOYMENT
DEPLOYMENT
Service
Service
POD
POD
POD
POD
POD
19
voting-app result-app
redis DB
worker
Service
Service
POD
voting-app
POD
result-app
POD
voting-app
POD
result-app
DEPLOYMENTS
21. © 2023 | Percona
Arquitectura de
Kubernetes
21
UI
CLI
API Server
Scheduler
Controller-Manager
etcd
Docker
kubelet kube-proxy
Container 1
Control Plane
User Interface
Worker node 1
Container 2
Container 3
Container 1
Container 1
Container 2
Pod 1 Pod 2 Pod 3
Docker
kubelet kube-proxy
Container 1
Worker node 1
Container 2
Container 3
Container 1
Container 1
Container 2
Pod 1 Pod 2 Pod 3
kubectl
22. © 2023 | Percona
Arquitectura de Kubernetes
22
UI
CLI
API Server
Scheduler
Controller-Manager
etcd
Docker
kubelet kube-proxy
Container 1
Control Plane
User Interface
Worker node 1
Container 2
Container 3
Container 1
Container 1
Container 2
Pod 1 Pod 2 Pod 3
Docker
kubelet kube-proxy
Container 1
Worker node 1
Container 2
Container 3
Container 1
Container 1
Container 2
Pod 1 Pod 2 Pod 3
kubectl
24. © 2023 | Percona
Escalado de aplicaciones
sin estado: fácil
24
Créditos: Joshua Wood
25. © 2023 | Percona
$ kubectl scale deploy/myapp --replicas=6
25
Créditos: Joshua Wood
26. © 2023 | Percona
¿Qué pasa con las
aplicaciones que almacenan
datos?
26
Créditos: Joshua Wood
27. © 2023 | Percona
“Deployar” una base de datos: fácil
27
Créditos: Joshua Wood
28. © 2023 | Percona
Ejecutar una base de datos a lo largo del
tiempo es lo más difícil
28
29. © 2023 | Percona
Los operadores siguen los principios
de Kubernetes, en particular el ciclo de
control ( control loop).
29
30. © 2023 | Percona
SIN
30
Kubernetes Operators
CON
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-01
deploy-01 deploy-02
Pod Pod
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-02
apiVersion: apiextensions.k8s.io/v1
kind: MyApp
metadata:
name: my-app
Pod Pod
Deployment
Pod
Pod
CRD Controller
Operador
OLM
Control Loop
Diff
Act
Observe
Créditos: Sai Vennam
31. © 2023 | Percona
Capability Model (Modelo de Capacidad)
31
Instalación
básica
Actualizaciones sin
Inconvenientes
Ciclo de vida
Completo
Perspectivas
Profundas
Piloto Automático
sdk.operatorframework.io/docs/overview/
34. © 2023 | Percona
Join us on Slack at DoK.community, and then join the
#sig-operator channel!
dok.community slack:
shorturl.at/rsyK0
¿Interesado en contribuir?
34
35. © 2023 | Percona
35
developers.redhat.com/e-books/kubernetes-operators
36. © 2023 | Percona
https://www.percona.com/
Twitter: @Percona, @PerconaBytes
LinkedIn: Percona
36