Aller au contenu
Tout en local

Manifeste docker-compose vers Kubernetes

Convertissez les services docker-compose en manifestes Kubernetes Deployment et Service.

Entrée
Sortie

Manifeste docker-compose vers Kubernetes

Collez un fichier docker-compose.yml et cet outil convertit chaque service en manifestes Kubernetes prêts à appliquer : un Deployment, et, lorsque le service publie un port, un Service correspondant. Il est conçu pour les développeurs qui déplacent une pile basée sur Compose vers un cluster, qui rédigent un Helm chart à la main, ou qui veulent simplement un premier jet du YAML au lieu d'écrire chaque champ à partir de zéro.

Définissez un espace de noms et des labels communs à appliquer à chaque ressource générée, et choisissez le nombre de répliques que chaque Deployment doit exécuter. Les ports se convertissent en un Service ClusterIP ou NodePort selon votre choix, les variables d'environnement deviennent un ConfigMap ou un Secret, et les volumes deviennent un PersistentVolumeClaim ou un emptyDir — selon votre façon d'exécuter la charge de travail. Activez les sondes de disponibilité et de permanence pour ajouter une vérification TCP basique contre le premier port du conteneur, et activez la génération d'Ingress pour exposer les services portant un port en dehors du cluster.

Les limites de cpus et de mémoire de Compose sous deploy.resources sont traduites dans le format de quantité de Kubernetes : 0.5 cpus devient 500m, 512M devient 512Mi, et chaque modèle de pod généré obtient restartPolicy: Always, la seule valeur qu'un Deployment accepte. Un service sans image, ports ou volumes produit quand même un Deployment minimal. Un fichier sans section services: au niveau supérieur, ou du YAML qui ne s'analyse pas, renvoie un message d'erreur clair nommant la ligne au lieu d'un résultat vierge.

Tout s'exécute dans votre navigateur : le fichier compose ne quitte jamais votre appareil, il est donc sûr de coller la configuration de production. Copiez les manifestes générés, téléchargez-les en tant que fichier .txt, ou renvoyez le résultat directement à l'entrée pour continuer à affiner l'espace de noms, les labels ou le nombre de répliques.

FAQ

Supporte-t-il la syntaxe longue de Compose pour les ports et les volumes?
Oui. Aux côtés de chaînes courtes comme "8080:80" ou "data:/var/lib/data", les ports et volumes écrits sous forme de mappages (target, published, source) sont également lus.
Pourquoi chaque pod obtient-il restartPolicy: Always?
Le modèle de pod d'un Deployment n'accepte que cette valeur — un contrôleur, pas le runtime du conteneur, décide comment réagir à un conteneur défaillant, donc le paramètre de redémarrage de Compose ne peut pas se transposer un-à-un.
Peut-il générer un Ingress pour un service sans port?
Non. Les manifestes Service et Ingress ne sont créés que pour les services qui publient au moins un port dans Compose, car il n'y a rien sur lequel router le trafic autrement.
Qu'advient-il des limites de mémoire et de CPU?
Le bloc deploy.resources de Compose se convertit en quantités de ressources Kubernetes : les valeurs de CPU décimales deviennent des millicores (0.5 → 500m) et les unités de mémoire comme M ou G deviennent Mi ou Gi.
Mon fichier docker-compose est-il chargé quelque part?
Non. La conversion s'exécute entièrement dans votre navigateur — votre fichier compose et son contenu ne quittent jamais votre appareil.