20
Kubernetes Container Orchestration, Deployment and Scaling GDG Summit 2O16 – Lima, Perú

Kubernetes - #gdglimasummit

Embed Size (px)

Citation preview

Kubernetes Container Orchestration, Deployment and Scaling

GDG Summit 2O16 – Lima, Perú

ANGEL NÚÑEZ

Agile Quality Specialist, Consultant & Trainer

[email protected] @snahider

Contenedores y Docker

Gestionar Múltiples Pequeñas Instancias es Difícil

Container Orchestration

Gestionar múltiples contenedores desplegados en múltiples hosts.

•  Service Discovery •  Scheduling •  Health Monitoring •  Horizontal Scaling

Container Orchestration Tools

Docker Swarm Marathon (Mesosphere)

Nomad (HashiCorp) Kubernetes

Kubernetes

Kubernetes es una plataforma open-source para orquestar, automatizar el despliegue, escalar, gestionar y operar contenedores a través de clusters de hosts.

Planet Scale

Diseñado bajo los mismos principios que permiten a Google ejecutar billones de contenedores a la semana, combinado con las mejores ideas y

prácticas de la comunidad.

Comunidad

Compañías contribuyendo

37000+  commits  

800+  contributors  

1200+  external  projects  based  

on  k8s  

Kubernetes es el orquestador de contenedores más utilizado

Run Anywhere Cloud Providers: GCE, AWS, Azure, DigitalOcean, etc export KUBERNETES_PROVIDER=<your_provider>; curl -sS https://get.k8s.io | bash On-Premise: Centos, Fedora, Ubuntu, CoreOS, Vagrant, etc Hosted Solutions: Google Container Engine, RedHat OpenShift, CoreOS Tectonic Localmente para desarrollar o probar (Minikube) en MacOS ,Linux o Windows, utilizando VirtualBox o VMWare

Nodes Colección de máquinas que son tratadas como una

sola unidad lógica por Kubernetes. •  Docker •  Kubernetes Agents (kubelet, proxy)

Pods Mínima unidad lógica desplegable en

Kubernetes.

Container  

10.1.0.1  

Sidecar  Container  

Pod  GCE   NFS   AWS  

•  ConEenen  un  grupo  de  contenedores  co-­‐localizados  (usualmente  uno)  y  volúmenes.  

 •  Share  Namespace,  Ip  por  Pod,  

localhost  dentro  del  POD  

Scheduler

- Elige el lugar y levanta el Pod dentro de los nodos. - El mejor lugar es elegido en base a los requerimientos del Pod.

Pod  

Replication Controllers

•  Asegura que un número especificado de “Replicas” siempre se estén ejecutando.

•  Self Healing.

Maneja un conjunto replicado de Pods.

Pod   Pod   Pod  

Services

Service Discovery para los Pods.

•  Endpoints persistentes para los Pods.

•  Define una política de acceso (Node Port, Load Balancer, etc.)

•  Backend dinámico basado en Labels.

Container  

10.1.0.1  

Pod  Container  

10.1.0.2  

Pod  

Service  10.8.244.60  

Kubernetes Demo

Kubernetes - Beneficios

•  Naming and Discovery •  Replicate instances •  Horizontal auto-scaling •  Health Checking •  Resource Monitoring •  Logging Visualization •  Mount Storage Systems •  Declarative Infrastructure

•  Distributing Secrets •  Load Balancing •  Rolling Updates •  Canary Deployments •  Blue/Green Deployments •  Improve Infrastructure

Resource Utilization

¿Preguntas?

ANGEL NÚÑEZ

Agile Quality Specialist, Consultant & Trainer

[email protected] @snahider

Referencias Presentación (slides y código):https://github.com/snahider/kubernetes-gdgsummit16