Skip to main content

moregeek program

部署haproxy+keepalived高可用负载均衡器_我与linux的博客-多极客编程

尽管HAProxy非常稳定,但仍然无法规避操作系统故障、主机硬件故障、网络故障甚至断电带来的风险。所以必须对HAProxy实施高可用方案。

下面将介绍利用Keepalived实现的HAProxy热备方案。即两台主机上的两个HAProxy实例同时在线,其中权重较高的实例为MASTER,MASTER出现问题时,另一台实例自动接管所有流量。

1、地址规划

部署haproxy+keepalived高可用负载均衡器_sed

haproxy+keepalive1
192.168.28.101
haproxy+keepalive2
192.168.28.102
VIP
192.168.28.110
harbor
192.168.28.202

1、使用yum安装软件(如果服务器不能联网,可以选择源码安装,这里为了简单,直接使用yum)

# yum install keepalived haproxy -y

部署haproxy+keepalived高可用负载均衡器_ipad_02

2、关闭防火墙和selinux


关闭防火墙
iptables -F && iptables -X && iptables -Z
systemctl stop firewalld.service && systemctl disable firewalld.service

关闭Selinux
setenforce 0
echo 'sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/sysconfig/selinux
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config'| sh

3、配置时间同步

yum install chronyd -y

cat > /etc/chrony.conf <<EOF
server ntp.aliyun.com iburst
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
logchange 0.5
logdir /var/log/chrony
EOF

systemctl enable chronyd && systemctl start chronyd


3、配置kepalived

复制VRRP模板

cp /usr/share/doc/keepalived-1.3.5/samples/keepalived.conf.vrrp /etc/keepalived/keepalived.conf

master节点配置

修改配置如下

部署haproxy+keepalived高可用负载均衡器_linux_03

! Configuration File for keepalived

global_defs {
notification_email {
acassen
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL1
}


vrrp_instance VI_1 {
state MASTER
interface ens33
garp_master_delay 10
smtp_alert
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.28.110
}
}

backup节点配置

部署haproxy+keepalived高可用负载均衡器_sed_04


! Configuration File for keepalived

global_defs {
notification_email {
acassen
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL2
}


vrrp_instance VI_1 {
state BACKUP
interface ens33
garp_master_delay 10
smtp_alert
virtual_router_id 51
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.28.110
}
}

启动服务

systemctl enable keepalived  && systemctl start keepalived && systemctl status keepalived

主机:

部署haproxy+keepalived高可用负载均衡器_ipad_05

备机:

部署haproxy+keepalived高可用负载均衡器_linux_06

4、配置haproxy


hapeoxy配置如下:

主备机配置一样

scp /etc/haproxy/haproxy.cfg 192.168.28.101:/etc/haproxy/haproxy.cfg

#--------------全局配置----------------
global
log 127.0.0.1 local0 info
#log loghost local0 info
maxconn 20480
#chroot /usr/local/haproxy
pidfile /var/run/haproxy.pid
#maxconn 4000
user haproxy
group haproxy
daemon
#---------------------------------------------------------------------
#common defaults that all the 'listen' and 'backend' sections will
#use if not designated in their block
#---------------------------------------------------------------------
defaults
mode http
log global
option dontlognull
option httpclose
option httplog
#option forwardfor
option redispatch
balance roundrobin
timeout connect 10s
timeout client 10s
timeout server 10s
timeout check 10s
maxconn 60000
retries 3
#--------------统计页面配置------------------
listen admin_stats
bind 0.0.0.0:8189
stats enable
mode http
log global
stats uri /haproxy_stats
stats realm Haproxy\ Statistics
stats auth admin:admin
#stats hide-version
stats admin if TRUE
stats refresh 30s
#---------------web设置-----------------------
listen harbor-80
bind *:80
mode tcp
server server1 192.168.28.201:80 check inter 3s fall 3 rise 3


listen harbor-443
bind *:443
mode tcp
server server1 192.168.28.201:443 check inter 3s fall 3 rise 3

启动服务:

systemctl start  haproxy && systemctl enable  haproxy  && systemctl status haproxy

部署haproxy+keepalived高可用负载均衡器_sed_07

5、测试效果

正常效果

打开​​https://192.168.28.110/​​查看负载后的地址

部署haproxy+keepalived高可用负载均衡器_ipad_08

master:

keepalived状态:

部署haproxy+keepalived高可用负载均衡器_sed_09

backup:

keepalived状态:

部署haproxy+keepalived高可用负载均衡器_linux_10

关闭master

backup:

keepalived状态:

部署haproxy+keepalived高可用负载均衡器_ipad_11

网页访问:

部署haproxy+keepalived高可用负载均衡器_sed_12

haproxy页面:

切换为backup PID

部署haproxy+keepalived高可用负载均衡器_ipad_13

启动master

backup:

keepalived状态:

部署haproxy+keepalived高可用负载均衡器_linux_14

master:

keepalived状态:

部署haproxy+keepalived高可用负载均衡器_sed_15

访问网页正常:

部署haproxy+keepalived高可用负载均衡器_sed_16

haproxy页面:

切换为master PID

部署haproxy+keepalived高可用负载均衡器_ipad_17

由此可见,高可用负载均衡器正常使用。


©著作权归作者所有:来自51CTO博客作者lxycneo的原创作品,请联系作者获取转载授权,否则将追究法律责任

对象存储只能按文件名搜索,你out了吧_华为云开发者社区的博客-多极客编程

