High Availability pada Docker Swarm Cluster

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

Dokumentasi 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:

  1. 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]

    Image

  2. Pastikan swarm sudah aktif. Ketik command docker info

    Image

  3. 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

    Image

  4. Masukkan command join token pada node kedua dan ketiga. Pastikan node sudah dapat bergabung atau join ke swarm cluster

    Image

  5. Pastikan pada node, bahwa swarm cluster sudah aktif dengan total node 3 dan manager juga sudah berjumlah 3. Ketik docker info

    Image

  6. 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

    Image

Semoga informasi ini dapat membantu teman teman dalam konfigurasi high availability pada docker swarm cluster

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

Situs yang Didukung WordPress.com.

Atas ↑

%d blogger menyukai ini: