Por qué orquestar contenedores
Bienvenida
Bienvenido a Kubernetes en 40 minutos. Esta píldora es para quien ya usó Docker alguna vez y quiere entender qué es Kubernetes, por qué casi todas las nubes lo ofrecen y qué errores de configuración lo vuelven peligroso.
Son cuatro lecciones cortas, un laboratorio en el que despliega, expone y escala un nginx en su propia computadora, y un quiz de 4 preguntas, unos 40 minutos en total. Necesita Docker, kind y kubectl instalados. Al terminar podrá explicar el estado deseado, distinguir pod, deployment y service, moverse con kubectl en un clúster local y reconocer tres riesgos que aparecen en casi toda auditoría.
Qué es Kubernetes y por qué importa
Un contenedor empaqueta una aplicación con todo lo que necesita para correr igual en cualquier máquina. Con uno o dos, docker run alcanza. Con cincuenta repartidos en varios servidores, aparecen preguntas que ningún docker run contesta.
El problema de los muchos contenedores
Café Volcán, una tienda en línea ficticia, corre en tres servidores: un frontend, una API y un servicio de pagos, cada uno en contenedores. Un martes al mediodía pasa todo esto:
- Un servidor se apaga por una falla de disco. ¿Quién levanta sus contenedores en otro lado?
- Sale una promoción y el tráfico se triplica. ¿Quién arranca más copias de la API?
- Hay versión nueva del frontend. ¿Cómo se actualiza sin cortar el servicio?
- La API cambió de servidor. ¿Cómo la encuentra el frontend si su IP ya no es la misma?
Todo eso se puede resolver a mano con scripts y madrugadas, y muchos equipos lo hicieron así durante años. Funciona hasta que la persona que escribió los scripts se va de vacaciones. Coordinar contenedores de forma automática se llama orquestación.
Qué hace Kubernetes
Kubernetes es un orquestador de contenedores de código abierto. El nombre viene del griego y significa "timonel"; K8s es la abreviatura, con un 8 en lugar de las ocho letras del medio. Google lo publicó en 2014, a partir de su experiencia con su sistema interno Borg, y en 2015 lo cedió a la Cloud Native Computing Foundation (CNCF), que lo mantiene.
La idea central es el estado deseado. Usted no dice "arranque este contenedor ahora", sino "quiero que siempre haya tres copias de la API". Kubernetes compara sin parar lo pedido con lo que está corriendo y corrige la diferencia: si una copia muere, crea otra; si un nodo desaparece, reparte su carga en los nodos sanos. Esa misma lógica explica casi todo lo que verá en el laboratorio.
Un clúster tiene dos partes:
- El plano de control, que guarda el estado deseado y toma decisiones. Su puerta de entrada es el servidor de API.
- Los nodos de trabajo, que ejecutan los contenedores.
Usted habla con el plano de control mediante kubectl, la herramienta de línea de comandos de esta píldora.
Por qué le importa a seguridad
Kubernetes junta mucho poder en un solo punto. Quien controla el servidor de API puede correr cualquier contenedor en cualquier nodo, con los permisos que quiera. Por eso los hallazgos graves en clústeres casi nunca son fallas exóticas: son una credencial con permisos de más o un contenedor con privilegios que nadie revisó. Para encontrarlos hay que conocer primero las piezas, y eso es lo que hacen las dos lecciones siguientes.