2018-02-04 16:28

Kompose: Migrar tus archivos Docker Compose a Kubernetes

En un post anterior desplegamos un cluster de pruebas con contenedores usando Kubernetes y Minikube. Este esquema resulta util cuando lo que se quiere es desplegar y escalar un contenedor.

Sin embargo, muchas aplicaciones Docker comenzaron a orquestarse utilizando mas de un contenedor para hacer funcionar la misma. Por ejemplo, un contenedor con un web server, otro para la base de datos relacional, y un tercero para una base nosql.

Para este tipo de esquemas surgio docker-compose. Permitia de forma sencilla administrar la configuracion varios contenedores en simultaneo cuya imagen origen eran diferentes.

Para lograr un comportamiento similar con Kubernetes, existe la herramienta Kompose. Kompose nos permite tomar el contenido de un archivo docker-compose.yml y realizar las mismas acciones, pero utilizando Kubernetes.

Uso basico

Como siempre, nos salteamos la parte de instalacion dado que es sencilla y se encuentra documentada en la pagina oficial.

Kompose es muy sencilla de utilizar. Puede hacer 2 tareas principales:

  • Tomar un archivo docker-compose.yml y convertirlo a archivos de configuracion de Kubernetes.
  • Ejecutar el archivo docker-compose.yml directamente sin generar nuevos archivos.

La forma mas sencilla de utilizar es la segunda, dado que contamos con un proyecto con un archivo docker-compose.yml o en general conocemos ese formato bastante. Entonces se ejecuta

kompose up

y eso ya levanta con Kubernetes todos los contenedores indicados.

Troubleshooting

kompose up

WARN Unsupported root level volumes key - ignoring 
WARN Unsupported depends_on key - ignoring        
WARN Volume mount on the host "." isn't supported - ignoring path on the host