Friday, May 19, 2017

Konfigurasi Docker Load Balancer



Hallo All, Assalamualaikum Wr.Wb
Baiklah, kali ini saya akan membahas tentang "Konfigurasi Docker Load Balancer".
Pengertian Load Balancing ?
Seperti yang kita tahu bahwa load balancing adalah sebuah teknik untuk mendistribusikan beban trafik pada 2 buah jalur atau lebih jalur koneksi agar seimbang, agar trafik berjalan optimal, memaksimalkan throughput, dan menguhindari overload pada salah satu jalur koneksi. Load Balancing juga mendistribusikan beban kerja secara merata di dua atau lebih komputer, link jaringan, CPU, hardisk, ataupun sumber daya lainnya untuk mendapatkan performa yang maksimal.

Untuk melihat cara Instalasi Docker Pada Ubuntu, kalian bisa visit link dibawah ini :
http://fahmilatiefmunir.blogspot.co.id/search?q=docker

Baik, kita langsung saja masuk pada pembahasan materi, semoga apa yang saya sampaikan dapat bermanfaat buat kalian dan bisa di sebar luaskan dengan baik.
Baik, kita akan melakukan penerapan Load Balancing Pada Docker, ujicoba ini kita siapkan sebuah host yang sudah ter-instal docker, kemudian nantinya kita akan buat 2 buah Container diatas docker tersebut. Berikut. Host dan Container yang kita pakai.
- Host Docker : server >>> IP 192.168.80.212
- Container 1 : web1.fahmi.net >>> IP 172.20.0.9
- Container 2 : web2.fahmi.net >>> IP 172.20.0.10
Baik, langsung saja masuk pada konfigurasinya.

1. Pertama, kita pastikan host sudah ter-instal Docker-engine, kemudian kita buat Container 1 dengan hostname web1.fahmi.net dan IP 172.20.0.9, sebelum membuat Container 1 kita buat terlebih dahulu network baru pada docker. Untuk membuat nya kalian bisa menggunakan perintah sebagai berikut :
docker network create --subnet=172.20.0.0/16 mynetwork
Setelah itu kalian coba cek network docker nya apakah network tersebut sudah ada atau belum. Untuk mengecek nya kalian bisa menggunakan perintah sebagai berikut :
docker network ls
Jika sudah ada, kita lanjut ke langkah berikut nya .
2. Kedua, lalu kita buat Container 1 dengan mengarahkan Network nya ke mynetwork. Untuk membuat Container 1 kalian bisa menggunakan perintah sebagai berikut :
docker run --net mynetwork --ip 172.20.0.9 --hostname web1.fahmi.net --name web1.fahmi.net -i -t ubuntu:trusty
Maka kita akan masuk tersendiri nya kedalam Container 1 dan Container 1 berjalan dengan baik.

3. Ketiga, setelah masuk kita instal Web Server Apache2 dan nano pada Container 1. Untuk menginstal nya kalian bisa menggunakan perintah sebagai berikut :
apt-get update && apt-get install apache2 nano -y
Tunggu proses update dan instalasi sampai selesai.
4. Keempat, lalu kita edit file /etc/apache2/sites-available/000-default.conf dengan editor yang sudah kita instal yaitu nano. Jika sudah masuk edit file tersebut dengan script sebagai berikut :
<VirtualHost *:80>
ServerName web1.fahmi.net
ServerAdmin admin@fahmi.net
DocumentRoot /var/www/html

<Directory /var/www/html>
Options Indexes FollowSymLinks
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
5. Kelima, lalu kalian buatlah sebuah file untuk uji coba apakah load balance nya berjalan dengan baik atau tidak. Untuk membuat nya kalian bisa menggunakan berikut :
mv /var/www/html/index.php /var/www/html/file_web1.txt
6. Keenam, lalu kalian coba restart service apacher nya. Untuk merestart nya kalian bisa menggunakan perintah sebagai berikut :
service apache2 restart
7. Ketujuh, selanjutnya kalian siapkan Container 2, pada Host Docker, cara nya sama hanya bedakan name dan hostname nya saja, sebelum melakukan nya kalian keluar terlebih dahulu dari Container 1 dengan mengetik exit, lalu lanjut kita membuat Container 2. Untuk membuat Container 2 kalian bisa menggunakan perintah sebagai berikut :
docker run --net mynetwork --ip 172.20.0.9 --hostname web2.fahmi.net --name web2.fahmi.net -i -t ubuntu:trusty
Maka kita akan masuk tersendiri nya kedalam Container 2 dan Container 2 berjalan dengan baik.

