nginx+Keeplive高可用集群部署
nginx安裝配置
1、通過(guò)docker-compose安裝nginx,1.19的鏡像支持stream模塊,用來(lái)實(shí)現(xiàn)四層協(xié)議的轉(zhuǎn)發(fā)、代理或者負(fù)載均衡,這邊用來(lái)轉(zhuǎn)發(fā)到k8s的nginx-ingress。
docker-compose.yaml
version: '3' services:redis:image: "nginx:1.19"hostname: nginxcontainer_name: nginxports:- 80:80- 443:443volumes:- ./etc/nginx/nginx.conf:/etc/nginx/nginx.confenvironment:- TZ=Asia/Shanghairestart: always
nginx.conf
安裝keepalived
1、直接通過(guò)yum安裝
yum -y install keepalived
2、配置
master
cat <<EOF > /etc/keepalived/keepalived.conf
#檢測(cè)腳本
vrrp_script chk_http_port {
? ? script "/data/services/nginx/nginx.sh" #心跳執(zhí)行的腳本,檢測(cè)nginx是否啟動(dòng)
? ? interval 2 ? ? ? ? ? ? ? ? ? ? ? ? ?#(檢測(cè)腳本執(zhí)行的間隔,單位是秒)
? ? weight 2 ? ? ? ? ? ? ? ? ? ? ? ? ? ?#權(quán)重
}
#vrrp 實(shí)例定義部分
vrrp_instance VI_1 {
? ? state MASTER ? ? ? ? ? ?# 指定keepalived的角色,MASTER為主,BACKUP為備
? ? interface ens160 ? ? ? ? # 當(dāng)前進(jìn)行vrrp通訊的網(wǎng)絡(luò)接口卡(當(dāng)前centos的網(wǎng)卡) 用ifconfig查看你具體的網(wǎng)卡
? ? virtual_router_id 66 ? ?# 虛擬路由編號(hào),主從要一直
? ? priority 100 ? ? ? ? ? ?# 優(yōu)先級(jí),數(shù)值越大,獲取處理請(qǐng)求的優(yōu)先級(jí)越高
? ? advert_int 1 ? ? ? ? ? ?# 檢查間隔,默認(rèn)為1s(vrrp組播周期秒數(shù))
? ? #授權(quán)訪問(wèn)
? ? authentication {
? ? ? ? auth_type PASS #設(shè)置驗(yàn)證類型和密碼,MASTER和BACKUP必須使用相同的密碼才能正常通信
? ? ? ? auth_pass 123456
? ? }
? ? track_script {
? ? ? ? chk_http_port ? ? ? ? ? ?#(調(diào)用檢測(cè)腳本)
? ? }
? ? virtual_ipaddress {
? ? ? ? 172.21.74.20 ? ? ? ? ? ?# 定義虛擬ip(VIP),可多設(shè),每行一個(gè)
? ? }
}
EOF
backup
cat <<EOF > /etc/keepalived/keepalived.conf
#檢測(cè)腳本
vrrp_script chk_http_port {
? ? script "/data/services/nginx/nginx.sh" #心跳執(zhí)行的腳本,檢測(cè)nginx是否啟動(dòng)
? ? interval 2 ? ? ? ? ? ? ? ? ? ? ? ? ?#(檢測(cè)腳本執(zhí)行的間隔,單位是秒)
? ? weight 2 ? ? ? ? ? ? ? ? ? ? ? ? ? ?#權(quán)重
}
#vrrp 實(shí)例定義部分
vrrp_instance VI_1 {
? ? state BACKUP ? ? ? ? ? ?# 指定keepalived的角色,MASTER為主,BACKUP為備
? ? interface ens160 ? ? ? ? # 當(dāng)前進(jìn)行vrrp通訊的網(wǎng)絡(luò)接口卡(當(dāng)前centos的網(wǎng)卡) 用ifconfig查看你具體的網(wǎng)卡
? ? virtual_router_id 66 ? ?# 虛擬路由編號(hào),主從要一致
? ? priority 99 ? ? ? ? ? ?# 優(yōu)先級(jí),數(shù)值越大,獲取處理請(qǐng)求的優(yōu)先級(jí)越高
? ? advert_int 1 ? ? ? ? ? ?# 檢查間隔,默認(rèn)為1s(vrrp組播周期秒數(shù))
? ? #授權(quán)訪問(wèn)
? ? authentication {
? ? ? ? auth_type PASS #設(shè)置驗(yàn)證類型和密碼,MASTER和BACKUP必須使用相同的密碼才能正常通信
? ? ? ? auth_pass 123456
? ? }
? ? track_script {
? ? ? ? chk_http_port ? ? ? ? ? ?#(調(diào)用檢測(cè)腳本)
? ? }
? ? virtual_ipaddress {
? ? ? ? 172.21.74.20 ? ? ? ? ? ?# 定義虛擬ip(VIP),可多設(shè),每行一個(gè)
? ? }
}
EOF
3、nginx檢測(cè)腳本
nginx.sh
#!/bin/bash #檢測(cè)nginx是否啟動(dòng)了 A=`ps -C nginx --no-header |wc -l` if [ $A -eq 0 ];then #如果nginx沒(méi)有啟動(dòng)就啟動(dòng)nginxdocker start nginx #重啟nginxif [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #nginx重啟失敗,則停掉keepalived服務(wù),進(jìn)行VIP轉(zhuǎn)移killall keepalivedfi fi
?
4、啟動(dòng)
systemctl start keepalived.service?
systemctl enable keepalived.service?
總結(jié)
以上是生活随笔為你收集整理的nginx+Keeplive高可用集群部署的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: cognos10 安装部署
- 下一篇: 如何调整eclipse字体大小