Convert Docker Compose to Kubernetes Resources

kompose merupakan tool untuk membantu pengguna yang terbiasa dengan docker-compose agar dapat memindahkannya ke Kubernetes. kompose mengambil file Docker Compose lalu menerjemahkannya menjadi konfigurasi resource di kubernetes.

Install Kompose

Untuk menginstall kompose di linux.

curl -L https://github.com/kubernetes/kompose/releases/download/v1.30.0/kompose-linux-amd64 -o kompose
chmod +x kompose
sudo mv ./kompose /usr/local/bin/kompose

Anda dapat menentukan versi kompose melalui GitHub release page

Use Kompose

Buat sample docker-compose.yml seperti berikut.

version: "2"

services:

  redis-master:
    image: registry.k8s.io/redis:e2e
    ports:
      - "6379"

  redis-slave:
    image: gcr.io/google_samples/gb-redisslave:v3
    ports:
      - "6379"
    environment:
      - GET_HOSTS_FROM=dns

  frontend:
    image: gcr.io/google-samples/gb-frontend:v4
    ports:
      - "80:80"
    environment:
      - GET_HOSTS_FROM=dns
    labels:
      kompose.service.type: LoadBalancer

Untuk convert file docker-compose.yml.

kompose convert -f docker-compose.yml
INFO Kubernetes file "frontend-tcp-service.yaml" created
INFO Kubernetes file "redis-master-service.yaml" created
INFO Kubernetes file "redis-slave-service.yaml" created
INFO Kubernetes file "frontend-deployment.yaml" created
INFO Kubernetes file "redis-master-deployment.yaml" created
INFO Kubernetes file "redis-slave-deployment.yaml" created

Deploy output konfigurasi ke dalam cluster.

kubectl delete -f frontend-tcp-service.yaml,redis-master-service.yaml,redis-slave-service.yaml,frontend-deployment.yaml,redis-master-deployment.yaml,redis-slave-deployment.yaml