Baru-baru ini, saya menunjukkan kepada Anda cara menggunakan CouchDB sebagai server database NoSQL mandiri, yang dapat melayani Anda dengan baik dalam kasus kecil. Kali ini, saya ingin menunjukkan trik yang rapi untuk menggunakan CouchDB sebagai cluster menggunakan Docker. Meskipun metode ini mungkin tidak ideal untuk penggunaan produksi, ini adalah cara yang bagus bagi pengembang untuk dapat bekerja dengan CouchDB dalam lingkungan pengujian.
Tanpa basa-basi lagi, mari kita mulai penerapannya.
Yang Anda perlukan
Untuk membuatnya berfungsi, Anda memerlukan server dengan OS yang mendukung Docker. Saya akan mendemonstrasikan dengan Ubuntu Server 22.04, tetapi Anda dapat menggunakan platform mana pun yang Anda sukai.
Cakupan pengembang yang harus dibaca
Cara menginstal Docker
Jika Anda belum menginstal Docker, inilah cara Anda melakukannya.
Pertama, tambahkan kunci GPG Docker resmi dengan perintah:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Selanjutnya, tambahkan repositori yang diperlukan:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Instal dependensi yang diperlukan dengan:
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -y
Akhirnya, kita dapat menginstal versi terbaru dari mesin Docker:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
Tambahkan pengguna Anda ke grup buruh pelabuhan dengan perintah:
sudo usermod -aG docker $USER
Buat sistem mengetahui perubahan dengan:
newgrp docker
Cara menyebarkan wadah CouchDB
Kami akan menggunakan tiga kontainer CouchDB, masing-masing menggunakan port eksternal yang unik. Yang pertama akan menggunakan port 5984 dan di-deploy dengan:
docker run -itd -p 5984:5984 -p 5986:5986 --name=couchdb0 -e NODENAME='couchdb-0.local.com' --mount 'source=volume-0,target=/opt/couchdb/data' couchdb:2.3.0
Kontainer kedua disebarkan (menggunakan port 15984) dengan:
docker run -itd -p 15984:5984 -p 15986:5986 --name=couchdb1 -e NODENAME='couchdb-1.local.com' --mount 'source=volume-1,target=/opt/couchdb/data' couchdb:2.3.0
Kontainer terakhir di-deploy *menggunakan port 25984) dengan:
docker run -itd -p 25984:5984 -p 25986:5986 --name=couchdb2 -e NODENAME='couchdb-2.local.com' --mount 'source=volume-2,target=/opt/couchdb/data' couchdb:2.3.0
Jika Anda mengeluarkan perintah docker ps -a | grep couchdb Anda akan melihat ketiga instance aktif dan berjalan.
Cara membuat pengguna administrator
Kita sekarang perlu membuat administrator di setiap wadah. Dalam setiap contoh, ganti PASSWORD dengan kata sandi yang kuat (pastikan itu sama untuk masing-masing). Perintah untuk ini adalah:
curl -X PUT http://localhost:5984/_node/[email protected]/_config/admins/admin -d '"PASSWORD"
curl -X PUT http://localhost:15984/_node/[email protected]/_config/admins/admin -d '"PASSWORD"
curl -X PUT http://localhost:25984/_node/[email protected]/_config/admins/admin -d '"PASSWORD"''
Luar biasa. Mari kita lanjutkan.
Cara membuat jaringan Docker
Saat ini, node CouchDB tidak memiliki kesadaran satu sama lain. Untuk memperbaikinya kita perlu membuat jaringan Docker baru. Lakukan ini dengan:
docker network create -d bridge --subnet 172.25.0.0/16 isolated_nw
Dengan jaringan kami dibuat, kami sekarang harus menghubungkan wadah kami ke sana, yang dilakukan dengan menggunakan perintah berikut:
docker network connect --alias couchdb-0.local.com isolated_nw couchdb0
docker network connect --alias couchdb-1.local.com isolated_nw couchdb1
docker network connect --alias couchdb-2.local.com isolated_nw couchdb2
Sempurna.
Cara masuk ke konsol admin
Buka browser web dan arahkan ke http://server:5984, di mana SERVER adalah alamat IP dari server hosting Docker. Masuk dengan nama pengguna admin dan kata sandi yang Anda tambahkan untuk pengguna admin tadi.
Setelah Anda masuk, klik ikon kunci inggris di navigasi kiri lalu klik Konfigurasikan Cluster (Gambar A ).
Gambar A

Di jendela yang dihasilkan (Gambar B ), Anda harus mengisi kredensial admin lalu menambahkan node ke cluster.
Gambar B

Untuk menambahkan node pertama ke cluster, ketikkan couchdb-1.local.com sebagai Remote Host dan biarkan port di 5984. Setelah selesai, klik Add Node. Lakukan hal yang sama untuk node kedua menggunakan couchdb-2.local.com sebagai Host Jarak Jauh.
Setelah menambahkan kedua node, klik Configure Cluster dan Anda akan mendapatkan halaman yang menginformasikan bahwa cluster telah dikonfigurasi (Gambar C ).
Gambar C

Selamat, Anda baru saja men-deploy cluster CouchDB pertama Anda, dengan bantuan Docker.