Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Docker Meetup 22/11 - Keynote / Theseus

Docker Meetup 22/11 - Keynote / Theseus

Meetup de Docker en Mendoza, hablo del estado de Docker/Kubernetes en la actualidad y presento Theseus, nuestro actualizador de nodos de Kubernetes

Pablo Fredrikson

November 22, 2018
Tweet

More Decks by Pablo Fredrikson

Other Decks in Technology

Transcript

  1. Pablo Fredrikson
    @pablokbs
    Meetup 22/11

    View Slide

  2. 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

    View Slide

  3. View Slide

  4. Buenos tiempos

    View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. Buenos tiempos

    View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. LA NUBE
    (o la computadora de otro)

    View Slide

  16. Auto Scaling Groups
    (o ASGs)

    View Slide

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

    View Slide

  18. Buenos tiempos

    View Slide

  19. View Slide

  20. 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}"
    }

    View Slide

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

    View Slide

  22. 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
    }
    }

    View Slide

  23. 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
    }
    }

    View Slide

  24. Paradoja de Teseo

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  30. Es open source?

    View Slide

  31. No.

    View Slide

  32. View Slide

  33. Buenos tiempos
    @pablokbs

    View Slide

  34. ¿Preguntas?
    @pablokbs
    @InvisionApp

    View Slide