Membuat Load Balancer Container Docker

833-06322904

Selamat siang menuju senja para pembaca, pada kali saya akan membagikan sebuah jurnal mengenai pembuatan load balancer pada Docker Container. Konsep yang digunakan pada jurnal kali ini adalah konsep dari High Availability. Sebenarya Docker sudah menggunakan konsep ini pada swarm cluster. Tetapi pada kali ini saya tidak akan menggunakan swarm cluster, karena saya menggunakan Nginx pada sebuah container sebagai load balancer container yang lainnya.

Topologinya adalah sebagai berikut:
Selection_210
dari gambar diatas bisa kita lihat segala traffic HTTP yang mengarah ke node akan di handle oleh container NGINX Load Balancer. Kemudian dari Container NGINX Load Balancer tersebut akan me-redirect traffic HTTP ke salah satu container Hello World di node1 maupun node2. Pemilihan Container Hello World Mana yang akan dipakai sebagai tujuan redirect dilakukan dengan algoritma Round-Robin. Container Hello World disini adalah sebuah container yang menjalankan service NGINX di dalamnya dengan halaman web yang berisi hanya tulisan Hello World. Disini kita akan menggunakan image tutum/hello-world sebagai container Hello World.

oke mari kita mulai:
jalankan beberapa perintah dibawah ini pada Node1.
Pertama-tama download image tutum/hello-world dan nginx

docker pull tutum/hello-world
docker pull nginx

kemudian lakukan instalasi image tersebut pada container. disini kita akan membuat 3 container yaitu 2 Container Hello World dan sebuah container Nginx yang nantinya akan dipakai sebagai load balancer. saat menjalankan ketiga container nanti kita juga akan melakukan porting dari container ke docker host.

docker run --name con1 -p 8080:80 -di tutum/hello-world
docker run --name con2 -p 8081:80 -di tutum/hello-world
docker run --name nginx -p 80:80 -di nginx

pastikan ketiga container yang telah kita buat dapat berjalan melalui web browser. jalankan http://ip-node1 , http://ip-node1:8080, http://ip-node1:8081. Apabila ketiga alamat tersebut dapat diakses maka ketiga container yang telah kita buat tadi berhasil berjalan.

selanjutnya jalankan perintah berikut pada node2.

Pertama-tama download image tutum/hello-world telebih dahulu

docker pull tutum/hello-world

kemudian lakukan instalasi image tutum/hello-world pada container, disini kita akan membuat 2 container yang berisi image tutum/hello-world

docker run --name con1 -p 8080:80 -di tutum/hello-world
docker run --name con2 -p 8081:80 -di tutum/hello-world

setelah itu lakukan pgngecekan pada web browser.

Kemudian Konfigurasi Nginx Container pada node1.
Pertama-tama masuka ke container nginx terlebih dahulu

docker exec -ti nginx /bin/bash

kemudian pastekan sintax berikut di dalam container


echo "upstream servers {
server ip_node1:8080;
server ip_node2:8080;
server ip_node1:8081;
server ip_node2:8081;
}

# This server accepts all traffic to the port 80 and passes it to the upstream.
# Notice that the upstream name and the proxy_pass need to match.

server {
listen 80;

location / {
proxy_pass http://servers;
}
}” > /etc/nginx/conf.d/default.conf

Perintah diatas bertujuan untuk me-redirect setiap koneksi http ke node1 ke upstream servers. Upstream servers disini adalah 4 container hello-World.

Setelah menjalankan syntax diatas reboot container nginx.

docker restart nginx

untuk mengecek apakah load balancing kita sudah berhasil atau belum buka http://ip_address_node1. kemudian lakukan beberapa kali refresh pada browser maka otomatis halaman website ip address tersebut akan bergonta-ganti hostname.
Demikian Jurnal Gulo sore ini, Selamat Menunggu Senja dan Berbuka puasa 😀

Iklan

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 )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s