Часто в процессе разработки используется 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.