Kompose: Convertir de Docker a Kubernetes/OpenShift
Evolución de trabajo con Docker
La evolución lógica trabajando con contenedores pasa por empezar a trabajar con contenedores básicos, mediante Docker y sus ficheros Dockerfile, luego pasar a Docker Compose para generar stacks (grupos de contenedores que forman parte de una aplicación) mediante el uso de los ficheros docker-compose.yml
El siguiente paso es pasar a usar un entorno que aporte Alta Disponibilidad, además de disponer de la posibilidad de que los contenedores sean escalables (varias instancias de los mismo) y se puedan ejecutar en uno o varios nodos de un Cluster.
Tenemos una versión sencilla para gestionar un cluster de contenedores mediante Docker Swarm y si queremos evolucionar más disponemos de Kubernetes y OpenShift.
El transformar un fichero de Docker Compose a un entorno de Kubernetes o de OpenShift es algo que puede ser complicado por la sintaxis utilizada, sin embargo disponemos de una herramienta Kompose que facilita la conversión de tus ficheros docker-compose.yml a la sintaxis de Kubernetes/Openshift.
Instalación de Kompose
La instalación en Linux, es bastante sencilla, simplemente ejecuta los siguientes comandos:
curl -L https://github.com/kubernetes/kompose/releases/download/v1.28.0/kompose-linux-amd64 -o kompose
chmod +x kompose
sudo mv kompose /usr/local/bin/
Uso de Kompose
Para trabajar con mayor limpieza con los ficheros a generar, debemos crear dos nuevos directorios dentro de nuestro proyecto, uno lo podemos llamar kubernetes y al otro openshift.
Dentro de ellos se generarán los ficheros YAML separados para cada tipo.
Transformar fichero para Kubernetes
Para tranformar un docker-compose.yml existente a los ficheros YAML necesarios para su uso en Kubernetes, simplemente nos pasaremos al directorio de kubernetes previamente creado y le indicaramos al comando kompose donde esta el fichero que debe leer:
Tranformar fichero para OpenShift
Para transformar nuestro fichero a OpenShift hay que indicarle como opción que el proveedor a usar es 'openshift'
kompose convert --provider openshift -f ../docker-compose.yml
Aplicar ficheros en Kubernetes y OpenShift
Con nuestros ficheros creados para Kubernetes y/o OpenShift, debemos revisar previamente los Warning que se nos han mostrado en la conversión, editaremos y revisaremos para ajustar cada uno de los YAML creados.
Ahora simplemente desde la shell procesaremos todos los ficheros generados para realizar el despliegue en Kubernetes o en OpenShift.
Tras haber realizado el login en Kubernetes/OpenShift y habernos cambiado al NameSpace/Project donde queramos ejecutar los YAML ejecutaremos el comando:
Tienes toda la información necesaria en la web del proyecto de Kompose: