PostgreSQL adalah salah satu database yang dapat digunakan melalui ClusterControl, bersama dengan MySQL, MariaDB, dan MongoDB. ClusterControl tidak hanya menyederhanakan penerapan cluster database, tetapi juga memiliki fungsi untuk skalabilitas jika aplikasi Anda berkembang dan memerlukan fungsionalitas tersebut.
Dengan meningkatkan skala database, aplikasi Anda akan berjalan lebih lancar dan lebih baik jika beban aplikasi atau lalu lintas meningkat. Dalam posting blog ini, kami akan meninjau langkah-langkah tentang cara melakukan penerapan serta peningkatan PostgreSQL v13 dengan ClusterControl 1.8.2.
Penerapan Antarmuka Pengguna (UI)
Ada dua cara penerapan di ClusterControl, Antarmuka Pengguna web (UI) serta Antarmuka Baris Perintah (CLI). Pengguna memiliki kebebasan untuk memilih salah satu opsi penerapan tergantung pada keinginan dan kebutuhan mereka. Kedua opsi ini mudah diikuti dan didokumentasikan dengan baik dalam dokumentasi kami. Di bagian ini, kita akan melalui proses penerapan menggunakan opsi pertama - UI web.
Langkah pertama adalah masuk ke ClusterControl Anda dan klik Deploy:
Anda akan disajikan tangkapan layar di bawah untuk langkah penerapan selanjutnya , pilih tab PostgreSQL untuk melanjutkan:
Sebelum kita melangkah lebih jauh, saya ingin mengingatkan Anda bahwa hubungan antara node ClusterControl dan node database harus tanpa kata sandi. Sebelum penerapan, yang perlu kita lakukan adalah membuat ssh-keygen dari node ClusterControl dan kemudian menyalinnya ke semua node. Isi inputan untuk SSH User, Sudo Password serta Cluster Name sesuai kebutuhan Anda dan klik Continue.
Pada tangkapan layar di atas, Anda perlu menentukan Port Server (di jika Anda ingin menggunakan orang lain), pengguna yang Anda inginkan serta kata sandi dan pastikan untuk memilih Versi 13 yang ingin Anda instal.
Penulis fotoDeskripsi fotoDi sini kita perlu mendefinisikan server baik menggunakan nama host atau alamat IP, seperti dalam hal ini 1 master dan 2 budak. Langkah terakhir adalah memilih mode replikasi untuk cluster kami.
Setelah Anda mengeklik Deploy, proses penerapan akan dimulai dan kami dapat memantau kemajuan di tab Aktivitas.
Penyebaran biasanya akan memakan waktu beberapa menit, kinerja sebagian besar bergantung pada jaringan dan spesifikasi server.
Sekarang kita telah menginstal PostgreSQL v13 menggunakan ClusterControl GUI yang cukup mudah .
Penerapan PostgreSQL Antarmuka Baris Perintah (CLI)
Dari atas, kita dapat melihat bahwa penerapannya cukup mudah menggunakan UI web. Catatan penting adalah bahwa semua node harus memiliki koneksi SSH tanpa kata sandi sebelum penerapan. Di bagian ini, kita akan melihat cara menyebarkan menggunakan ClusterControl CLI atau baris perintah alat "s9s".
Kami berasumsi bahwa ClusterControl telah diinstal sebelumnya, mari kita mulai dengan membuat ssh-keygen. Di node ClusterControl, jalankan perintah berikut:
$ whoami
root
$ ssh-keygen -t rsa # generate the SSH key for the user
$ ssh-copy-id 10.10.40.11 # pg node1
$ ssh-copy-id 10.10.40.12 # pg node2
$ ssh-copy-id 10.10.40.13 # pg node3
Setelah semua perintah di atas berhasil dijalankan, kami dapat memverifikasi koneksi tanpa kata sandi dengan menggunakan perintah berikut:
$ ssh 10.10.40.11 "whoami" # make sure can ssh without password
Jika perintah di atas berjalan dengan sukses, penyebaran cluster dapat dimulai dari server ClusterControl menggunakan baris perintah berikut:
$ s9s cluster --create --cluster-type=postgresql --nodes="10.10.40.11?master;10.10.40.12?slave;10.10.40.13?slave" --provider-version='13' --db-admin="postgres" --db-admin-passwd="[email protected]$$W0rd" --cluster-name=PGCluster --os-user=root --os-key-file=/root/.ssh/id_rsa --log
Tepat setelah Anda menjalankan perintah di atas, Anda akan melihat sesuatu seperti ini yang berarti tugas sudah mulai berjalan:
Cluster akan dibuat pada 3 node data.
Memverifikasi parameter tugas.
10.10.40.11: Checking ssh/sudo with credentials ssh_cred_job_6656.
10.10.40.12: Checking ssh/sudo with credentials ssh_cred_job_6656.
10.10.40.13: Checking ssh/sudo with credentials ssh_cred_job_6656.
…
…
This will take a few moments and the following message will be displayed once the cluster is deployed:
…
…
Directory is '/etc/cmon.d'.
Filename is 'cmon_1.cnf'.
Configuration written to 'cmon_1.cnf'.
Sending SIGHUP to the controller process.
Waiting until the initial cluster starts up.
Cluster 1 is running.
Registering the cluster on the web UI.
Waiting until the initial cluster starts up.
Cluster 1 is running.
Generated & set RPC authentication token.
Anda juga dapat memverifikasinya dengan masuk ke konsol web, menggunakan nama pengguna yang telah Anda buat. Sekarang kami memiliki cluster PostgreSQL yang digunakan menggunakan 3 node. Jika Anda ingin mempelajari lebih lanjut tentang perintah penerapan di atas, berikut adalah referensi terbaik untuk Anda.
Meningkatkan PostgreSQL dengan UI ClusterControl
PostgreSQL adalah database relasional dan kita tahu bahwa menskalakan jenis database ini tidak mudah dibandingkan dengan database non-relasional. Saat ini, sebagian besar aplikasi membutuhkan skalabilitas untuk memberikan kinerja dan kecepatan yang lebih baik. Ada banyak cara untuk mengimplementasikannya tergantung pada infrastruktur dan lingkungan Anda.
Skalabilitas adalah salah satu fitur yang dapat difasilitasi oleh ClusterControl dan dapat dicapai baik menggunakan UI maupun CLI. Di bagian ini, kita akan melihat bagaimana kita dapat menskalakan PostgreSQL menggunakan ClusterControl UI. Langkah pertama adalah login ke UI Anda dan pilih cluster, setelah cluster dipilih, Anda dapat mengklik opsi seperti screenshot di bawah ini:
Setelah “Add Replication Slave” diklik, Anda akan melihat halaman berikut . Anda dapat memilih "Tambah baru ..." atau "Impor ..." tergantung pada situasi Anda. Dalam contoh ini kita akan memilih opsi pertama:
Layar berikut akan ditampilkan setelah Anda mengkliknya:
Penulis fotoDeskripsi foto-
Nama Host Slave:nama host/alamat IP dari slave atau node baru
-
Slave Port:port PostgreSQL dari slave, defaultnya adalah 5432
-
Nama Cluster:nama cluster, Anda dapat menambahkan atau mengosongkannya
-
Gunakan Paket Default untuk Datadir:Anda dapat mencentang opsi ini pada hapus centang jika Anda ingin memiliki lokasi yang berbeda untuk Datadir
-
Instal perangkat lunak PostgreSQL:Anda dapat membiarkan opsi ini dicentang
-
Replikasi Sinkron:Anda dapat memilih jenis replikasi yang Anda inginkan dalam hal ini
-
Sertakan dalam set LoadBalancer (jika ada):opsi ini akan diperiksa jika Anda telah mengonfigurasi LoadBalancer untuk cluster
Catatan penting utama di sini adalah Anda harus mengonfigurasi slave host baru agar tanpa kata sandi sebelum Anda dapat menjalankan penyiapan ini. Setelah semuanya dikonfirmasi, kita dapat mengklik tombol "Selesai" untuk menyelesaikan pengaturan. Dalam contoh ini, saya telah menambahkan IP “10.10.40.140”.
Sekarang kita dapat memantau aktivitas pekerjaan dan membiarkan penyiapan selesai. Untuk mengonfirmasi pengaturan, kita dapat membuka tab “Topologi” untuk melihat budak baru:
Meningkatkan PostgreSQL dengan ClusterControl CLI
Untuk menambahkan node baru ke dalam cluster yang ada sangat sederhana menggunakan CLI. Dari node controller, Anda menjalankan perintah berikut. Perintah pertama adalah mengidentifikasi cluster yang ingin kita tambahkan node barunya:
$ s9s cluster --list --long
ID STATE TYPE OWNER GROUP NAME COMMENT
1 STARTED postgresql_single admin admins PGCluster All nodes are operational.
Dalam contoh ini, kita dapat melihat bahwa ID node adalah “1” untuk nama cluster “PGCluster”. Mari kita lihat opsi perintah pertama tentang cara menambahkan node baru ke cluster PostgreSQL yang ada:
$ s9s cluster --add-node --cluster-id=1 --nodes="postgresql://10.10.40.141?slave" --log
Singkatan “--log” di akhir baris akan memungkinkan kita melihat apa tugas yang sedang berjalan setelah perintah dijalankan seperti di bawah ini:
Using SSH credentials from cluster.
Cluster ID is 1.
The username is 'root'.
Verifying job parameters.
Found a master candidate: 10.10.40.11:5432, adding 10.10.40.141:5432 as a slave.
Verifying job parameters.
10.10.40.11: Checking ssh/sudo with credentials ssh_cred_cluster_1_6245.
10.10.40.11:5432: Loading configuration file '/var/lib/pgsql/13/data/postgresql.conf'.
10.10.40.11:5432: wal_keep_segments is set to 0, increase this for safer replication.
…
…
Perintah selanjutnya yang tersedia yang dapat Anda gunakan adalah seperti berikut:
$ s9s cluster --add-node --cluster-id=1 --nodes="postgresql://10.10.40.142?slave" --wait
Tambahkan Node ke Cluster
\ Job 9 RUNNING [▋ ] 5% Installing packages
Perhatikan bahwa ada tulisan “--wait” di baris dan output yang akan Anda lihat akan ditampilkan seperti di atas. Setelah proses selesai, kami dapat mengonfirmasi node baru di tab “Ringkasan” cluster dari UI:
Kesimpulan
Dalam posting blog ini, kami telah meninjau dua opsi untuk menskalakan PostgreSQL di ClusterControl. Seperti yang mungkin Anda perhatikan, menskalakan PostgreSQL mudah dilakukan dengan ClusterControl. ClusterControl tidak hanya dapat melakukan skalabilitas tetapi Anda juga dapat mencapai pengaturan ketersediaan tinggi untuk cluster database Anda. Fitur seperti HAProxy, PgBouncer, serta Keepalive tersedia dan siap diimplementasikan untuk klaster Anda kapan pun Anda membutuhkan opsi tersebut. Dengan ClusterControl, cluster database Anda mudah dikelola dan dipantau secara bersamaan.
Kami berharap entri blog ini akan membantu memandu Anda dalam menskalakan penyiapan PostgreSQL Anda.