SlideShare a Scribd company logo
1 of 21
Download to read offline
Kubernetes
Technical overview y nuestra experiencia en Restorando
Agenda
● Intro
● Kubernetes concepts
● K8s en la práctica
○ Demo!
● K8s Features
● No free meal
● Links útiles
Intro
La idea es desacoplar
● Desacoplar apps de servers
○ Así los podemos tratar como ganado y no como mascotas
○ Más uptime y fácil escalar
○ Aprovechar mejor los recursos (varias apps en un server)
○ La gente de infra se encarga de la infra, la gente de la app se encarga de su app
● Linux desacopla software de las arquitecturas de HW (x86, arm, etc.)
○ Kubernetes la aplicación de la infraestructura
● Provee una capa sobre la que las aplicaciones corren
○ No importa el cloud provider (AWS, Azure, etc.) ni si es bare-metal
○ La aplicación no se entera de lo que hay debajo
○ Puede correr federado entre distintos cloud providers y bare-metal
Node
Kubelet
Pod Pod Pod
Container Container Container
Node
Kubelet
Pod Pod Pod
Container Container Container
Kubernetes basic architecture
Node
Kubelet
Pod Pod Pod
Container Container Container
Kubernetes
Master
Solo importa el desired state
Desired State Current State
Reconciliation loop
Container A y B corriendo
Container A, B y C corriendo
Borrar C
¿Qué es un Pod?
● (no es así realmente, ya veremos bien)
● Pensemos en un pod como un container al que le definimos cosas
● Al que le definimos:
○ La imagen de docker y versión a correr
○ La memoria que puede usar
○ El CPU que tiene disponible
○ El usuario que lo va a correr, etc.
Deployments
● Se usa en lugar de pods
● Encargado de que haya la cantidad que queremos
○ Si un nodo muere, levanta el container en otro
○ Si un nodo levanta con ese pod corriendo, lo matará
● Sabe cuándo los “pods” están listos
○ Hay checkeos “standard” que vamos a ver para esto
● Nos maneja los deploy sin downtime
○ Ya vemos a ver cómo
● Desired state: típicamente se especifica en un yaml/json
- name: nginx
image: <registry>/nginx:v1.0
readinessProbe:
initialDelaySeconds: 5
httpGet:
path: /health
port: 80
livenessProbe:
initialDelaySeconds: 5
httpGet:
path: /health
port: 80
lifecycle:
preStop:
exec:
command: ["nginx", "-s", "quit"]
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: wido-web
spec:
replicas: 1
template:
metadata:
labels:
project: wido
role: web
containers:
- name: app
image: <registry>/wido:1.0
Ejemplo de deployment
Hacer un deploy
● Se baja un pod viejo
● Se levanta un pod nuevo
● No se sigue hasta que está listo para recibir tráfico. Cuando está listo, se
repite hasta N
● El nodo lo elige k8s automáticamente, se pueden poner restricciones
○ O hasta crear nuestro propio scheduler y usarlo en su lugar!
Servicios: exponer los pods
● Selecciona en base a labels, los pods que se van a exponer
○ Todos los pods con label “project: myapp”
● Se crea entonces (generalmente):
○ Una IP estática que apuntará a los pods que correspondan (load balancing)
○ Un nombre de dns para service discovery
○ Crea load balancer del cloud provider si queremos también
○ Solo se exponen pods que pasen el readiness check
● Comunicación intra-cluster puede ver una IP estática
○ Atrás se hace load balancing y deploys sin downtime fácilmente
○ Los pods se pueden mover de un nodo a otro Y el servicio re-routea
○ Es decir, desacopla
Servicios y deploy
my-app
Ver: 0.1
Labels:
project: my-app
my-app
Ver: 0.1
Labels:
project: my-app
Deployment: My app
version=0.1, replicas=2
Service: My app
matchLabels: project:myapp
Servicios y deploy
my-app
Ver: 0.1
Labels:
project: my-app
my-app
Ver: 0.1
Labels:
project: my-app
Deployment: My app
version=0.2, replicas=2
Service: My app
matchLabels: project:myapp
my-app
Ver: 0.2
Labels:
project: my-app
my-app
Ver: 0.2
Labels:
project: my-app
¿Qué son los pods realmente?
● Conjunto de 1 o más containers, mínima unidad de deployment
● Modela grupo de apps que se corren en un host
○ SIEMPRE en un mismo nodo
○ Misma IP, namespace de red, IPC entre ellos, etc.
● Idea: desacoplar
○ Tambien separation of concerns, reusable, != CPU/mem limits, monitoreo preciso
● Ejemplos
○ File puller + web server: comparten volumen para los archivos
○ Mysql + adapter de phometheus
○ App + interfaz con “el mundo exterior”
○ En Restorando: nginx, heka y app
Demo
Kubernetes features
● Automatic binpacking
● Horizontal autoscaling
● Cluster autoscaling
● Automated rollouts and rollbacks
● Storage orchestration
○ Dynamic volume provisioning
● Self-healing
● Service discovery and load balancing
● Secret and configuration management
● Batch and scheduled execution
● Canary deployments
● Container runtime independant
○ Docker, Rocket, Hyper, etc.
● Run Stateful and stateless apps
● Federated
● Extensible (3rd party API)
● Operators (recién anunciados por CoreOS)
● Hosted on Google cloud and Azure
● Minikube para correr local
● Partners y enterprise support
○ Training, certification and KMSP program
● Kubernetes on kubernetes (kaboom!)
● Viene con UI!
● Integraciones con todo lo que
necesitamos nosotros
○ SignalFX, Samson, AWS, etc.
No free meal
● Un layer de abstracción más
○ Hay que entenderlo, etc.
● Containers (docker o cualquiera) se meten mucho con el OS
○ Problemas en esa capa probablemente implican lidiar con el kernel
○ Todo bien cuando funcionan, pero cuando no? No es tan fácil
● Resolver el monitoreo
○ Prometheus, Integraciones con servicios hosted. Viene con cadvisor
○ Más cosas para monitorear: hosts, containers, kubernetes, cantidad de pods app X, etc.
● Cambia, quizás, la forma de deploy
○ Nosotros usabamos una interfaz web, open source, que agregó soporte
○ En general MUCHAS cosas tienen soporte para k8s
Links interesantes
● Borg, Omega, and Kubernetes: Lessons learned from three
container-management systems over a decade
○ http://queue.acm.org/detail.cfm?id=2898444
● Curso online (muy básico, pero simple y rápido de hacer)
○ https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615
○ https://training.linuxfoundation.org/linux-courses/system-administration-training/kuberne
tes-fundamentals
● Operators
○ https://coreos.com/blog/introducing-operators.html
○ https://coreos.com/blog/introducing-the-etcd-operator.html
● KubeCon EU 2016 (viejo ya, tipo 3 releases desde eso)
○ https://www.youtube.com/watch?v=Wyl4O3CHzV0
¿Preguntas?
¡Gracias!
Nos encantaría compartir experiencias con kubernetes:
Rodrigo Campos: rodrigo.campos@restorando.com, rodrigo@sdfg.com.ar
Juan Barreneche: jbarreneche@restorando.com
Una última cosa...
We are hiring!
https://engineering.restorando.com

