Explicame Kubernetes como si tuviera 5 años
El siguiente post es mi humilde traducción del inglés de la excelente explicación de Miguel Mota a la pregunta "Explicame Kubernetes como si tuviera 5 años".
La respuesta original pueden verla directamente aquí.
Docker images: pensá que son como instrucciones 1, por ejemplo las instrucciones para construir 2 una vaca.
Docker container: es como aquello que construiste con las instrucciones (docker image). En este caso, una vaca.3
Docker daemon: pensá que es como el corral donde dejás a las vacas correr libremente.
Docker swarm (y Kubernetes): pensá que es como el resero4 que maneja a las vacas.
Digamos que creás muchas vacas (docker containers) con las mismas instrucciones (docker image) y dejás a las vacas hacer sus cosas en el corral (docker daemon).
Tenés a todas tus vacas lecheras5 en un lugar y se están apretujando y comiendo todo lo que tienen a su alrededor (recursos); así que necesitás distribuirlas en otros lugares o se van a morir.
Entonces contratás a un resero que se llama Kubernetes y le decís dónde están todos los otros corrales (nodos6). El resero chequea la capacidad que puede manejar cada corral (recursos disponibles). El resero se encargará de mover a las vacas de los corrales que tienen poca comida a los más abundantes y también se encargará de construir una nueva vaca si por algún motivo alguna de las vacas muere.
El resero también es responsable de optimizar tu estancia ganadera7 lo más eficientemente posible y hacerla crecer8, siempre que le digas todos lugares a donde puede mover vacas. Podés pedirle que haga crecer la estancia hasta cierto tamaño o que la vaya ampliando dinámicamente para producir más leche9 según en el consumo diario de la población (auto-scaling).
-
Blueprint en el original, pero para mí se parece más a las instrucciones de un juego de construcción como el Mecano o Lego que a un plano (N. del T.). ↩
-
Create en el original, crear me sonaba medio mágico y construir mucho más mundano (N. del T.). ↩
-
La definición no se encuentra en el original, la agrego por completitud (N. del T.). ↩
-
Así se llama a quien arrea las reses, especialmente de ganado vacuno, en Argentina y Paraguay (N. del T.). ↩
-
Como dice la canción, todos sabemos que no son vacas cualquiera :-P (N. del T.). ↩
-
En Kubernetes un nodo es cada equipo donde pueden ejecutar los containers (ver), es decir donde corre el docker daemon (N. del T.). ↩
-
La estancia para ser precisos sería un tambo (N. del T.). ↩
-
Es decir construyendo más vacas para producir más leche (N. del T.). ↩
-
Es decir que compre o alquile más corrales y construya más vacas para ocuparlos, pero sólo por un tiempo, según la demanda (N. del T.). ↩