
Pada artikel ini, saya ingin memberikan informasi bagaimana langkah konfigurasi high availability pada Docker Swarm cluster
Sebelum memulai konfigurasi, mungkin saya ingin coba review singkat apa itu Docker Swarm. Docker Swarm adalah fitur yang dimiliki Docker dimana Docker Swarm dapat bertindak sebagai Orchestrator. Dengan adanya Orchestrator, container container dapat dikelola oleh Orchestrator.
Berikut beberapa fitur yang dapat dilakukan oleh orchestrator, dalam hal ini yang dibahas adalah Docker Swarm:
- Cluster management
- Scaling
- Service discovery
- Load balancing
- Rolling update
Dalam Docker Swarm cluster, terdapat dua jenis node yang dibagi menjadi:
- Manager : bertugas sebagai cluster management, schedule service, menjalankan swarm mode HTTP API
- Worker : bertugas sebagai eksekutor yang menjalankan container
Dalam sebuah cluster bisa berjalan node yang bertugas sebagai Manager dan Worker di node yang sama (Single Node Cluster), 1 Manager dengan beberapa Worker. Ataupun Node dengan beberapa Manager.
Hal ini yang menjadi tujuan atau goal dari High Availability cluster, dimana dalam sebuah cluster, terdapat beberapa manager. Sehingga jika salah 1 manager down atau tidak dapat menjalankan tugasnya, node manager lain yang tersedia atau available dapat menggantikan tugas node manager sebelumnya
Namun dalam sebuah Docker Swarm cluster, perlu diingat bahwa terdapat algoritma Raft. Tujuannya adalah menjaga konsistensi dalam swarm cluster
Sesuai dengan dokumentasi dari Docker
Disarankan agar dalam sebuah high available swarm cluster, jumlah node yang ada dalam cluster adalah ganjil. Tujuannya adalah menjaga quorum dari jumlah manager.
An N manager cluster tolerates the loss of at most (N-1)/2 managers
Berikut kutipan dari dokumentasi Docker terkait quorum pada swarm cluster. Jumlah manager yang tidak dapat diakses harus berjumlah n-1/2 dari total manager
Mungkin cukup sekian untuk penjelasan singkat dari konsep Docker Swarm, jika teman-teman ingin membaca lebih detail terkait Docker Swarm, silahkan klik link dokumentasi yang saya infokan
Pada artikel ini, saya menggunakan environment Linux Ubuntu versi 20.04 dengan Docker version 19.03.11. Dengan total node sebanyak 3 buah, yang ketiganya bertindak sebagai manager dan worker
Berikut langkah langkah di dalam konfigurasi High Availability pada Docker Swarm Cluster:
-
Initialisasi awal Docker Swarm cluster pada node yang akan menjadi manager pertama. Masukkan juga ip address dari ip node tersebut. Berikut contoh commandnya:
docker swarm init --advertise-addr [ip_address]
-
Pastikan swarm sudah aktif. Ketik command
docker info
-
Pada node yang sudah menjadi manager, tampilkan informasi join token manager, agar node kedua dan ketiga dapat join ke swarm cluster. Ketik command berikut:
docker swarm join token manager
-
Masukkan command join token pada node kedua dan ketiga. Pastikan node sudah dapat bergabung atau join ke swarm cluster
-
Pastikan pada node, bahwa swarm cluster sudah aktif dengan total node 3 dan manager juga sudah berjumlah 3. Ketik
docker info
-
Untuk informasi lebih detail, dapat ketik command
docker node ls
. Pastikan bahwa node sudah terdiri dari 3 node manager, dengan 1 leader dan 2 node lain berstatus reachable
Semoga informasi ini dapat membantu teman teman dalam konfigurasi high availability pada docker swarm cluster
Tinggalkan Balasan