More Related Content

What's hot

Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoRestorando
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a DockerOpen Canarias
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-dockerCLEFormación
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaJoselu Marina
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...Software Guru
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014quaip
 
Vagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoVagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoSergio Zambrano Delfa
 
Kubernetes - #gdglimasummit
Kubernetes - #gdglimasummitKubernetes - #gdglimasummit
Kubernetes - #gdglimasummitAngel Nuñez
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopRestorando
 

What's hot (20)

Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en Restorando
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-docker
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y Taniwa
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...
 
Contenedores como Servicio con Docker
Contenedores como Servicio con DockerContenedores como Servicio con Docker
Contenedores como Servicio con Docker
 
introducción a Docker
introducción a Dockerintroducción a Docker
introducción a Docker
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
Vagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoVagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de uso
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Kubernetes - #gdglimasummit
Kubernetes - #gdglimasummitKubernetes - #gdglimasummit
Kubernetes - #gdglimasummit
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshop
 
Fury DevopsConf 2015
Fury DevopsConf 2015Fury DevopsConf 2015
Fury DevopsConf 2015
 

Viewers also liked

Seminario: Docker y su Ecosistema
Seminario: Docker y su EcosistemaSeminario: Docker y su Ecosistema
Seminario: Docker y su EcosistemaGermán Moltó
 
Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014Sergio Soto
 