8. Kedelapan, setelah masuk kita instal Web Server Apache2 dan nano pada Container 2. Untuk menginstal nya kalian bisa menggunakan perintah sebagai berikut :
apt-get update && apt-get install apache2 nano -y
Tunggu proses update dan instalasi selesai.

9. Kesembilan, lalu kita edit file /etc/apache2/sites-available/000-default.conf dengan editor yang sudah kita instal yaitu nano. Jika sudah masuk edit file tersebut dengan script sebagai berikut :
<VirtualHost *:80>
ServerName web2.fahmi.net
ServerAdmin admin@fahmi.net
DocumentRoot /var/www/html

<Directory /var/www/html>
Options Indexes FollowSymLinks
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
10. Kesepuluh, lalu kalian buatlah sebuah file untuk uji coba apakah load balance nya berjalan dengan baik atau tidak. Untuk membuat nya kalian bisa menggunakan berikut :
mv /var/www/html/index.php /var/www/html/file_web2.txt
11. Kesebelas, lalu kalian coba restart service apacher nya. Untuk merestart nya kalian bisa menggunakan perintah sebagai berikut :
service apache2 restart
12. Kedua belas, lalu kalian coba keluar dari Container 2 dengan mengetik exit, lalu coba kalian cek apakah kedua Container sudah terbuat atau belum. Untuk mengecek nya kalian bisa menggunakan perintah sebagai berikut :
docker ps -a
13. Ketiga belas, selanjutnya untuk membuat Load Balancing, pada Host Docker kita bisa menggunakan nginx, instal terlebih dahulu nginx pada Host Docker. Untuk menginstal nya kalian bisa menggunakan perintah sebagai berikut :
apt-get install nginx -y
Tunggu sampai proses instalasi selesai.
14. Keempat belas, jika sudah selesai kalian edit file /etc/nginx/sites-available/default. Lalu kalian tambahkan script sebagai berikut :
upstream web.fahmi.net {
     server 172.20.0.9:80;
     server 172.20.0.10:80;
     }
server {
     listen 80;
     location / {
        proxy_pass http://web.fahmi.net;
     }
}
Note :
- upstream : yaitu modul yang kita akan gunakan sebagai load balancing web.fahmi.net, yang artinya jika ada yang mengakses ke web.fahmi.net akan diarahkan ke server yang didefinisikan secara seimbang.
- server : yaitu nama website yang akan digunakan untuk diakses dari luar, jika ada yang mengakses web.fahmi.net maka akan diarahkan kembali ke modul upstream yang kemudian diarahkan lagi ke server - server yang di definisikan oleh upstream.
15. Kelima belas, lalu kalian lakukan link dari /etc/nginx/siters-available/default ke /etc/nginx/sites-enabled/default. Untuk melakukan hal tersebut kalian bisa menggunakan perintah sebagai berikut :
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
16. Keenam belas, lalu kalian restart nginx nya dengan perintah sebagai berikut :
service nginx restart
17. Ketujuh belas, setelah itu kita coba akses dari browser kalian ke alamat web kalian masing masing dan reload berulang - ulang, maka hasil dari load balancing akan terlihat sebagai berikut :
Alhasil kita sudah melakukan load balancing terhadap container yang sudah kita buat tadi dan berjalan dengan baik.

Baiklah All, cukup sekian penjelasan dari saya, kurang lebih nya mohon dimaafkan, dan jika ada salah dalam tutur kata saya mohon dimaafkan pula, karena disini saya juga masih dalam proses belajar.



Oke, saya admin dari fahmi latief munir undur diri.



Wassalamualaikum Wr.Wb

1 komentar: