Slide 1

Slide 1 text

Pablo Fredrikson @pablokbs CRDs en KUBERNETES

Slide 2

Slide 2 text

Pablo Fredrikson @pablokbs ● Nerd ● Lead SRE @ Invision ● 13 años con Linux / Software Libre ● 5+ años con Docker ● 3 años con Kubernetes en producción ● 4º Nerdear.la

Slide 3

Slide 3 text

Kubernetes en 3 minutos - Conceptos ● Pod ● Nodo / Worker ● Controller

Slide 4

Slide 4 text

Kubernetes en 3 minutos MASTER API server Kube Scheduler Controller Manager Cloud Controller Manager API Kubernetes Cluster Services API Kubernetes Cluster Services API etcd deployment pod1: - container1 - container2 replicas: 3 pod2: - container3 replicas: 2 Kubelet Kubelet Kubelet P1R3 P1R1 P2R1 P1R2 P2R2

Slide 5

Slide 5 text

Kubernetes en 3 minutos Kubelet P2R1 Kubelet P1R2 Kubelet Kubernetes Cluster Services API deployment pod1: - container1 - container2 replicas: 3 pod2: - container3 replicas: 2 P1R3 P1R1 P2R2 P1R3 P1R1

Slide 6

Slide 6 text

$ kubectl

Slide 7

Slide 7 text

Kubernetes resources $ kubectl get pods NAME READY STATUS RESTARTS AGE hello-world-5847b8d4b6-fjbhv 1/1 Running 4 23d $ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-world ClusterIP 10.99.2.206 8000/TCP 23d kubernetes ClusterIP 10.96.0.1 443/TCP 100d

Slide 8

Slide 8 text

Extendiendo la API de Kubernetes: CRDs apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: crontabs.stable.example.com spec: group: stable.example.com version: v1 scope: Namespaced names: plural: crontabs singular: crontab kind: CronTab shortNames: - ct

Slide 9

Slide 9 text

Extendiendo la API de Kubernetes: CRDs apiVersion: "stable.example.com/v1" kind: CronTab metadata: name: my-new-cron-object spec: cronSpec: "* * * * /5" image: my-awesome-cron-image

Slide 10

Slide 10 text

Extendiendo la API de Kubernetes: CRDs $ kubectl apply -f mycronjob.yaml $ kubectl get crontabs NAME KIND my-new-cron-object CronTab.v1.stable.example.com

Slide 11

Slide 11 text

Kubernetes Cluster Services API ¿Dónde está la magia? ● Controller / Controlador $ kubectl

Slide 12

Slide 12 text

¿Qué hace un controlador?

Slide 13

Slide 13 text

demo

Slide 14

Slide 14 text

/PELADONERD @pablokbs ¿PREGUNTAS? slack.peladonerd.com