xPaaS Services for OpenShift
xPaaS Services for OpenShiftxPaaS Services for OpenShift
xPaaS Services for OpenShiftLibreCon
 
Ecosistema de desarrollo en PHP con Docker y Ansible
Ecosistema de desarrollo en PHP con Docker y AnsibleEcosistema de desarrollo en PHP con Docker y Ansible
Ecosistema de desarrollo en PHP con Docker y AnsibleVicent Soria Durá
 
dockerize.it
dockerize.itdockerize.it
dockerize.itbetabeers
 
Devopsconf2015- Marcos y Jonathan Mantika
Devopsconf2015- Marcos y Jonathan MantikaDevopsconf2015- Marcos y Jonathan Mantika
Devopsconf2015- Marcos y Jonathan MantikaFlavia Marinelli
 
DevOps como habilitador de continous delivery
DevOps como habilitador de continous deliveryDevOps como habilitador de continous delivery
DevOps como habilitador de continous deliveryJuan Mauricio
 
Five years of_rails_by_javier_ramirez
Five years of_rails_by_javier_ramirezFive years of_rails_by_javier_ramirez
Five years of_rails_by_javier_ramirezjavier ramirez
 
Learn docker in 90 minutes
Learn docker in 90 minutesLearn docker in 90 minutes
Learn docker in 90 minutesLarry Cai
 
data warehouse , data mart, etl
data warehouse , data mart, etldata warehouse , data mart, etl
data warehouse , data mart, etlAashish Rathod
 
Docker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup SlidesDocker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup SlidesDocker, Inc.
 
Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 

Viewers also liked (18)

Conceptos avanzados en docker
Conceptos avanzados en dockerConceptos avanzados en docker
Conceptos avanzados en docker
 
Arquitecturas de microservicios - Codemotion 2014
Arquitecturas de microservicios  -  Codemotion 2014Arquitecturas de microservicios  -  Codemotion 2014
Arquitecturas de microservicios - Codemotion 2014
 
Seminario: Docker y su Ecosistema
Seminario: Docker y su EcosistemaSeminario: Docker y su Ecosistema
Seminario: Docker y su Ecosistema
 
Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014
 
xPaaS Services for OpenShift
xPaaS Services for OpenShiftxPaaS Services for OpenShift
xPaaS Services for OpenShift
 
Ecosistema de desarrollo en PHP con Docker y Ansible
Ecosistema de desarrollo en PHP con Docker y AnsibleEcosistema de desarrollo en PHP con Docker y Ansible
Ecosistema de desarrollo en PHP con Docker y Ansible
 
dockerize.it
dockerize.itdockerize.it
dockerize.it
 
Devopsconf2015- Marcos y Jonathan Mantika
Devopsconf2015- Marcos y Jonathan MantikaDevopsconf2015- Marcos y Jonathan Mantika
Devopsconf2015- Marcos y Jonathan Mantika
 
DevOps como habilitador de continous delivery
DevOps como habilitador de continous deliveryDevOps como habilitador de continous delivery
DevOps como habilitador de continous delivery
 
Implementando una Arquitectura de Microservicios
Implementando una Arquitectura de MicroserviciosImplementando una Arquitectura de Microservicios
Implementando una Arquitectura de Microservicios
 
Five years of_rails_by_javier_ramirez
Five years of_rails_by_javier_ramirezFive years of_rails_by_javier_ramirez
Five years of_rails_by_javier_ramirez
 
El reto del DevOps agil
El reto del DevOps agilEl reto del DevOps agil
El reto del DevOps agil
 
Docker Datacenter - CaaS
Docker Datacenter - CaaSDocker Datacenter - CaaS
Docker Datacenter - CaaS
 
