tg-me.com/devopsslib/3791
Last Update:
🔄 Как преобразовать 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.