Kubernetes Container Orchestration, Deployment and Scaling
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
33000+ commits
800+ contributors
1200+ external projects based
on k8s
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): OS o Linux usando 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
• ConDenen 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.
• 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
Referencias Presentación (slides y código):https://github.com/snahider/kubernetes-dockerconlima