Learn docker in 90 minutes
Learn docker in 90 minutesLearn docker in 90 minutes
Learn docker in 90 minutes
 
data warehouse , data mart, etl
data warehouse , data mart, etldata warehouse , data mart, etl
data warehouse , data mart, etl
 
Data mart
Data martData mart
Data mart
 
Docker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup SlidesDocker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup Slides
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 

Similar to Kubernetes technical overview and our experience at Restorando :: Buenos Aires AWS Meetup

BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsErnesto Anaya
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadÓscar De Arriba González
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Francisco Javier Toscano Lopez
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Micael Gallego
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetesjdezine
 
Introduccion a Open Stack
Introduccion  a Open StackIntroduccion  a Open Stack
Introduccion a Open Stackcanarytek
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computingykro
 
Serverless: La evolucion de la arquitectura a la nube
Serverless: La evolucion de la arquitectura a la nubeServerless: La evolucion de la arquitectura a la nube
Serverless: La evolucion de la arquitectura a la nubeQuito Lambda
 
Clientes ligeros y Servidores NX
Clientes ligeros y Servidores NXClientes ligeros y Servidores NX
Clientes ligeros y Servidores NXRosariio92
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7Luis Ruiz Pavón
 

Similar to Kubernetes technical overview and our experience at Restorando :: Buenos Aires AWS Meetup (20)

Kubernetes workshop
Kubernetes workshopKubernetes workshop
Kubernetes workshop
 
Kubernetes para developers
Kubernetes para developersKubernetes para developers
Kubernetes para developers
 
BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOps
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidad
 
202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy
 
Terraform Ansible v3.0
Terraform Ansible v3.0Terraform Ansible v3.0
Terraform Ansible v3.0
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
 
ATICA DevOps
ATICA DevOpsATICA DevOps
ATICA DevOps
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetes
 
Introduccion a Open Stack
Introduccion  a Open StackIntroduccion  a Open Stack
Introduccion a Open Stack
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Serverless: La evolucion de la arquitectura a la nube
Serverless: La evolucion de la arquitectura a la nubeServerless: La evolucion de la arquitectura a la nube
Serverless: La evolucion de la arquitectura a la nube
 
Clientes ligeros y Servidores NX
Clientes ligeros y Servidores NXClientes ligeros y Servidores NX
Clientes ligeros y Servidores NX
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
 
Offering Cloud Solutions
Offering Cloud Solutions Offering Cloud Solutions
Offering Cloud Solutions
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
Lemoncode kubernetes
Lemoncode   kubernetes Lemoncode   kubernetes
Lemoncode kubernetes
 

Recently uploaded

Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfannavarrom
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCarlosGabriel96
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDEdith Puclla
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxvalenciaespinozadavi1
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.pptoscarvielma45
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfbcondort
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Dr. Edwin Hernandez
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinosDayanaCarolinaAP
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesMIGUELANGEL2658
 
Ejemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - EjerciciosEjemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - EjerciciosMARGARITAMARIAFERNAN1
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfdanielJAlejosC
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfTEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfXimenaFallaLecca1
 

Recently uploaded (20)

Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias locales
 
Ejemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - EjerciciosEjemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - Ejercicios
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfTEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
 

