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