Thursday, May 18, 2017

Konfigurasi Docker Swarm Cluster


Hallo All, Assalamualaikum Wr.Wb
Baiklah, kali ini saya akan membahas tentang "Konfigurasi Docker Swarm Cluster".
Ketika berbicara tentang High Availability, disini Docker pun bisa juga dibuat skema seperti High Availability menjadi Docker Swarm / Docker Cluster, dimana ada banyak host docker saling melakukan load balancing untuk menyamakan kecepatan dan kestabilan server dan diatur oleh satu host docker yang di namakan swarm manager. Swarm Manager ini bertugas seperti yang kita tahu yaitu mengatur Node-Node mana saja yang sedang tersedia untuk bisa menjalankan sebuah Container.

Untuk mengetahui lebih jelas nya tentang Docker kalian bisa visit link di bawah ini :
http://fahmilatiefmunir.blogspot.co.id/2017/05/penjelasan-tentang-docker.html 
dan jika kalian ingin mengetahui tentang bagaimana cara Instalasi Docker kalian bisa visit link di bawah ini :

Baiklah, kita langsung saja masuk pada pembahasan, kalian harus membutuhkan akses internet yang lancar, dan semoga apa yang saya bahas kali ini bisa bermanfaat, Aamiin.

Baik, untuk melakukan konfigurasi ini, saya telah menyiapkan 3 buah server, dimana nanti 3 buah server ini kita gunakan sebagai berikut :
a. Server -> Consul Discovery, Swarm Manager, Shipyard Controller, Local Registry.  (192.168.80.212)
b. Node 1 -> Swarm Node 1 (192.168.80.213)
c. Node 2 -> Swarm Node 2 (192.168.80.214)
Sebelum melakukan konfigurasi, pastikan Docker Engine telah ter-instal pada semua node yang ada. Untuk melihat konfigurasi nya bisa di lihat link yang telah saya masukan diatas.
Baik, kita masuk pada konfigurasi nya.

1. Tambahkan script pada node 1 dan node 2 pada file /etc/default/docker , di dalam file tersebut kalian edit dan tambahkan script sebagai berikut pada baris paling bawah :
DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
--cluster-store=consul://192.168.80.212:8500
--cluster-advertise=192.168.80.xxx:2375"
Penjelasan :
- DOCKER_OPTS yaitu jenis perintah yang akan kita gunakan.
- -H yaitu sebagai host yang digunakan.
- tcp://0.0.0.0 yaitu protokol yang tersambung pada semua IP.
- 2375 yaitu port default docker tanpa menggunakan TLS.
- unix:///var/run/docker.sock yaitu soket untuk menjalankan service docker.
- --cluster-store yaitu perintah yang menyatakan tujuan cluster bergabung kemana.
- consul://192.168.80.212:2375 yaitu tujuan cluster harus bergabung kemana.
- --cluster-advertise=192.16.80.xxx:2375 diganti menjadi IP dari masing - masing Node, dan berfungsi untuk meminta izin kepada manager bahwa IP node ingin join kepada manager dan juga status join nya.
2. Setelah itu kita lakukan restart pada masing - masing server dan node, untuk melakukan restart kalian bisa menggunakan perintah sebagai berikut :
service docker restart
3. Setelah itu kita akan melakukan Setup Discovery Backend, dimana proses ini dilakukan hanya pada server dimana server tersebut menjadi tempat penyimpanan informasi dan juga mengidentifikasi node - node yang tersedia untuk menjalankan Container. untuk melakukan Setup Discovery Backend kalian bisa menggunakan perintah sebagai berikut :
docker run -d --restart=always --name=consul -h consul -p 8500:8500 progrium/consul -server -bootstrap
dan kalian tunggu sampai proses pulling selesai.

4. Setelah itu kita akan membuat Cluster Swarm dimana swarm manager yang bertugas untuk mengatur Node mana saja yang sedang tersedia dan mengizinkan Node mana saja yang boleh bergabung dengan Docker Swarm / Cluster Swarm. Untuk melakukan nya kalian bisa menggunakan perintah sebagai berikut :
docker run -d --restart=always --name=swarm-manager -h swarm-manager -p 4000:4000 swarm manage -H :4000 --replication --advertise 192.168.80.212:4000 consul://192.168.80.212:8500
Penjelasan :
- --advertise 192.168.80.212:4000 yaitu IP Server tersebut.
- consul://192.168.80.212:8500 yaitu IP Server yang bertugas sebagai swarm manager.
5. Setelah itu kita lakukan join pada node 1 agar node 1 bisa tergabung dengan swarm manager. Untuk melakukan hal tersebut kalian bisa menggunakan perintah sebagai berikut :
docker run -d --restart=always --name=swarm-node1 -h swarm-node1 swarm join --advertise=192.168.80.213:2375 consul://192.168.80.212:8500
Penjelasan :
untuk perintah baris pertama relatif sama fungsi nya seperti yang lain nya, yang membedakan nya itu mulai dari bari kedua dari perintah tersebut "swarm join --advertise=192.168.80.213:2375 consul://192.168.80.212:8500 " maksud dari perintah ini yang mebedakan perintah yang satu ini dengan yang lain nya, jadi isi perintah versi manusiawi nya seperti ini, node1 ini ingin gabung "alamat saya 192.168.80.213 menggunakan port 2375 nah untuk tujuan nya saya ingin gabung ke alamat 192.168.80.212 dengan port 8500

6. Setelah itu kita lakukan join pada node 2 agar node 2 bisa tergabung dengan swarm manager. Untuk melakukan hal tersebut kalian bisa menggunakan perintah sebagai berikut :
docker run -d --restart=always --name=swarm-node2 -h swarm-node2 swarm join --advertise=192.168.80.214:2375 consul://192.168.80.212:8500
Maka kedua node tersebut telah bergabung kedalam cluster swarm.
 
7. Setelah itu kita cek apakah node 1 dan node 2 benar - benar tergabung kedalam cluster swarm atau belum. Untuk mengecek nya kalian bisa menggunakan perintah sebagai berikut :
docker -H :4000 info
Maka nanti hasil nya akan seperti gambar dibawah ini.

Pada hasil diatas sudah terlihat bahwa node 1 dan node 2 telah bergabung kedalam swarm / cluster. Masing - masing node memiliki ram 2 GB, ketika sudah digabungkan maka total ram menjadi 4 GB.

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

0 komentar

Post a Comment