Kubernetes technical overview and our experience at Restorando :: Buenos Aires AWS Meetup

  • 1. Kubernetes Technical overview y nuestra experiencia en Restorando
  • 2. Agenda ● Intro ● Kubernetes concepts ● K8s en la práctica ○ Demo! ● K8s Features ● No free meal ● Links útiles
  • 4. La idea es desacoplar ● Desacoplar apps de servers ○ Así los podemos tratar como ganado y no como mascotas ○ Más uptime y fácil escalar ○ Aprovechar mejor los recursos (varias apps en un server) ○ La gente de infra se encarga de la infra, la gente de la app se encarga de su app ● Linux desacopla software de las arquitecturas de HW (x86, arm, etc.) ○ Kubernetes la aplicación de la infraestructura ● Provee una capa sobre la que las aplicaciones corren ○ No importa el cloud provider (AWS, Azure, etc.) ni si es bare-metal ○ La aplicación no se entera de lo que hay debajo ○ Puede correr federado entre distintos cloud providers y bare-metal
  • 5. Node Kubelet Pod Pod Pod Container Container Container Node Kubelet Pod Pod Pod Container Container Container Kubernetes basic architecture Node Kubelet Pod Pod Pod Container Container Container Kubernetes Master
  • 6. Solo importa el desired state Desired State Current State Reconciliation loop Container A y B corriendo Container A, B y C corriendo Borrar C
  • 7. ¿Qué es un Pod? ● (no es así realmente, ya veremos bien) ● Pensemos en un pod como un container al que le definimos cosas ● Al que le definimos: ○ La imagen de docker y versión a correr ○ La memoria que puede usar ○ El CPU que tiene disponible ○ El usuario que lo va a correr, etc.
  • 8. Deployments ● Se usa en lugar de pods ● Encargado de que haya la cantidad que queremos ○ Si un nodo muere, levanta el container en otro ○ Si un nodo levanta con ese pod corriendo, lo matará ● Sabe cuándo los “pods” están listos ○ Hay checkeos “standard” que vamos a ver para esto ● Nos maneja los deploy sin downtime ○ Ya vemos a ver cómo ● Desired state: típicamente se especifica en un yaml/json
  • 9. - name: nginx image: <registry>/nginx:v1.0 readinessProbe: initialDelaySeconds: 5 httpGet: path: /health port: 80 livenessProbe: initialDelaySeconds: 5 httpGet: path: /health port: 80 lifecycle: preStop: exec: command: ["nginx", "-s", "quit"] apiVersion: extensions/v1beta1 kind: Deployment metadata: name: wido-web spec: replicas: 1 template: metadata: labels: project: wido role: web containers: - name: app image: <registry>/wido:1.0 Ejemplo de deployment
  • 10. Hacer un deploy ● Se baja un pod viejo ● Se levanta un pod nuevo ● No se sigue hasta que está listo para recibir tráfico. Cuando está listo, se repite hasta N ● El nodo lo elige k8s automáticamente, se pueden poner restricciones ○ O hasta crear nuestro propio scheduler y usarlo en su lugar!
  • 11. Servicios: exponer los pods ● Selecciona en base a labels, los pods que se van a exponer ○ Todos los pods con label “project: myapp” ● Se crea entonces (generalmente): ○ Una IP estática que apuntará a los pods que correspondan (load balancing) ○ Un nombre de dns para service discovery ○ Crea load balancer del cloud provider si queremos también ○ Solo se exponen pods que pasen el readiness check ● Comunicación intra-cluster puede ver una IP estática ○ Atrás se hace load balancing y deploys sin downtime fácilmente ○ Los pods se pueden mover de un nodo a otro Y el servicio re-routea ○ Es decir, desacopla
  • 12. Servicios y deploy my-app Ver: 0.1 Labels: project: my-app my-app Ver: 0.1 Labels: project: my-app Deployment: My app version=0.1, replicas=2 Service: My app matchLabels: project:myapp
  • 13. Servicios y deploy my-app Ver: 0.1 Labels: project: my-app my-app Ver: 0.1 Labels: project: my-app Deployment: My app version=0.2, replicas=2 Service: My app matchLabels: project:myapp my-app Ver: 0.2 Labels: project: my-app my-app Ver: 0.2 Labels: project: my-app
  • 14. ¿Qué son los pods realmente? ● Conjunto de 1 o más containers, mínima unidad de deployment ● Modela grupo de apps que se corren en un host ○ SIEMPRE en un mismo nodo ○ Misma IP, namespace de red, IPC entre ellos, etc. ● Idea: desacoplar ○ Tambien separation of concerns, reusable, != CPU/mem limits, monitoreo preciso ● Ejemplos ○ File puller + web server: comparten volumen para los archivos ○ Mysql + adapter de phometheus ○ App + interfaz con “el mundo exterior” ○ En Restorando: nginx, heka y app
  • 15. Demo
  • 16.
  • 17. Kubernetes features ● Automatic binpacking ● Horizontal autoscaling ● Cluster autoscaling ● Automated rollouts and rollbacks ● Storage orchestration ○ Dynamic volume provisioning ● Self-healing ● Service discovery and load balancing ● Secret and configuration management ● Batch and scheduled execution ● Canary deployments ● Container runtime independant ○ Docker, Rocket, Hyper, etc. ● Run Stateful and stateless apps ● Federated ● Extensible (3rd party API) ● Operators (recién anunciados por CoreOS) ● Hosted on Google cloud and Azure ● Minikube para correr local ● Partners y enterprise support ○ Training, certification and KMSP program ● Kubernetes on kubernetes (kaboom!) ● Viene con UI! ● Integraciones con todo lo que necesitamos nosotros ○ SignalFX, Samson, AWS, etc.
  • 18. No free meal ● Un layer de abstracción más ○ Hay que entenderlo, etc. ● Containers (docker o cualquiera) se meten mucho con el OS ○ Problemas en esa capa probablemente implican lidiar con el kernel ○ Todo bien cuando funcionan, pero cuando no? No es tan fácil ● Resolver el monitoreo ○ Prometheus, Integraciones con servicios hosted. Viene con cadvisor ○ Más cosas para monitorear: hosts, containers, kubernetes, cantidad de pods app X, etc. ● Cambia, quizás, la forma de deploy ○ Nosotros usabamos una interfaz web, open source, que agregó soporte ○ En general MUCHAS cosas tienen soporte para k8s
  • 19. Links interesantes ● Borg, Omega, and Kubernetes: Lessons learned from three container-management systems over a decade ○ http://queue.acm.org/detail.cfm?id=2898444 ● Curso online (muy básico, pero simple y rápido de hacer) ○ https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615 ○ https://training.linuxfoundation.org/linux-courses/system-administration-training/kuberne tes-fundamentals ● Operators ○ https://coreos.com/blog/introducing-operators.html ○ https://coreos.com/blog/introducing-the-etcd-operator.html ● KubeCon EU 2016 (viejo ya, tipo 3 releases desde eso) ○ https://www.youtube.com/watch?v=Wyl4O3CHzV0
  • 20. ¿Preguntas? ¡Gracias! Nos encantaría compartir experiencias con kubernetes: Rodrigo Campos: rodrigo.campos@restorando.com, rodrigo@sdfg.com.ar Juan Barreneche: jbarreneche@restorando.com
  • 21. Una última cosa... We are hiring! https://engineering.restorando.com

