Provisioning Docker Swarm on Ubuntu

Gilang Virga Perdana
4 min readOct 27, 2021

Selamat pagi, siang, sore dan malam kepada kalian semua. Kembali lagi dengan saya, Gilang. Kali ini saya ingin mencoba instalasi Docker Swarm sebagai Container Orchestration. Mungkin kalian semua lebih sering mendengar Kubernetes (K8s) seperti yang pernah saya tulis di https://gilangvperdana.medium.com/installation-kubernetes-cluster-baremetal-4d70e733ea15 . Nah, Docker Swarm ini mirip seperti Kubernetes juga loh. Langsung saja, kita akan mencoba untuk instalasi / membangun Cluster Docker Swarm pada Linux Ubuntu 20.04.

Environment :

1. 3x Ubuntu 20.04 Server LTS.

2. RAM 4GB & 2VCPU.

3. Disk 50GB (root).

Topology :

Langkah Instalasi :

Lakukan pada setiap node.

1. Persiapkan networking IP pada masing masing node :

Karena Docker Swarm (Container Orchestrator) berbentuk sebuah Cluster (disini 1 node sebagai Manager dan 2 Node sebagai Worker) maka dari ketiga node tersebut harus bisa saling terkoneksi, dengan ini mari kita atur networking pada file /hosts agar memudahkan kita memanggil node — node dengan nama yang sudah kita define.

$ sudo vim /etc/hosts10.152.0.13 manager10.152.0.14 worker-0110.152.0.15 worker-02

Silahkan sesuaikan dengan environment masing masing dan lakukan pada setiap node.

2. Instalasi Docker CE :

$ sudo apt update$ sudo apt install apt-transport-https ca-certificates curl software-properties-common$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -$ sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable”$ sudo apt-get update$ apt-cache policy docker-ce #to check$ sudo apt install docker-ce$ sudo systemctl status docker #to check$ sudo usermod -aG docker ${USER}

Pastikan sudah running di ketiga node :

3. Buat cluster Docker Swarm :

Untuk membuat cluster Docker Swarm, silahkan untuk inisialisasi terlebih dahulu yaitu dengan mengeksekusi command berikut pada Node Manager.

$ sudo docker swarm init — advertise-addr 10.152.0.13Dengan 10.152.0.13 adalah IP private node Manager.

4. Gabung pada cluster baru :

Silahkan untuk input syntax yang diberikkan untuk keperluan join pada cluster. Silahkan execute pada semua Node Worker.

$ docker swarm join — token SWMTKN-1–0w2fwc3a3cri0r8fga0h814jim0madns288l1aiznqrfsbgfrx-f1zahfxy66nfw4piywrtdjwyw 10.152.0.13:2377Silahkan sesuaikan dengan environment masing masing.

5. Verifikasi Node telah Join ke Cluster :

Silahkan verifikasi pada Node Manager untuk melihat apakah node Worker sudah join dengan cara.

$ sudo docker node ls

Jika sudah join semua, akan seperti ini hasilnya.

Terlihat, jika semua sudah terdeteksi tandanya kita berhasil membangun cluster Docker Swarm.

6. Verifikasi kelancaran Cluster Docker Swarm :

Kita akan sedikit mencoba apakah cluster ini berjalan dengan baik atau tidak, yaitu dengan cara deploy sebuah image dan kita akan coba mengaksesnya. Seperti container orchestartor pada umumnya, kita hanya menjalankan perintah container di Node Manager saja.

$ sudo docker service create — name test-deploy — publish 80:80 gilangvperdana/apps:bubble

Kita akan cek apakah sudah berjalan :

$ sudo docker service ls

Karena image ini berbasis WEB, maka kita akan coba akses pada WEB :

Terlihat, aplikasi sudah berjalan dengan baik.

7. Mencoba replika container yang ada :

$ sudo docker service ls$ sudo docker service scale test-deploy=3

“test-deploy” adalah nama dari service yang kita buat tadi, silahkan sesuaikan dengan environment masing masing. Dan kita akan membuat me-replica menjadi 3.

Kita akan verifikasi replica yang sudah terkonfigurasi :

$ sudo docker service ls

Kita coba akses kembali :

Terlihat, aplikasi sudah berjalan dengan baik juga. Silahkan untuk explore sendiri terhadap fitur fitur ampuh dari Docker Swarm sendiri. Demikian dari saya, terima kasih kepada para pembaca, semoga bermanfaat.

Terima kasih.

--

--