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@pablokbsMeetup 22/11
View Slide
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
Buenos tiempos
LA NUBE(o la computadora de otro)
Auto Scaling Groups(o ASGs)
Auto Scaling Groups(o ASGs)● Deseado/Max/Min● Reglas Auto Escalamiento● Launch configuration (script inicio)● Tags
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}"}
#!/bin/bash./install-kubernetes-worker.sh ${kubernetes_version}
resource "aws_autoscaling_group" "workers" {name = "cluster1-workers"max_size = 5min_size = 2desired_capacity = 4health_check_type = "ELB"launch_configuration = "${aws_launch_configuration.workers.name}"tag {key = "KubernetesVersion"value = "${kubernetes_version}"propagate_at_launch = true}}
resource "aws_autoscaling_group" "workers" {name = "cluster1-workers"max_size = 5min_size = 2desired_capacity = 4health_check_type = "ELB"launch_configuration = "${aws_launch_configuration.workers.name}"tag {key = "AmiVERSION"value = "${ami_version}"propagate_at_launch = true}}
Paradoja de Teseo
${kubernetes_version}= 1.8kubernetesVersion = 1.8${kubernetes_version}= ?
${kubernetes_version}= 1.9kubernetesVersion = 1.8${kubernetes_version}= ?x
${kubernetes_version}= 1.9kubernetesVersion = 1.9${kubernetes_version}= ?x
${ami_version}= coreos-1668amiVersion = coreos-1668${ami_version}= ?
Theseus● Drena nodos antes de matarlos● Ventana de mantenimiento● Concurrencia● Maneja versiones de kubernetes, versiones de AMI, versiones de scripts● Automático
Es open source?
No.
Buenos tiempos@pablokbs
¿Preguntas?@pablokbs@InvisionApp