Pages - Menu

Monday, September 25, 2017

Membangun Komputer Cluster Raspberry Pi Menggunakan Docker Swarm

Salah satu hal luar biasa yang bisa kita lakukan dengan Raspberry Pi adalah merangkainya menjadi sebuah komputer cluster. Ada banyak tools yang bisa kita gunakan, salah satunya menggunakan Docker Swarm. Dokumentasi beserta penjelasan2 lengkap mengenai Docker Swarm silahkan baca di https://docs.docker.com/engine/swarm/

Pada bagian ini akan dijelaskan langkah instalasi Docker Swarm pada Raspberry Pi 3, dengan asumsi, kalian sudah mempersiapkan Perangkat keras yang dibutuhkan seperti :

1. Raspberry Pi 3 (>2 buah)
2. SD Card
3. Kabel LAN
4. Switch Hub
5. USB Hub Charger min 2A tiap node
6. Spacer untuk aksesoris


Langkah pertama yang harus dilakukan adalah memastikan perangkat keras sudah terlengkapi, kemudian rangkai semua menjadi satu. Ada banyak referensi untuk merangkai perangkat2 keras tsb, kalau kalian punya modal lumayan banyak, bisa memesan menggunakan jasa 3D print, namun jika tidak cukup menggunakan spacer yang dijual di toko elektronik sekitar rumah kalian dengan harga Rp 2000.

sumber : hypriot.com

Problem :
Ukuran lubang spacer pada board Raspi sebenarnya berukuran M2.5, dan ternyata sangat sulit mencari spacer ukuran tsb di Negara ini, sebagai alternatif kita bisa menggunakan spacer ukuran M3 namun dengan sedikit memodifikasi (memperlebar lubang spacer) board raspi. Gunakan bor tangan + mata bor ukuran 3mm kemudian lubangi board dengan kecepatan paling rendah. berhati-hatilah!
Inilah bor yang saya gunakan. Lumayan besar, jadi harus berhati-hati ya...
sumber : blibli.com

Langkah selanjutnya adalah instalasi Raspbian pada setiap Raspi, rasanya ini tidak perlu saya jelaskan panjang lebar, sudah banyak artikel bertebaran tentang topik ini. Jangan lupa untuk mengaktifkan SSH agar pekerjaan selanjutnya dapat kita remote. Kemudian beri nama hostname untuk setiap Raspi (Saya menamakannya Pi01, Pi02, Pi03, dst).
Referensi :
1. Instalasi Raspbian
2. Mengaktifkan SSH
3. Memberi nama hostname

Next, kita mulai instalasi Docker Swarm dan kawan-kawannya.
  1. Instalasi Docker
    ketikkan perintah berikut pada command shell di setiap Raspi

    sudo curl -sSL https://get.docker.com | sh
  2. Buat Swarm
    Setelah Docker terpasang, lakukan inisiasi swarm pada salah satu node menggunakan IP node tsb.

    sudo docker swarm init --advertise-addr 172.17.1.42

    Note :
    Urutan langkah-langkah yang akan kita lakukan:
    a. Inisiasi swarm pada salah satu node (node ini yang akan dikondisikan sebagai manager)
    b. Join satu node lainnya sebagai manager
    c. Join node-node lainnya sebagai worker
    Jadi pada akhirnya, kita akan memiliki total 2 manager dan 2 worker, dengan asumsi kita memiliki 4 buah Raspi.
  3. Setelah diinisiasi, maka akan muncul token yang nantinya digunakan untuk join node-node lainnya

    docker swarm join
    --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c
    172.17.1.42:2377


    Simpan token tsb, namun sebenarnya kita dapat men-generate ulang token apabila diperlukan.
  4. Untuk mengetahuhi apakah swarm telah berjalan, ketikkan perintah berikut

    sudo docker node ls
  5. Menambahkan Node

    Tambahkan node lainnya sebagai worker dengan perintah yang kita dapatkan pada langkah 3 :

    docker swarm join
    --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c
    172.17.1.42:2377


    Untuk menambahkan node lainnya sebagai manager, yang harus kita lakukan adalah men-generate token khusus join manager. Ketikkan perintah berikut untuk mendapatkan token join manager :

    sudo docker swarm join-token manager

    Setelah token berhasil di-generate, silahkan gunakan token tsb untuk menambahkan manager, caranya sama seperti menambahkan node worker namun dengan token berbeda.

    Kemudian cek kembali status swarm dengan perintah :
    sudo docker node ls
  6. Untuk memudahkan pemantauan swarm via web, kita bisa memasang service visualizer yang dibuat oleh User Github ManoMarks.

    Ketikkan perintah berikut di terminal Pi01:

    sudo docker service create
    --name viz
    --publish 8080:8080/tcp
    --constraint node.role==manager
    --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock
    alexellis2/visualizer-arm:latest


    Setelah selesai, silahkan buka browser dan arahkan ke alamat http://172.17.1.42:8080 (IP Pi01 dan port 8080)
  7. Swarm siap dipasang service lainnya (ex. Web Server, dll)

Note :

  1. Untuk melepas node dari swarm ketikkan perintah berikut
    sudo docker swarm leave --force
  2. Error dapat terjadi saat menambahkan node, salah satunya error seperti berikut :
    "Error response from daemon: error while validating Root CA Certificate: x509: certificate has expired or is not yet valid"
    untuk mengatasinya, silahkan sesuaikan zona waktu pada setiap Raspi, ketiksudo raspi-configlalu pilih "Localisation Options" > "I2 Change Timezone" > Pilih Sesuai negara dan kota kamu. Reboot Raspi untuk memastikan perubahan. Jika masih terdapat error seperti diatas saat menambahkan node, silahkan reboot Router kamu.

2 comments:

  1. kalo menngunakan 2 raspi yang berbeda bagimana pak, bisa atau gak ?

    ReplyDelete
  2. butuh koneksi internet yah atau bisa tidak ? terima kasih pak

    ReplyDelete