Перейти к содержанию

docker-compose в Kubernetes манифесты

Преобразуйте сервисы docker-compose в манифесты Kubernetes Deployment и Service.

Входные данные
Выходные данные

docker-compose в Kubernetes манифесты

Вставьте файл docker-compose.yml, и этот инструмент преобразует каждый сервис в готовые к использованию Kubernetes манифесты: Deployment и, если сервис открывает порт, соответствующий Service. Он создан для разработчиков, переносящих стек на основе Compose в кластер, разрабатывающих Helm-чарт вручную или просто желающих получить первый вариант YAML вместо написания каждого поля с нуля.

Установите пространство имён и общие метки для применения к каждому генерируемому ресурсу, выберите количество реплик для каждого Deployment. Порты преобразуются в Service типа ClusterIP или NodePort в зависимости от вашего выбора, переменные окружения становятся ConfigMap или Secret, а тома становятся PersistentVolumeClaim или emptyDir — в зависимости от того, как вы планируете запускать нагрузку. Включите readiness и liveness проверки для добавления базовой TCP проверки против первого порта контейнера, и включите генерацию Ingress для открытия сервисов с портами за пределами кластера.

Пределы ресурсов Compose под deploy.resources переводятся в собственный формат Kubernetes — 0.5 cpus становится 500m, 512M становится 512Mi — и каждый сгенерированный шаблон пода получает restartPolicy: Always, единственное значение, которое принимает Deployment. Сервис без образа, портов или томов всё равно создаёт минимальный Deployment. Файл без секции top-level services: или YAML, который не удаётся разобрать, возвращает понятную ошибку с указанием строки вместо пустого результата.

Всё работает в вашем браузере: файл docker-compose никогда не покидает ваше устройство, поэтому безопасно вставлять даже рабочую конфигурацию. Скопируйте сгенерированные манифесты, загрузите их как .txt файл или отправьте результат обратно в ввод для дальнейшей доработки пространства имён, меток или количества реплик.

FAQ

Поддерживает ли она расширенный синтаксис Compose для портов и томов?
Да. Наряду с короткими строками вроде "8080:80" или "data:/var/lib/data", порты и тома, написанные в виде отображений (target, published, source), также читаются.
Почему каждый под получает restartPolicy: Always?
Шаблон пода Deployment принимает только это значение — контроллер, а не среда выполнения контейнера, решает, как реагировать на неудачный контейнер, поэтому параметр перезапуска Compose не может передаться один в один.
Может ли она генерировать Ingress для сервиса без порта?
Нет. Манифесты Service и Ingress создаются только для сервисов, которые открывают хотя бы один порт в Compose, так как больше нечего маршрутизировать.
Что происходит с ограничениями памяти и CPU?
Блок deploy.resources Compose преобразуется в количества ресурсов Kubernetes: десятичные значения CPU становятся миллиядрами (0.5 → 500m), а единицы памяти вроде M или G становятся Mi или Gi.
Загружается ли мой файл docker-compose куда-нибудь?
Нет. Преобразование выполняется полностью в вашем браузере — ваш файл docker-compose и его содержимое никогда не покидают ваше устройство.