Container Orchestration dengan Docker Swarm pada AlmaLinux 8
0 people liked this article
Docker Swarm adalah sebuah tools yang memungkinkan Anda untuk mengelola dan mengatur cluster dari mesin Docker host. Ini merupakan bagian dari ekosistem Docker yang digunakan untuk orkestrasi aplikasi berbasis container. Dengan Docker Swarm, Anda dapat membuat sebuah cluster dari beberapa host Docker yang bekerja bersama-sama untuk menjalankan aplikasi yang terdistribusi sebagai container.
A. Persiapan
Server
- VPS AlmaLinux 8.5 (NVC/NEO Lite)
- 1 manager node
- 3 worker node
- Docker v25.0.3
Port
- 2377 TCP untuk komunikasi cluster management
- 7946 TCP dan UDP untuk komunikasi sesama node
- 4789 UDP untuk overlay network
B. Instalasi dan Konfigurasi
Langkah 1 - Setup hosts dengan menjalankan perintah berikut pada setiap node
~# nano /etc/hosts
192.168.20.11 manager manager.bgncloud
192.168.20.21 worker1 worker1.bgncloud
192.168.20.22 worker2 worker2.bgncloud
192.168.20.23 worker3 worker3.bgncloud
Langkah 2 - Swarm Init di manager node
Server pada artikel ini menggunakan NEO Virtual Compute dimana memiliki Public IP dan Pirvate IP, sehingga untuk komunikasi Docker swarm akan menggunakan Private IP
[root@manager almalinux]# docker swarm init --advertise-addr 192.168.20.11
Hasil perintah di atas
Swarm initialized: current node (fcwcyehfib9g8of5wfa1b3ynq) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-036wdx1tiyri1ogis4s5qivc5cv7w0ah401djvurwba9ma3yjz-3ovcxusr6s9vck8dpt3ipshom 192.168.20.11:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
Langkah 3 – Join sebagai worker
Jalankan perintah berikut di setiap worker node untuk join ke manager node
~# docker swarm join --token SWMTKN-1-036wdx1tiyri1ogis4s5qivc5cv7w0ah401djvurwba9ma3yjz-3ovcxusr6s9vck8dpt3ipshom 192.168.20.11:2377
Hasil perintah di atas
This node joined a swarm as a worker.
Untuk menampilkan semua node yang ada, jalankan perintah berikut di manager node.
[root@manager almalinux]# docker node ls
Hasil perintah di atas
Langkah 4 - Membuat Swarm service
Pada artikel ini akan mensimulasikan Nginx dengan 3 replikasi container dan berjalan di port 80
[root@manager almalinux]# docker service create --name myweb --replicas 3 -p 80:80 nginx
Hasil perintah di atas
Tampilkan semua service
[root@manager almalinux]# docker service ls
Hasil perintah di atas
Dapat dilihat bahwa service myweb (nginx) direplikasi menjadi 3 container yang berjalan di node worker1, worker2, dan worker3
Mengecek container yang berjalan di worker2
C. Uji Coba
Buka browser lalu ketikan http://Public-IP-Manager untuk menguji apakah Nginx sudah running dan bisa diakses.
Hasil uji coba Nginx sudah berjalan dan bisa diakses, tetapi tidak diketahui worker yang manakah yang melayanan request dari browser, Maka dari itu, perlu mengubah page index.html menjadi keterangan nama container dan worker.
Di worker1 jalankan perintah berikut
[root@worker1 almalinux]# docker ps
[root@worker1 almalinux]# echo "myweb.1@worker1" > index.html
[root@worker1 almalinux]# docker cp index.html myweb.1.jy62erhdkuqf3obnfyxf8ncgn:/usr/share/nginx/html
Di worker2 jalankan perintah berikut
[root@worker2 almalinux]# docker ps
[root@worker2 almalinux]# echo "myweb.2@worker2" > index.html
[root@worker2 almalinux]# docker cp index.html myweb.2.jdm2njkqylup96s99x1mpqav9:/usr/share/nginx/html
Di worker2 jalankan perintah berikut
[root@worker3 almalinux]# docker ps
[root@worker3 almalinux]# echo "myweb.3@worker3" > index.html
[root@worker3 almalinux]# docker cp index.html myweb.3.e3s15kwcega2zirxiw3e793ab:/usr/share/nginx/html
Kemudian uji coba akses menggunakan curl.
[root@manager almalinux]# curl http://Public-IP-Manager
Hasil nya memperlihatkan bahwa request dari curl direspon secara bergantian
D. Scaling
Service myweb (Nginx) yang saat ini berjalan dengan 3 replikasi. Jumlah replikasinya dapat dinaikkan atau diturunkan, misalnya ingin menaikkan menjadi 7 replikasi.
Jalankan perintah berikut pada manager node
[root@manager almalinux]# docker service scale myweb=7
Hasil perintah di atas
Cek kembali informasi proses pada service myweb (Nginx)
[root@manager almalinux]# docker service ps myweb
Dapat dilihat bahwa 4 replikasi tambahan tersebar di worker node (myweb.5 – 7)
E. Penutup
Selamat! Anda sudah bisa menjalankan Container Orchestration dengan Docker Swarm pada AlmaLinux 8. Semoga artikel ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silahkan hubungi support@biznetgio.com atau (021) 5714567.
Popular Articles
-
Cara Install & Konfigurasi Monitoring Cacti Serta Mengetahui Fungsi Fitur Pada Cacti
9 people say this guide was helpful
-
Cara Mengaktifkan Telnet pada Windows 7, 8 dan 10
3 people say this guide was helpful
-
Instalasi DNS Server Menggunakan Service Bind di CentOS 7
4 people say this guide was helpful
-
Jenis-Jenis Software Virtualisasi untuk Membuat Virtual Machine
5 people say this guide was helpful