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高可用集群部署相关推荐
- Nginx+Keepalived高可用集群应用实践
Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令 ...
- Mysql数据库(十一)——MHA高可用集群部署及故障切换
Mysql数据库(十一)--MHA高可用集群部署及故障切换 一.MHA概述 二.MHA的组成 三.MHA的特点 四.案例环境 1.服务器配置 2.思路 3.关闭防火墙和安全机制,并进行主从配置 4.配 ...
- Hadoop部署方式-高可用集群部署(High Availability)
Hadoop部署方式-高可用集群部署(High Availability) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客的高可用集群是建立在完全分布式基础之上的,详情请参 ...
- Java架构师成长直通车:LVS+Nginx实现高可用集群
LVS+Nginx实现高可用集群 常见服务器 安装 Nginx(CentOS) Nginx 的进程模型 Nginx 事件处理 nginx.conf 核心配置文件 Nginx 的跨域配置和防盗链 负载均 ...
- LVS+Nginx实现高可用集群
LVS+Nginx实现高可用集群 常见服务器 [安装 Nginx(CentOS)](#安装 Nginx(CentOS)) [Nginx 的进程模型](#Nginx 的进程模型) [Nginx 事件处理 ...
- nginx keepalived高可用集群主从模式
hostname ip 说明 proxy-01 172.0.5.108 keepalived主节点nginx主负载均衡 proxy-02 172.0.5.39 keepalived备节点nginx辅负 ...
- 数据库系列之SequoiaDB高可用集群部署(二)
SequoiaDB作为存储引擎,支持高并发的HTAP场景.本位总结运维分析项目中使用SequoiaDB作为数据存储的高可用部署实战,并接入Kafka进行高并发的更新业务和Spark进行高并发的批量查询 ...
- 数据库系列之SequoiaDB高可用集群部署(一)
SequoiaDB作为存储引擎,支持高并发的HTAP场景.本位总结运维分析项目中使用SequoiaDB作为数据存储的高可用部署实战,并接入Kafka进行高并发的更新业务和Spark进行高并发的批量查询 ...
- Kubernetes容器集群 - harbor仓库高可用集群部署说明
之前介绍Harbor私有仓库的安装和使用,这里重点说下Harbor高可用集群方案的部署,目前主要有两种主流的Harbor高可用集群方案:1)双主复制:2)多harbor实例共享后端存储. 一.Harb ...
- K8S 学习笔记三 核心技术 Helm nfs prometheus grafana 高可用集群部署 容器部署流程
K8S 学习笔记三 核心技术 2.13 Helm 2.13.1 Helm 引入 2.13.2 使用 Helm 可以解决哪些问题 2.13.3 Helm 概述 2.13.4 Helm 的 3 个重要概念 ...
最新文章
- 高糊视频秒变4K,速度快了9倍!东南大学提出新的视频超分辨率系统
- 场地测量的方法和程序_建筑施工测量的内容与方法
- python语言能干什么-学Python语言可以做什么?
- deepin关机卡在图标界面 mysql Community...10min
- 为什么Domain controller上的time synchronization非常重要?
- Oracle 数据库导入导出
- Flink 1.8.0编译:flink-fs-hadoop-shaded找不到
- oracle 导入单表,oracle 10g 中单个数据表的导入、导出
- 小白菜飘过计算机三级数据库
- 计算机组成原理bzc指令,计算机组成原理课程设计-09级.ppt
- 浅谈一下workstation
- erp系统服务器电脑配置,erp软件服务器电脑配置
- oracle里xdb用户,修改Oracle XDB默认监听端口
- matlab计算四元方程解,求解四元二次方程,用matlab
- Yii2 常用操作总结
- 图像放大的三种处理方法:最近邻插值,双线性插值 ,双三次插值算法
- 想要制作好看的壁纸,有CorelDRAW就够啦
- 【时序异常检测翻译】1.DeepAnT: A Deep Learning Approach for Unsupervised Anomaly Detection in Time Series
- 剖析环境加密与文档加密
- TabLayout+ViewPager+Fragment实现切页展示
热门文章
- word文档太大怎么压缩到最小?
- Python通过SSH下载远程服务器文件
- 基于斗鱼的娱乐直播视频平台--Vue移动端页面
- 2021年中国研究生数学建模竞赛D题——抗乳腺癌候选药物的优化建模
- Qt实现窗口跳转(类似于看图软件中下一张和上一张)
- lept_json的学习之stringify
- 如何构建一个自己的代理ip池
- /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o: In function `_start‘: (.text+0x20
- 微信浏览器实现自动下载功能
- 离线网页制作器(beta1.0)