日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nginx+Keeplive高可用集群部署

發布時間:2023/12/10 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

error_log stderr notice;worker_processes 2; worker_rlimit_nofile 130048; worker_shutdown_timeout 10s;events {multi_accept on;use epoll;worker_connections 16384; }stream {upstream nginx_ingress {least_conn;server 172.21.74.5:80 max_fails=3 fail_timeout=5s;server 172.21.74.6:80 max_fails=3 fail_timeout=5s;server 172.21.74.7:89 max_fails=3 fail_timeout=5s;}upstream nginx_ingress_ssl {least_conn;server 172.21.74.5:443 max_fails=3 fail_timeout=5s;server 172.21.74.6:443 max_fails=3 fail_timeout=5s;server 172.21.74.7:443 max_fails=3 fail_timeout=5s;}upstream k8s {least_conn;server 172.21.74.2:6443 max_fails=3 fail_timeout=5s;server 172.21.74.3:6443 max_fails=3 fail_timeout=5s;server 172.21.74.4:6443 max_fails=3 fail_timeout=5s;}server {listen 80;proxy_pass nginx_ingress;proxy_timeout 10m;proxy_connect_timeout 1s;}server {listen 443;proxy_pass nginx_ingress_ssl;proxy_timeout 10m;proxy_connect_timeout 1s;}server {listen 6443;proxy_pass k8s;proxy_timeout 10m;proxy_connect_timeout 1s;} }http {aio threads;aio_write on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 5m;keepalive_requests 100;reset_timedout_connection on;server_tokens off;autoindex off;server {listen 18081;location /healthz {access_log off;return 200;}location /stub_status {stub_status on;access_log off;}} }



安裝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高可用集群部署的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。