摘要:不少大公司的一个桶里都是几亿几十亿的对象,那他们都是怎么检索的呢?本文分享自华为云社区《​​对象存储只能按文件名搜索? 用 DWR + ElasticSearch 实现文件名、文件内容、图片文字的模糊搜索!​​》,作者:云存储开发者支持团队 。众所周知,由于对象存储的架构限制,要想检索对象存储里的文件,只能使用前缀的方式过滤,然后一页一页的列举,限制多,效率低,要是桶内对象实在太多,可能光列

kong 微服务网关配置指南_虚拟的现实的博客-多极客编程

1.准备内容1、按标准完成操作系统安装及配置2、按标准完成 PgSQL 数据库的安装、配置。​​https://blog.51cto.com/waringid/5790199​​3、新建 kong 数据库和用户create user kong with password 'password';create database kong owner kong;2.kong 安装及配置2.1. yum配

kubeasz部署k8s集群实战_崔一凡的博客-多极客编程

背景 kubeasz是一个利用ansible-playbook基于二进制方式自动化部署和运维k8s集群的开源项目,目前该项目最新发布版本为3.4.1,基于该版本我们可以快速实现部署最高版本为1.25.3的k8s集群。 安装规划 K8s HA-architecture 基于kubeasz安装的k8s高可用架构方案如上。 使用kubeasz默认安装的kubernetes集群主要特性如下 etcd集

arm64架构下,openjdk的官方docker镜像为何没有8版本?_github.com/zq2599的博客-多极客编程

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 为什么需要ARM64架构的OpenJDK8的Docker镜像 对现有的Java应用,之前一直运行在x86处理器环境下,编译和运行都是JDK8,如今在树莓派的Docker环境运行,需要JDK8镜像作为基础镜像。 OpenJDK的官方Dockerfile

高性能计算进化史_赵大奇的博客-多极客编程

前几天发了一篇高性能计算的从业经历回顾的文章,收到一封小伙伴的私信,让我说说高性能计算的发展历史。工作以来,一直在高性能计算行业打转,每天面对着各种服务器、小型机、超级计算机,对这些家伙还算熟悉,也见证了这些年,国内高性能计算从弱到强的发展历程。虽然和当下热门的手机、个人计算机行业相比,高性能计算是个冷僻的行业,知道的人不多,各种事件更是很少见诸报端,但是它在我们看不到的地方,很多新兴产业和科研生

使用sshpass批量传递密钥实现ssh免密登录_我与linux的博客-多极客编程

sshpass介绍sshpass:用于非交互的ssh 密码验证使用 -p 参数指定明文密码,然后直接登录远程服务器。 它支持密码从命令行,文件,环境变量中读取1、从命令行方式传递密码sshpass -p user_password ssh user_name@192.168.1.2 【登录远程机器】sshpass -p user_password scp -P22 root@192.168.1.

kubeasz部署k8s集群实战_崔一凡的博客-多极客编程

背景 kubeasz是一个利用ansible-playbook基于二进制方式自动化部署和运维k8s集群的开源项目,目前该项目最新发布版本为3.4.1,基于该版本我们可以快速实现部署最高版本为1.25.3的k8s集群。 安装规划 K8s HA-architecture 基于kubeasz安装的k8s高可用架构方案如上。 使用kubeasz默认安装的kubernetes集群主要特性如下 etcd集

部署harbor并实现https(san签发证书)_我与linux的博客-多极客编程

harbor介绍  Harbor 是由 VMware 公司开源的企业级的 Docker Registry 管理项目,它包括权限管理 (RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。官网地址​ Harbor (goharbor.io)​​安装依赖harbor依赖于docker 和docker-compose需求先安装docker和docker-compose1、安装d

【kubernetes入门到精通】kubernetes架构分析介绍篇「进阶篇」_李博alex的博客-多极客编程

意志的出现不是对愿望的否定,而是把愿望合并和提升到一个更高的意识水平上。——罗洛·梅官方网站​​Kubernetes中文官方网站​​​​Kubernetes英文官方网站​​Kubernetes 设计理念与分布式系统分析和理解 Kubernetes 的设计理念可以使我们更深入地了解 Kubernetes 系统,更好地利用它管理分布式部署的云原生应用,另一方面也可以让我们借鉴其在分布式系统设计方面的经

使用sshpass批量传递密钥实现ssh免密登录_我与linux的博客-多极客编程

sshpass介绍sshpass:用于非交互的ssh 密码验证使用 -p 参数指定明文密码,然后直接登录远程服务器。 它支持密码从命令行,文件,环境变量中读取1、从命令行方式传递密码sshpass -p user_password ssh user_name@192.168.1.2 【登录远程机器】sshpass -p user_password scp -P22 root@192.168.1.

k8s如何调度pod_fly天地的博客-多极客编程

选择节点步骤k8s默认的调度器是kube-scheduler,它会为新创建的pod且未被调度的pod选择最合适的节点。这个过程如下过滤:节点是否有足够的资源满足请求资源条件,满足条件的节点被称为可调度节点打分:根据不同的条件对节点进行打分,调度器会把pod调度到得分最高的节点绑定:选出得分最高的节点后,调度器会把调度决定通知给kube-apiserver常用的打分条件nodeSelector通过指

k8s中使用efk的filebeat配置详解_wx612751f2ed44d的博客-多极客编程

前言近期公司不少项目都上了 K8S,随着项目越来越多,有时候会出现“服务异常”等情况,需要上到服务器敲一大堆的命令,才有可能找到疑似的异常原因。如果我们将这些数据全部记录到一个基于 EFK 的日志系统,有方便简洁的界面,能够快速找到错误数据、快速修复问题、快速更新,立马就省心多了。接下来,就让小编为大家介绍一下这款神器的配置~注意事项配置文件详解(抽取关键部分)filebeatConfig: