Przejdź do treści
100% lokalnie

docker-compose do manifestu Kubernetes

Konwertuj usługi docker-compose do manifestów Kubernetes Deployment i Service.

Wejście
Wynik

docker-compose do manifestu Kubernetes

Wklej plik docker-compose.yml a to narzędzie konwertuje każdą usługę na gotowe manifesty Kubernetes: Deployment i, gdy usługa eksponuje port, odpowiadającą Service. Zostało stworzone dla deweloperów przenoszących stos oparty na Compose do klastra, tworzących ręcznie Helm chart lub po prostu chcących pierwszego przejścia YAML zamiast pisania każdego pola od zera.

Ustaw namespace i wspólne etykiety, które będą stemplowane na każdy wygenerowany zasób, i wybierz, ile replik każde Deployment ma uruchamiać. Porty konwertują się na usługę ClusterIP lub NodePort w zależności od Twojego wyboru, zmienne środowiskowe stają się ConfigMap lub Secret, a woluminy stają się PersistentVolumeClaim lub emptyDir — w zależności od tego, jak planujesz uruchamiać obciążenie. Włącz sondy gotowości i aktywności, aby dodać podstawową kontrolę TCP dla pierwszego portu kontenera, i włącz generowanie Ingress, aby wyeksponować usługi z portami poza klastrem.

Limity CPU i pamięci z sekcji deploy.resources w Compose są tłumaczone na format Kubernetes — 0,5 cpus staje się 500m, 512M staje się 512Mi — a każdy wygenerowany szablon poda otrzymuje restartPolicy: Always, jedyną wartość, którą Deployment akceptuje. Usługa bez obrazu, portów lub woluminów wciąż tworzy minimalny Deployment. Plik bez sekcji top-level services: lub YAML, który się nie parsuje, zwraca jasny błąd z numerem linii zamiast pustego wyniku.

Wszystko działa w Twojej przeglądarce: plik compose nigdy nie opuszcza Twojego urządzenia, więc bezpiecznie możesz wkleić konfigurację produkcyjną. Skopiuj wygenerowane manifesty, pobierz je jako plik .txt lub wyślij wynik bezpośrednio z powrotem do wejścia, aby nadal udoskonalać namespace, etykiety lub liczbę replik.

Częste pytania

Czy obsługuje długą składnię Compose dla portów i woluminów?
Tak. Obok krótkich łańcuchów takich jak "8080:80" lub "data:/var/lib/data" są również odczytywane porty i woluminy napisane jako mapowania (target, published, source).
Dlaczego każdy pod ma restartPolicy: Always?
Szablon poda Deployment akceptuje tylko tę wartość — kontroler, nie sam runtime kontenera, decyduje jak reagować na nieudany kontener, więc ustawienie restart Compose nie może zostać przeniesione one-to-one.
Czy może wygenerować Ingress dla usługi bez portu?
Nie. Manifesty Service i Ingress są tworzone tylko dla usług, które eksponują co najmniej jeden port w Compose, ponieważ nie ma czego kierować.
Co się stanie z limitami pamięci i CPU?
Blok deploy.resources Compose konwertuje się na ilości zasobów Kubernetes: dziesiętne wartości CPU stają się millicore (0,5 → 500m) a jednostki pamięci takie jak M lub G stają się Mi lub Gi.
Czy mój plik docker-compose jest przesyłany gdziekolwiek?
Nie. Konwersja przebiega całkowicie w Twojej przeglądarce — Twój plik compose i jego zawartość nigdy nie opuszczają Twoje urządzenie.