Slide 1

Slide 1 text

Pablo Fredrikson @pablokbs Meetup 22/11

Slide 2

Slide 2 text

Pablo Fredrikson @pablokbs ● Nerd ● Lead SRE @ Invision ● 12 años con Linux / Software Libre ● 4+ años con Docker ● 2 años con Docker en producción

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Buenos tiempos

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Buenos tiempos

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

LA NUBE (o la computadora de otro)

Slide 16

Slide 16 text

Auto Scaling Groups (o ASGs)

Slide 17

Slide 17 text

Auto Scaling Groups (o ASGs) ● Deseado/Max/Min ● Reglas Auto Escalamiento ● Launch configuration (script inicio) ● Tags

Slide 18

Slide 18 text

Buenos tiempos

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

data "aws_ami" "coreos" { filter { name = "coreos" values = ["coreos/images/hvm-ssd/coreos-${version}*"] } } resource "aws_launch_configuration" "workers" { name = "cluster1-workers" image_id = "{data.aws_ami.coreos.id}" instance_type = "m3.large" user_data = "${my_install_script}" }

Slide 21

Slide 21 text

#!/bin/bash ./install-kubernetes-worker.sh ${kubernetes_version}

Slide 22

Slide 22 text

resource "aws_autoscaling_group" "workers" { name = "cluster1-workers" max_size = 5 min_size = 2 desired_capacity = 4 health_check_type = "ELB" launch_configuration = "${aws_launch_configuration.workers.name}" tag { key = "KubernetesVersion" value = "${kubernetes_version}" propagate_at_launch = true } }

Slide 23

Slide 23 text

resource "aws_autoscaling_group" "workers" { name = "cluster1-workers" max_size = 5 min_size = 2 desired_capacity = 4 health_check_type = "ELB" launch_configuration = "${aws_launch_configuration.workers.name}" tag { key = "AmiVERSION" value = "${ami_version}" propagate_at_launch = true } }

Slide 24

Slide 24 text

Paradoja de Teseo

Slide 25

Slide 25 text

${kubernetes_version} = 1.8 kubernetesVersion = 1.8 ${kubernetes_version} = ?

Slide 26

Slide 26 text

${kubernetes_version} = 1.9 kubernetesVersion = 1.8 ${kubernetes_version} = ? x

Slide 27

Slide 27 text

${kubernetes_version} = 1.9 kubernetesVersion = 1.9 ${kubernetes_version} = ? x

Slide 28

Slide 28 text

${ami_version} = coreos-1668 amiVersion = coreos-1668 ${ami_version} = ?

Slide 29

Slide 29 text

Theseus ● Drena nodos antes de matarlos ● Ventana de mantenimiento ● Concurrencia ● Maneja versiones de kubernetes, versiones de AMI, versiones de scripts ● Automático

Slide 30

Slide 30 text

Es open source?

Slide 31

Slide 31 text

No.

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Buenos tiempos @pablokbs

Slide 34

Slide 34 text

¿Preguntas? @pablokbs @InvisionApp