SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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
 

Tendances (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
 

En vedette

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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Dernier

electricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejercicioselectricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejerciciosEfrain Yungan
 
Analisis de reparación de fisuras superficiales en pavimentos.pptx
Analisis de reparación de fisuras superficiales en pavimentos.pptxAnalisis de reparación de fisuras superficiales en pavimentos.pptx
Analisis de reparación de fisuras superficiales en pavimentos.pptxasotomayorm2
 
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfINSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfautomatechcv
 
GeoS33333333333333333333333333333333.pdf
GeoS33333333333333333333333333333333.pdfGeoS33333333333333333333333333333333.pdf
GeoS33333333333333333333333333333333.pdffredyflores58
 
Análisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadísticaAnálisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadísticaJoellyAlejandraRodrg
 
Sales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganicaSales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganicakiaranoemi
 
Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............osoriosantiago887
 
Unidad_1_Parte_1 organización y estructura de los seres vivos
Unidad_1_Parte_1 organización y estructura de los seres vivosUnidad_1_Parte_1 organización y estructura de los seres vivos
Unidad_1_Parte_1 organización y estructura de los seres vivossolareslionel9
 
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...jfmolina199
 
MONOGRAFIA- EDAFOLOGIA - EL SUELO(1).docx
MONOGRAFIA- EDAFOLOGIA - EL SUELO(1).docxMONOGRAFIA- EDAFOLOGIA - EL SUELO(1).docx
MONOGRAFIA- EDAFOLOGIA - EL SUELO(1).docxValentinaRavelo5
 
Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)esmerling14
 
presentación de topografía y sus aplicaciones
presentación de topografía y sus aplicacionespresentación de topografía y sus aplicaciones
presentación de topografía y sus aplicacionesCarlosA427496
 
SEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptxSEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptxOSCARADRIANMEDINADUR
 
Sistema Operativo Windows Capas Estructura
Sistema Operativo Windows Capas EstructuraSistema Operativo Windows Capas Estructura
Sistema Operativo Windows Capas EstructuraJairoMaxKevinMartine
 
Química Analítica-U1y2-2024.pdf. Unidades 1 y 2
Química Analítica-U1y2-2024.pdf. Unidades 1 y 2Química Analítica-U1y2-2024.pdf. Unidades 1 y 2
Química Analítica-U1y2-2024.pdf. Unidades 1 y 2santiagoBernabei8
 
Guía para la identificación de materiales peligrosos
Guía para la identificación de materiales peligrososGuía para la identificación de materiales peligrosos
Guía para la identificación de materiales peligrososAdrianVarela22
 
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptxJOSLUISCALLATAENRIQU
 
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfU1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfEberCV1
 
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdf
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdfTR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdf
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdfFRANCISCOJUSTOSIERRA
 
SESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.pdfSESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.pdfElenaNagera
 

Dernier (20)

electricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejercicioselectricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejercicios
 
Analisis de reparación de fisuras superficiales en pavimentos.pptx
Analisis de reparación de fisuras superficiales en pavimentos.pptxAnalisis de reparación de fisuras superficiales en pavimentos.pptx
Analisis de reparación de fisuras superficiales en pavimentos.pptx
 
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfINSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
 
GeoS33333333333333333333333333333333.pdf
GeoS33333333333333333333333333333333.pdfGeoS33333333333333333333333333333333.pdf
GeoS33333333333333333333333333333333.pdf
 
Análisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadísticaAnálisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadística
 
Sales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganicaSales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganica
 
Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............
 
Unidad_1_Parte_1 organización y estructura de los seres vivos
Unidad_1_Parte_1 organización y estructura de los seres vivosUnidad_1_Parte_1 organización y estructura de los seres vivos
Unidad_1_Parte_1 organización y estructura de los seres vivos
 
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...
 
MONOGRAFIA- EDAFOLOGIA - EL SUELO(1).docx
MONOGRAFIA- EDAFOLOGIA - EL SUELO(1).docxMONOGRAFIA- EDAFOLOGIA - EL SUELO(1).docx
MONOGRAFIA- EDAFOLOGIA - EL SUELO(1).docx
 
Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)
 
presentación de topografía y sus aplicaciones
presentación de topografía y sus aplicacionespresentación de topografía y sus aplicaciones
presentación de topografía y sus aplicaciones
 
SEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptxSEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptx
 
Sistema Operativo Windows Capas Estructura
Sistema Operativo Windows Capas EstructuraSistema Operativo Windows Capas Estructura
Sistema Operativo Windows Capas Estructura
 
Química Analítica-U1y2-2024.pdf. Unidades 1 y 2
Química Analítica-U1y2-2024.pdf. Unidades 1 y 2Química Analítica-U1y2-2024.pdf. Unidades 1 y 2
Química Analítica-U1y2-2024.pdf. Unidades 1 y 2
 
Guía para la identificación de materiales peligrosos
Guía para la identificación de materiales peligrososGuía para la identificación de materiales peligrosos
Guía para la identificación de materiales peligrosos
 
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
 
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfU1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
 
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdf
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdfTR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdf
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdf
 
SESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.pdfSESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.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

Notes de l'éditeur

  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!