1 of 37

Operadores de Kubernetes

Introducción

© 2023 Percona

2 of 37

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

© 2023 Percona

3 of 37

Agenda

3

    • ¿Por qué Percona decide implementar Operadores de Kubernetes?
    • Kubernetes
      • Terminología, ejemplo y arquitectura
    • Operadores de Kubernetes
      • CRD, Controllers, Con y Sin Operadores

© 2023 | Percona

© 2023 Percona

4 of 37

© 2023 Percona

5 of 37

¿Por qué Percona decide implementar Operadores de Kubernetes?

© 2023 Percona

6 of 37

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

© 2023 | Percona

© 2023 Percona

7 of 37

Kubernetes

© 2023 Percona

8 of 37

Contenedores

  • Application
  • Runtime
  • Dependencies

8

© 2023 | Percona

© 2023 Percona

9 of 37

Simplificándolo

9

OPERATING SYSTEM

PROCESS

Container

© 2023 | Percona

© 2023 Percona

10 of 37

¿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

11 of 37

Desafíos con contenedores a escala

  • 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)

11

© 2023 | Percona

© 2023 Percona

12 of 37

12

© 2023 | Percona

© 2023 Percona

13 of 37

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

© 2023 | Percona

© 2023 Percona

14 of 37

Terminología Kubernetes

  • Pods
    • Red y almacenamiento
  • Deployments
    • Estado deseado
    • Replicas
  • Services
    • Acceso a Pods

14

© 2023 | Percona

© 2023 Percona

15 of 37

Ejemplo: Application de Voto

15

voting-app

result-app

KodeKloud: www.youtube.com/watch?v=XuSQU5Grv1g

© 2023 | Percona

© 2023 Percona

16 of 37

Ejemplo: Application de Voto

16

voting-app

result-app

redis

DB

worker

© 2023 | Percona

© 2023 Percona

17 of 37

PODS

17

POD

POD

POD

POD

POD

voting-app

result-app

redis

DB

worker

6379

5432

80

80

© 2023 | Percona

© 2023 Percona

18 of 37

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

19 of 37

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

20 of 37

YAML

20

© 2023 | Percona

© 2023 Percona

21 of 37

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

22 of 37

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

23 of 37

Kubernetes Operators

© 2023 Percona

24 of 37

Escalado de aplicaciones sin estado: fácil

24

© 2023 | Percona

© 2023 Percona

25 of 37

$ kubectl scale deploy/staticweb --replicas=4

25

© 2023 | Percona

© 2023 Percona

26 of 37

¿Qué pasa con las aplicaciones que almacenan datos?

26

© 2023 | Percona

© 2023 Percona

27 of 37

“Deployar” una base de datos: fácil

27

© 2023 | Percona

© 2023 Percona

28 of 37

Ejecutar una base de datos a lo largo del tiempo es lo más difícil

28

© 2023 | Percona

© 2023 Percona

29 of 37

Los operadores siguen los principios de Kubernetes, en particular el ciclo de control ( control loop).

29

© 2023 | Percona

© 2023 Percona

30 of 37

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

31 of 37

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 of 37

32

© 2023 | Percona

© 2023 Percona

33 of 37

33

© 2023 | Percona

© 2023 Percona

34 of 37

¿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 of 37

35

developers.redhat.com/e-books/kubernetes-operators

© 2023 | Percona

© 2023 Percona

36 of 37

https://www.percona.com/

Twitter: @Percona, @PerconaBytes

LinkedIn: Percona

36

© 2023 | Percona

© 2023 Percona

37 of 37

Thank You :)

Edith Puclla

edithpuclla

© 2023 Percona