Advertisement

Memahami Konsep Docker Swarm dan Orkestrasi Container

 

“Mengelola satu container itu gampang. Mengelola puluhan container? Selamat datang di dunia yang penuh tantangan!”

Ketika aplikasi semakin besar, menjalankan satu atau dua container secara manual sudah tidak cukup. Kita butuh alat yang bisa:

  Menjalankan banyak container di berbagai server.
  Mengatur scaling (menambah/mengurangi container sesuai beban kerja).
  Mengelola komunikasi antar container dengan mudah.
  Menjaga aplikasi tetap berjalan walaupun ada container yang mati.

Nah, di sinilah Docker Swarm berperan!

1. Apa Itu Docker Swarm?

Docker Swarm adalah fitur orkestrasi bawaan Docker yang memungkinkan kita mengelola banyak container dalam sebuah cluster dengan mudah.

 Singkatnya, Docker Swarm mengubah beberapa server menjadi satu kesatuan yang bisa kita kelola sebagai satu entitas besar.

 Analogi sederhana:
Bayangkan Docker Swarm seperti segerombolan semut pekerja. Mereka bekerja sama secara otomatis untuk menjalankan tugas-tugas tanpa perlu instruksi manual dari ratu semut (yaitu kita sebagai admin server).

2. Kenapa Harus Pakai Docker Swarm?

Docker Swarm memiliki beberapa keunggulan dibanding menjalankan container secara manual:

Fitur Docker Swarm Docker Standar
Scaling otomatis  Ya  Tidak
Load balancing  Ya  Tidak
Cluster management  Ya  Tidak
Self-healing (restart otomatis container yang mati)  Ya  Tidak
Deployment mudah  Ya  Tidak

Dengan Docker Swarm, kita bisa mengatur sekumpulan server untuk bekerja sama seperti satu server besar!

3. Struktur Dasar Docker Swarm

Sebuah cluster Docker Swarm terdiri dari:

1️ Manager Node

  • Bertanggung jawab mengelola cluster.
  • Menjalankan perintah untuk menambah atau menghapus container.
  • Bisa lebih dari satu untuk redundansi (biar kalau satu mati, yang lain masih bisa jalan).

2️ Worker Node

  • Menjalankan container yang diperintahkan oleh Manager.
  • Hanya mengikuti instruksi tanpa memutuskan sendiri.

 Contoh ilustrasi sederhana:

+--------------------+
| Manager Node       |   
| (Mengelola Cluster)|
+--------------------+
      |       
      | Menjalankan tugas ke Worker Nodes
      v       
+--------------------+  +--------------------+  +--------------------+
| Worker Node 1      |  | Worker Node 2      |  | Worker Node 3      |
| (Menjalankan Apps) |  | (Menjalankan Apps) |  | (Menjalankan Apps) |
+--------------------+  +--------------------+  +--------------------+

 Intinya: Manager Node memimpin, Worker Node bekerja!


4. Cara Membuat Cluster Docker Swarm

(a) Inisialisasi Docker Swarm

Pertama, jalankan perintah ini di Manager Node untuk menginisialisasi Swarm:

docker swarm init --advertise-addr <IP_MANAGER>

Misalnya:

docker swarm init --advertise-addr 192.168.1.100

Jika berhasil, akan muncul output seperti ini:

Swarm initialized: current node (abcd1234) is now a manager.

Dan juga perintah untuk menambahkan worker:

docker swarm join --token SWMTKN-1-xxxxx <IP_MANAGER>:2377

(b) Menambahkan Worker Node ke Cluster

Jalankan perintah join tadi di server Worker:

docker swarm join --token SWMTKN-1-xxxxx 192.168.1.100:2377

 Sekarang Worker Node sudah terhubung ke Swarm Manager!

Cek daftar node dengan perintah:

docker node ls

Outputnya akan menunjukkan daftar node dalam cluster:

ID                            HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
abcd1234                      manager-node    Ready   Active        Leader
efgh5678                      worker-node-1   Ready   Active        
ijkl9101                      worker-node-2   Ready   Active        

 Cluster Swarm kamu sudah siap!

5. Menjalankan Layanan di Docker Swarm

Docker Swarm menggunakan konsep services untuk menjalankan aplikasi.

Misalnya, kita ingin menjalankan Nginx dengan 3 replika:

docker service create --name web --replicas 3 -p 8080:80 nginx

 Penjelasan perintah:

  • --name web → Nama layanan.
  • --replicas 3 → Menjalankan 3 container Nginx.
  • -p 8080:80 → Menghubungkan port 8080 host ke 80 di container.

Cek apakah layanan berjalan:

docker service ls

Hasilnya:

ID            NAME  MODE    REPLICAS  IMAGE
abcd1234      web   replicated 3/3   nginx

Sekarang, Nginx berjalan di tiga container yang tersebar di beberapa node!

6. Scaling Layanan Secara Dinamis

Jika trafik meningkat, kita bisa menambah jumlah container tanpa menghentikan layanan:

docker service scale web=5

Sekarang, ada 5 container Nginx yang berjalan!

Cek statusnya dengan:

docker service ps web

7. Menghapus Layanan di Docker Swarm

Kalau mau menghapus layanan:

docker service rm web

Sekarang, semua container Nginx akan dihentikan dan dihapus dari cluster!

8. Kesimpulan: Docker Swarm Itu Keren!

 Docker Swarm memudahkan pengelolaan banyak container.
  Bisa melakukan load balancing dan scaling otomatis.
  Memiliki fitur self-healing (container mati akan otomatis diganti).
  Mudah digunakan tanpa perlu alat orkestrasi tambahan.

 Docker Swarm cocok untuk:

  • Proyek kecil hingga menengah.
  • Orkestrasi container yang ringan.
  • Pengelolaan cluster tanpa kompleksitas Kubernetes.

Sekarang, kamu sudah paham konsep Docker Swarm dan orkestrasi container

Coba buat Swarm sendiri dan lihat keajaibannya!

Post a Comment

0 Comments