Konversi Docker Compose File ke Kubernetes Resources menggunakan Kompose

Bagi seorang devops/sysadmin/sysman dituntut untuk bisa menguasai beragam toolkit,aplikasi,sistem dll padahal manusia tentu memiliki kemampuan yang berbeda-beda dalam memahami dan mempelajari sesuatu dan tentunya perlu waktu… Terkadang juga karena faktor kebiasaan menggunakan satu tool tertentu memaksa orang untuk malas/enggan mempelajari tool lain yang sebenarnya serupa. 🙂

Nah buat kamu yang terbiasa deploy container menggunakan Docker Compose dan ingin deploy pada cluster Kubernetes (k8s) tentu akan dibikin kerjaan baru dimana kita harus “menterjemahkan” aka translate file Docker Compose yang biasanya berupa file docker-compose.yml ke file YML yang compatible dengan format Kubernetes (k8s). Nah ayies kali ini akan jelaskan mengenai tool yang asik banget yaitu KOMPOSE.

Dengan Kompose ini kita bisa melakukan banyak fungsi yaitu:

  1. Melakukan konversi file docker-compose.yml ke kubernetes resources.
  2. Kompose Up dan Kompose Down
  3. build dan push docker images

Nah kali ini ayies akan jelaskan fungsi utama Kompose di poin 1 yaitu melakukan konversi. Hasillnya nanti kita bisa deploy di kubernetes langsung menggunakan kubectl.

Yuk Mulai!

Contoh katakanlah kita memiliki aplikasi sederhana dengan db-nya:

version: '2'
services:
app:
container_name: abcde-app
image: ibrahimsuprapto/abcde:1.0
restart: always
ports:
- "80"
- "443"
links:
- db
volumes:
- abcde-config:/var/www/html/abcde/app/config
- abcde-backup:/var/www/html/abcde/app/backup
db:
container_name: abcde-db
restart: always
image: mariadb:10.2
environment:
- MYSQL_ROOT_PASSWORD=abcde123!#
ports:
- "3306"
volumes:
- abcde-db:/var/lib/mysql
volumes:
abcde-config: {}
abcde-backup: {}
abcde-db: {}

Nah file docker compose tsb umumnya akan bernama docker-compose.yml kan…? Nah bagaimana jika kita ingin melakukan konversi ke kubernetes resource sehingga kita bisa deploy langsung di kubernetes. Gunakan Kompose! Caranya yaitu:

Install Kompose

#Untuk Linux
curl -L https://github.com/kubernetes/kompose/releases/download/v1.16.0/kompose-linux-amd64 -o kompose

#Untuk macOS
curl -L https://github.com/kubernetes/kompose/releases/download/v1.16.0/kompose-darwin-amd64 -o kompose

#Untuk Windows
curl -L https://github.com/kubernetes/kompose/releases/download/v1.16.0/kompose-windows-amd64.exe -o kompose.exe

chmod +x kompose
sudo mv kompose /usr/bin/kompose

Masuk ke folder lokasi docker-compose berada. Contoh:

cd abcde-folder

kompose convert

Dari hasil konvert 1 file docker-compose maka akan menghasilkan beberapa file YML (kubernetes resources) .

Konversi Docker Compose File ke Kubernetes Resources menggunakan Kompose

Nah beberapa file YAML tersebut (kecuali docker-compose.yml) tersebut bisa langsung kita deploy di kubernetes dengan cara

kubectl apply -f file1.yaml,file2.yaml,file3.yaml dan seterusnya sesuai file2 yaml yang ada.

Contoh:

kubectl apply -f app-deployment.yaml,app-service.yaml,db-deployment.yaml  (pisahkan dengan koma)

Mudah bukan? Tool yang sangat membantu yah!


0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *