====== Docker Compose в кластер Kubernetes: как преобразовать ====== Часто в процессе разработки используется Docker Compose, который предназначен для управления многоконтейнерными приложениями в одном узле. Но все вокруг говорят о кубере, поэтому сегодня покажем как преобразовать ваши контейнеры в кластер на k8s с помощью kompose. **1. Подготовка Docker Compose файла** Допустим, у вас уже есть файл docker-compose.yml для вашего приложения. Пример простого Docker Compose файла: version: '3' services: app: image: myapp:latest ports: - "8080:80" environment: - APP_ENV=production db: image: postgres:alpine environment: - POSTGRES_DB=mydb - POSTGRES_USER=user - POSTGRES_PASSWORD=password **2. Использование Kompose для преобразования** Для упрощения процесса преобразования конфигурации Docker Compose в Kubernetes, можно использовать инструмент Kompose. Он автоматически конвертирует ваш docker-compose.yml файл в манифесты Kubernetes. Как и любой быстроразвивающийся проект kompose лучше ставить напрямую от разработчиков: sudo curl -L https://github.com/kubernetes/kompose/releases/download/v1.27.0/kompose-linux-amd64 -o /usr/local/bin/kompose sudo chmod +x /usr/local/bin/kompose После установки Kompose, выполните следующую команду для конвертации: kompose convert -f docker-compose.yml Kompose создаст несколько файлов YAML для Kubernetes, например: • app-deployment.yaml — для деплоймента приложения. • app-service.yaml — для создания Kubernetes-сервиса. • db-deployment.yaml — для деплоймента базы данных. • db-service.yaml — для сервиса базы данных. **3. Деплой на Kubernetes** Теперь, когда у вас есть манифесты Kubernetes, вы можете развернуть приложение в кластере. Применение манифестов: kubectl apply -f app-deployment.yaml kubectl apply -f app-service.yaml kubectl apply -f db-deployment.yaml kubectl apply -f db-service.yaml Если все прошло успешно, ваше приложение будет развернуто в Kubernetes.