Operadores de Kubernetes
Introducción
© 2023 Percona
Edith Puclla
Edith Puclla
edithpuclla
© 2023 Percona
Agenda
3
© 2023 | Percona
© 2023 Percona
© 2023 Percona
¿Por qué Percona decide implementar Operadores de Kubernetes?
© 2023 Percona
6
© 2023 | Percona
© 2023 Percona
Kubernetes
© 2023 Percona
Contenedores
8
© 2023 | Percona
© 2023 Percona
Simplificándolo
9
OPERATING SYSTEM
PROCESS
Container
© 2023 | Percona
© 2023 Percona
¿Qué hace un contenedor?
10
CGROUPS
NAMESPACES
FILESYSTEM
ASIGNAR Y RESTRINGIR
LOS RECURSOS DEL SISTEMA
RECURSOS AISLADOS
SISTEMA DE ARCHIVOS RAÍZ (ROOT FILESYSTEM)
Container
© 2023 | Percona
© 2023 Percona
Desafíos con contenedores a escala
11
© 2023 | Percona
© 2023 Percona
12
© 2023 | Percona
© 2023 Percona
Advantages of Kubernetes
© 2023 | Percona
© 2023 Percona
Terminología Kubernetes
14
© 2023 | Percona
© 2023 Percona
Ejemplo: Application de Voto
15
voting-app
result-app
KodeKloud: www.youtube.com/watch?v=XuSQU5Grv1g
© 2023 | Percona
© 2023 Percona
Ejemplo: Application de Voto
16
voting-app
result-app
redis
DB
worker
© 2023 | Percona
© 2023 Percona
PODS
17
POD
POD
POD
POD
POD
voting-app
result-app
redis
DB
worker
6379
5432
80
80
© 2023 | Percona
© 2023 Percona
SERVICES
18
Service
Service
POD
POD
POD
POD
POD
voting-app
result-app
redis
DB
worker
6379
5432
80
80
Service
Service
© 2023 | Percona
© 2023 Percona
DEPLOYMENTS
19
DEPLOYMENT
DEPLOYMENT
DEPLOYMENT
DEPLOYMENT
DEPLOYMENT
Service
Service
POD
POD
POD
POD
POD
voting-app
result-app
redis
DB
worker
Service
Service
POD
voting-app
POD
result-app
POD
voting-app
POD
result-app
© 2023 | Percona
© 2023 Percona
YAML
20
© 2023 | Percona
© 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
© 2023 | Percona
© 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
© 2023 | Percona
© 2023 Percona
Kubernetes Operators
© 2023 Percona
Escalado de aplicaciones sin estado: fácil
24
© 2023 | Percona
© 2023 Percona
$ kubectl scale deploy/staticweb --replicas=4
25
© 2023 | Percona
© 2023 Percona
¿Qué pasa con las aplicaciones que almacenan datos?
26
© 2023 | Percona
© 2023 Percona
“Deployar” una base de datos: fácil
27
© 2023 | Percona
© 2023 Percona
Ejecutar una base de datos a lo largo del tiempo es lo más difícil
28
© 2023 | Percona
© 2023 Percona
Los operadores siguen los principios de Kubernetes, en particular el ciclo de control ( control loop).
29
© 2023 | Percona
© 2023 Percona
SIN
CON
30
Kubernetes Operators
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
© 2023 | Percona
© 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/
© 2023 | Percona
© 2023 Percona
32
© 2023 | Percona
© 2023 Percona
33
© 2023 | Percona
© 2023 Percona
¿Interesado en contribuir?
Join us on Slack at DoK.community, and then join the #sig-operator channel!
dok.community slack:
shorturl.at/rsyK0
34
© 2023 | Percona
© 2023 Percona
35
developers.redhat.com/e-books/kubernetes-operators
© 2023 | Percona
© 2023 Percona
36
© 2023 | Percona
© 2023 Percona
Thank You :)
Edith Puclla
edithpuclla
© 2023 Percona