Qué es Kubernetes y Google Kubernetes Engine para microservicios

Clase 2 de 41Curso de Google Kubernetes Engine (2018)

Resumen

Potencia tus despliegues con Kubernetes y Google Kubernetes Engine (GKE): orquesta microservicios en contenedores, automatiza versiones y escala sin fricción. Con un enfoque abierto y administrado, podrás integrar prácticas de DevOps, monitoreo y seguridad para llevar aplicaciones a producción de forma ágil.

¿Qué es Kubernetes y cómo orquesta microservicios?

Kubernetes es un sistema para desplegar y administrar aplicaciones en la nube. Permite dividirlas en microservicios y ejecutarlos en contenedores, coordinando versiones y disponibilidad mediante orquestación. Además, facilita la automatización y encaja naturalmente en procesos de DevOps.

¿Qué implica la arquitectura de contenedores?

  • Microservicios independientes que se despliegan por separado.
  • Contenedores portables para empaquetar servicios.
  • Administración de versiones rápida y sencilla.
  • Orquestación que automatiza escalado y resiliencia.

¿Por qué es relevante que sea open source y CNCF?

  • Código abierto bajo licencia Apache 2.0: puedes auditar y contribuir.
  • Instalación de clientes y software para administrar tu propio cluster.
  • Proyecto vigilado por Cloud Native Computing Foundation, parte de Linux Foundation.

¿Cuál es su origen y qué conceptos aprenderás?

  • Nació en Google a partir de Borg y el guiño a “siete de nueve” de Star Trek: un enfoque más amigable.
  • La palabra “Kubernetes” viene del griego y significa timón: dirige tus clusters.
  • Conceptos clave que se abordan: clusters, nodos, pods y volúmenes.

¿Cómo Google Kubernetes Engine simplifica la operación?

GKE es la solución administrada en Google Cloud Platform: no gestionas directamente el cluster de máquinas ni instalaciones finas. Google se encarga de la infraestructura para que te enfoques en el despliegue y la operación.

¿Qué funciones clave ofrece GKE?

  • Soporte de Docker para imágenes y contenedores.
  • Autoescalabilidad para mantener el performance bajo alta demanda.
  • Integración con Stack Driver: logs, monitoreo de CPU y memoria, alertas.
  • VPN sencilla para nube híbrida con tu data center.
  • Autenticación de Google: asignación de roles de lectura, escritura y administración.
  • Actualizaciones automáticas de Kubernetes: seguridad y continuidad.
  • Reparaciones automáticas de nodos sin afectar la aplicación.
  • Registro privado de contenedores vinculado a tu proyecto de GCP.
  • Versiones uniformes para despliegues consistentes.
  • Soporte de GPU: útil para entrenar modelos con Tensorflow.

¿Qué habilidades prácticas desarrollarás?

  • Definir despliegues reproducibles en contenedores.
  • Configurar políticas de acceso con roles.
  • Monitorear métricas y gestionar alertas.
  • Planear escalado automático según la carga.
  • Operar en híbrido mediante VPN segura.
  • Mantener seguridad y continuidad con updates y reparación automática.

¿Dónde encaja frente a otros servicios y alternativas?

GKE se sitúa entre el control total de Compute Engine y la simplicidad serverless de App Engine y Cloud Functions. Ofrece equilibrio: mayor control de despliegues e infraestructura sin la complejidad de administrar máquinas a bajo nivel.

¿Cómo se compara con Compute Engine, App Engine y Cloud Functions?

  • Compute Engine: IaaS con autoescalado, ideal para workloads generales y lift and shift.
  • App Engine: serverless con cero infraestructura para desarrolladores.
  • Cloud Functions: serverless enfocado a funciones pequeñas.
  • GKE: control fino de despliegues e infraestructura sin “ensuciarse” tanto las manos.

¿Quiénes confían en GKE?

  • Pokémon GO: backend desplegado en Google Kubernetes Engine.
  • Philips: adopción en entornos empresariales.
  • Xertika: uso interno y para clientes.

¿Qué opciones compiten en el mercado?

  • Red Hat OpenShift: fork de Kubernetes con interfaz gráfica y sistema propio de roles; open source bajo Red Hat.
  • Docker Swarm: orquestación para contenedores Docker.
  • Amazon Elastic Container Services for Kubernetes: despliegue tipo Kubernetes en AWS.
  • IBM y Azure: plataformas con soporte de Kubernetes.
  • Kubernetes se consolida como estándar de la industria: favorece despliegues portables entre nubes.

¿Con qué caso de uso te gustaría empezar: migración de una app monolítica, microservicios nuevos o integración híbrida con VPN? Comparte tus objetivos y dudas en los comentarios.