Editor's Notes

  1. Docker es solo una parte de la foto. Sin un orchestrator, tenemos más problemas que soluciones Master con etcd. Nodos iguales con “kubelet” y pods
  2. Crear un container es solo modificar el desired state, el reconciliation loop se encarga de crearlo al ver la diferencia. Esto es el principio de self-healing
  3. Los checkeos: un pod se asigna a un nodo, se baja la imagen de docker, se la levanta, levanta el interprete, etc. Todo lleva tiempo, hasta ese momento no queremos que reciba tráfico, queremos saber cuando ya están “listos” Desired state, describe lo que queremos, no cómo hacerlo
  4. El readiness y liveness acá es igual, podrían ser distintos (probar que estén todas las dependencias up, por ejemplo db) Acá son un httpget, pueden ser ejecutar un comando en el container, conectarse por TCP nomás. Muy flexible y configurable Todo tiene labels pero muchos los saqué por espacio
  5. Con esto vimos: Automatic binpacking Y los puertos no conflictuan! Horizontal scaling (hay automatico tambien!) Automated rollouts and rollbacks Self-healing
  6. Pensar en pod como mínima unidad para escalar Los puertos con otros pods no conflictuan porque cada uno tiene su IP! Sidecar: extend and enhance the "main" container (primer ejemplo) Ambassador containers: container que splits read/writes y se conecta a redis Adapter containers: interfaz con el mundo exterior
  7. Kubernetes está hecho con microservicios, todas las partes son reemplazables e integrables con otros Automatic Horizonatal Scaling
  8. Hagan el curso de udacity!