Dalam tutorial ini, kami akan memandu Anda langkah demi langkah tentang cara membuat Server Web Nginx Cluster Ketersediaan Tinggi dengan Pacemaker, Corosync, dan Pcsd. Kami akan membuat server web Nginx Active-Passive Cluster atau Failover-cluster menggunakan Pacemaker pada sistem CentOS 7.
Alat pacu jantung adalah perangkat lunak manajer cluster open source yang mencapai ketersediaan tinggi maksimum layanan Anda. Ini adalah manajer klaster HA tingkat lanjut dan skalabel yang didistribusikan oleh ClusterLabs.
Corosync Cluster Engine adalah proyek open source yang berasal dari proyek OpenAIS di bawah Lisensi BSD baru. Ini adalah sistem komunikasi grup dengan fitur tambahan untuk menerapkan Ketersediaan Tinggi dalam aplikasi.
Ada beberapa aplikasi untuk antarmuka Pacemaker. Pcsd adalah salah satu antarmuka baris perintah Pacemaker dan GUI untuk mengelola Pacemaker. Kita dapat membuat, mengkonfigurasi, atau menambahkan node baru ke cluster dengan perintah pcsd pcs.
Prasyarat
- 2 atau lebih CentOS 7 Server
- web01 10.0.15.10
- web02 10.0.15.11
- web03 10.0.15.12
- Alamat IP Mengambang 10.0.15.15
- Keistimewaan Root
Apa yang akan kami lakukan:
- Petakan File Host
- Instal Repositori Epel dan Nginx
- Memasang dan Mengonfigurasi Alat Pacu Jantung, Corosync, dan Pcsd
- Membuat dan Mengonfigurasi Cluster
- Nonaktifkan STONITH dan Abaikan Kebijakan Kuorum
- Tambahkan Floating-IP dan Sumber Daya
- Tambahkan Aturan ke Cluster
- Konfigurasi Firewalld
- Uji penyiapan
Langkah 1 - Petakan File Host
Catatan : Jalankan langkah 1 - 3 di semua server web01, web02, dan web03.
Langkah pertama yang harus kita lakukan adalah mengedit file host di setiap server untuk memetakan hostname semua server. Kami memiliki server 'web01', 'web02' dan 'web03', login ke setiap server dengan akun ssh.
ssh [email protected][01,02,03]
Edit file '/etc/hosts' dengan vim.
vim /etc/hosts
Tempelkan konfigurasi berikut di sana.
10.0.15.10 web01
10.0.15.11 web02
10.0.15.12 web03
Simpan dan keluar.
Sekarang uji konfigurasi pemetaan host.
ping -c 3 web01
ping -c 3 web02
ping -c 3 web03
Pastikan 'web01', 'web02', dan 'web03' dipetakan ke alamat IP yang benar.
Langkah 2 - Instal Repositori Epel dan Nginx
Pada langkah ini, kita akan menginstal repositori epel dan kemudian menginstal server web Nginx. Repositori EPEL atau Paket Ekstra untuk Enterprise Linux diperlukan untuk menginstal paket Nginx.
Instal Repositori EPEL menggunakan perintah yum berikut.
yum -y install epel-release
Sekarang instal server web Nginx dari repositori EPEL.
yum -y install nginx
Setelah penginstalan selesai, ubah halaman index.html default di setiap server dengan halaman baru.
#Run Command on 'web01'
echo '<h1>web01 - hakase-labs</h1>' > /usr/share/nginx/html/index.html
#Run Command on 'web02'
echo '<h1>web02 - hakase-labs</h1>' > /usr/share/nginx/html/index.html
#Run Command on 'web03'
echo '<h1>web03 - hakase-labs</h1>' > /usr/share/nginx/html/index.html
Repositori EPEL dan server web Nginx sekarang terinstal di sistem.
Langkah 3 - Instal dan konfigurasikan Alat Pacu Jantung, Corosync, dan Pcsd
Alat pacu jantung, Corosync, dan Pcsd tersedia di repositori sistem default. Jadi semuanya dapat diinstal dari repositori CentOS menggunakan perintah yum berikut.
yum -y install corosync pacemaker pcs
Setelah penginstalan selesai, aktifkan semua layanan untuk diluncurkan secara otomatis saat boot sistem menggunakan perintah systemctl di bawah.
systemctl enable pcsd
systemctl enable corosync
systemctl enable pacemaker
Sekarang jalankan antarmuka baris perintah alat pacu jantung pcsd di semua server.
systemctl start pcsd
Selanjutnya, buat kata sandi baru untuk pengguna 'hacluster' dan gunakan kata sandi yang sama untuk semua server. Pengguna ini telah dibuat secara otomatis selama penginstalan perangkat lunak.
Berikut cara mengonfigurasi sandi untuk 'hacluster ' pengguna.
passwd hacluster
Enter new password:
Tumpukan perangkat lunak Ketersediaan Tinggi Alat pacu jantung, Corosync, dan Pcsd diinstal ke sistem.
Langkah 4 - Buat dan Konfigurasikan Cluster
Catatan :Jalankan langkah 4 - 7 di 'web01' saja.
Pada langkah ini, kita akan membuat cluster baru dengan 3 centos server. Kemudian konfigurasikan alamat IP Mengambang dan tambahkan resource Nginx baru.
Untuk membuat cluster, kita perlu mengotorisasi semua server menggunakan perintah pcs dan pengguna hacluster.
Otorisasi semua server dengan perintah pcs dan pengguna serta kata sandi hacluster.
pcs cluster auth web01 web02 web03
Username: hacluster
Password: [email protected]
Sekarang saatnya mengatur cluster. Tentukan nama cluster dan semua server yang akan menjadi bagian dari cluster.
pcs cluster setup --name hakase_cluster web01 web02 web03
Sekarang mulai semua layanan cluster dan aktifkan juga.
pcs cluster start --all
pcs cluster enable --all
Selanjutnya, periksa status cluster.
pcs status cluster
Langkah 5 - Nonaktifkan STONITH dan Abaikan Kebijakan Kuorum
Karena kami tidak menggunakan perangkat anggar, kami akan menonaktifkan STONITH. STONITH atau Shoot The Other Node In The Head adalah penerapan anggar pada alat pacu jantung. Jika Anda sedang dalam produksi, lebih baik aktifkan STONITH.
Nonaktifkan STONITH dengan perintah pcs berikut.
pcs property set stonith-enabled=false
Selanjutnya, untuk kebijakan Kuorum, abaikan saja.
pcs property set no-quorum-policy=ignore
Periksa daftar properti dan pastikan stonith dan kebijakan kuorum dinonaktifkan.
pcs property list
Kebijakan STONITH dan Kuorum dinonaktifkan.
Langkah 6 - Tambahkan Floating-IP dan Sumber Daya
Floating IP adalah alamat IP yang dapat dimigrasikan/dipindahkan secara otomatis dari satu server ke server lain di Pusat Data yang sama. Dan kami telah menetapkan alamat IP mengambang untuk Ketersediaan Tinggi Pacemaker menjadi '10.0.15.15'. Sekarang kita ingin menambahkan dua sumber daya, sumber daya alamat IP Mengambang dengan nama 'virtual_ip' dan sumber daya baru untuk server web Nginx bernama 'server web'.
Tambahkan alamat IP mengambang sumber daya baru 'virtual_ip' menggunakan perintah pcs seperti yang ditunjukkan di bawah ini.
pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=10.0.15.15 cidr_netmask=32 op monitor interval=30s
Selanjutnya, tambahkan sumber daya baru untuk 'server web' Nginx.
pcs resource create webserver ocf:heartbeat:nginx configfile=/etc/nginx/nginx.conf op monitor timeout="5s" interval="5s"
Pastikan Anda tidak mendapatkan hasil kesalahan, lalu periksa sumber daya yang tersedia.
pcs status resources
Anda akan melihat dua sumber 'virtual_ip' dan 'server web'. Sumber daya baru untuk IP Terapung dan server web Nginx telah ditambahkan.
Langkah 7 - Tambahkan Aturan Batasan ke Cluster
Pada langkah ini, kita akan menyiapkan Aturan Ketersediaan Tinggi, dan akan menyiapkan batasan sumber daya dengan antarmuka baris perintah pcs.
Tetapkan batasan pemeriksaan untuk server web dan sumber daya virtual_ip dengan skor 'INFINITY'. Selain itu, siapkan server web dan resource virtual_ip sebagai sama di semua node server.
pcs constraint colocation add webserver virtual_ip INFINITY
Setel sumber daya 'virtual_ip' dan 'server web' selalu di server simpul yang sama.
pcs constraint order virtual_ip then the webserver
Selanjutnya, hentikan cluster lalu mulai lagi.
pcs cluster stop --all
pcs cluster start --all
Sekarang, periksa kembali sumber daya dan Anda akan melihat statusnya sebagai 'Dimulai' di server yang sama 'web01'.
pcs status resources
virtual_ip dan sumber daya server web telah dimulai pada server/node yang sama 'web01'.
Langkah 8 - Konfigurasi Firewalld
HA-Cluster akan berjalan di bawah konfigurasi firewall firewalld - instal jika Anda tidak memiliki paketnya.
yum -y install firewalld
Mulai firewalld dan aktifkan untuk berjalan secara otomatis setiap kali sistem boot menggunakan perintah systemctl berikut.
systemctl start firewalld
systemctl enable firewalld
Selanjutnya, tambahkan layanan baru ke firewalld dengan perintah firewall-cmd - tambahkan layanan ketersediaan tinggi, HTTP, dan layanan HTTPS untuk Nginx.
firewall-cmd --permanent --add-service=high-availability
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
Muat ulang konfigurasi firewall, dan periksa semua layanan.
firewall-cmd --reload
firewall-cmd --list-all
Pastikan layanan dengan HTTP dan https ada dalam daftar.
Langkah 9 - Pengujian
Pada langkah ini, kita akan melakukan beberapa tes untuk cluster. Uji status node ('Online' atau 'Offline'), uji anggota dan status corosync, lalu uji ketersediaan tinggi server web Nginx dengan mengakses alamat IP Mengambang.
Uji status node dengan perintah berikut.
pcs status nodes
Semua node aktif 'Online'.
Uji anggota corosync.
corosync-cmapctl | grep members
Anda akan mendapatkan alamat IP anggota Corosync.
Periksa anggota Corosync, dan Anda akan melihat hasilnya seperti di bawah ini.
pcs status corosync
Dan terakhir, periksa Ketersediaan Tinggi server web. Buka browser web Anda dan ketik alamat IP Mengambang '10.0.15.15'.
Anda akan melihat halaman web dari server 'web01'.
Selanjutnya, hentikan cluster di server 'web01' dengan perintah di bawah ini.
pcs cluster stop web01
Dan periksa kembali halaman tersebut, dan Anda akan mendapatkan halaman dari server 'web02' seperti di bawah ini.
Tambahan:
Periksa status cluster dengan perintah di bawah ini.
pcs status
Dan Anda akan mendapatkan hasil seperti gambar di bawah ini.
Setup server web Nginx High Availability dengan Pacemaker, Corosync, dan Pcsd di server CentOS 7 telah berhasil diselesaikan.