Keepalived 安装与配置

安装 Keepalived

apt -y install keepalived

里边有一个杠y,就是我安装的时候里面有yes,就直接是yes

添加 Keepalived 配置

安装好之后, 下一步就开始去来写这个配置文件了,就在这里面去建一个 etc 当中,就是在这个 etc 当中建一个这个 Keepalived 的 config 这样的一个文件:

mkdir -p /etc/keepalived && touch /etc/keepalived/keepalived.conf
chmod 644 /etc/keepalived/keepalived.conf
vim /etc/keepalived/keepalived.conf

第一台机器 Keepalived 配置文件内容:

! Configuration File for keepalived
global_defs {# 指定router_idrouter_id ha01
}
vrrp_script check_haproxy {# 定义脚本script "/etc/keepalived/check_haproxy.sh"interval 1weight -30fall 3rise 2timeout 2
}
vrrp_instance VI_1 {# 在ha2上为 BACKUPstate MASTERinterface eth0garp_master_delay 10smtp_alert# 指定虚拟路由器ID, ha1和ha2此值必须相同virtual_router_id 66# 在ha2上为80, 代表着这台机器的权限比ha2高priority 100advert_int 1authentication {auth_type PASS# 指定验证密码, ha1和ha2此值必须相同auth_pass 123456}virtual_ipaddress {# 指定VIP, ha1和ha2此值必须相同192.168.0.101/24 dev eth0 label eth0:1}track_script {# 调用上面定义的脚本check_haproxy}
}

!> interface eth0 当中的 eth0 如何得来:

image-20230709104002199

几个关键的点:

  • interface eth0:对应的这个网卡名称,要看你现在你电脑里边的这个主网卡的这个名称是什么,那这个地方你就写什么
  • virtual_router_id:两台这个地方要相同, 指定虚拟路由器ID
  • priority: 优先级, 就是说我去找的时候哪个优先级高就先去找哪个
  • authentication: 两个互相访问的时候验证的一个这个密码,那么这个密码两台机器上必须设置一样
  • virtual_ipaddress: 虚拟IP,就是我们那个 VIP

我们刚才来申请的这个 IP 是不是 192.168.0.101,那你呢?就把这个 192.168.0.101 配置进去,好,改一下之后你看这在这中间是不是有这个 eth0,我们第一个这个网卡,那么下面这个地方就是你的虚拟 IP 虚拟 IP 绑定哪个地方?就是到时候绑定到 eth0:1 上面。

搞定之后这是一个脚本,这个脚本我们等会来去创建,我们现在先去把这个配置文件给写好。

等会把它配置上之后,启动了 Keeppalived 之后,然后再去看这个 ifconfig

第二台机器 Keepalived 配置文件内容:

! Configuration File for keepalived
global_defs {# 指定router_idrouter_id ha02
}
vrrp_script check_haproxy {# 定义脚本script "/etc/keepalived/check_haproxy.sh"interval 1weight -30fall 3rise 2timeout 2
}
vrrp_instance VI_1 {# 在ha2上为 BACKUPstate BACKUPinterface eth0garp_master_delay 10smtp_alert# 指定虚拟路由器ID, ha1和ha2此值必须相同virtual_router_id 66# 在ha2上为80, 代表着这台机器的权限比ha2高priority 80advert_int 1authentication {auth_type PASS# 指定验证密码, ha1和ha2此值必须相同auth_pass 123456   }virtual_ipaddress {# 指定VIP, ha1和ha2此值必须相同192.168.0.101/24 dev eth0 label eth0:1  }track_script {# 调用上面定义的脚本check_haproxy }
}

刚才那个叫 MASTER,这个叫一个 BACKUP,其它的基本上一样改了一下优先级为 80, 好了第二台机子已经创建好了配置文件接下来就是创建脚本启动了。

创建 Keepalived 健康脚本

cat > /etc/keepalived/check_haproxy.sh <<EOF
#!/bin/bash
/usr/bin/killall -0 haproxy || systemctl restart haproxy
EOF
chmod a+x /etc/keepalived/check_haproxy.sh

如果运行启动 keepalived 命名报:Failed to restart keepalived.service: Unit keepalived.service not found.

该错误信息指示无法找到名为"keepalived.service"的服务单元。这可能是由于未安装Keepalived或未正确配置Keepalived服务导致的。(也就是说没有安装 keepalived)

systemctl restart keepalived

启动完毕之后,我们在第一天机器上输入 ifconfig:

image-20230709111339008

发现,已经对应上了我们申请下来的虚拟ID,好了完毕到此结束。我们现在的虚拟ID在第一台机器上面,我们将第一台机器进行关机在查看我们第二台机器的 ifconfig 信息看看虚拟ID有没有漂移到健康状态的机器当中。

139.9.50.116 关机:

image-20230709111708467

查看 116.205.227.222:

image-20230709111652169

139.9.50.116 开机:

查看 139.9.50.116:

查看 116.205.227.222:

image-20230709111851489

好了我们 116 复活之后又回来了,我们的 Keepalived 安装与配置就介绍到这。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/17538.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTP第17讲——Cookie机制

Cookie的诞生背景 HTTP 是“无状态”的&#xff0c;这既是优点也是缺点。优点是服务器没有状态差异&#xff0c;可以很容易地组成集群&#xff0c;而缺点就是无法支持需要记录状态的事务操作。 后来发明的 Cookie 技术&#xff0c;给 HTTP 增加了“记忆能力”。 什么是Cookie…

SpringBoot中集成Flyway实现数据库sql版本管理入门以及遇到的那些坑

场景 Git/ SVN 是代码界的版本控制工具&#xff0c;那么&#xff0c;Flyway 就是一款数据库界的版本控制工具&#xff0c; 它可以记录数据库的变化记录。可能很多公司都是通过人工去维护、同步数据库脚本&#xff0c; 但经常会遇到疏忽而遗漏的情况&#xff0c;举个简单的例…

汽车EBSE测试流程分析(三):通过系统调研确定改进方案

EBSE专题连载共分为“五个”篇章。此文为该连载系列的“第三”篇章&#xff0c;在之前的“篇章&#xff08;二&#xff09;”中已经分析了EBSE步骤一&#xff1a;关于优势和挑战的案例研究。在本篇章&#xff08;三&#xff09;中&#xff0c;我们将结合具体研究实践&#xff0…

OpenCV创建一张类型为CV_8UC3的3通道彩色图像

#include <iostream> #include <opencv2/imgcodecs.hpp> #include <opencv2/opencv.hpp> #include <opencv2/highgui.hpp>int

Ubuntu Linux系统下创建Git项目并push到远程Github

首先在本地创建git仓库 jasminelhl:~/prj$ mkdir Github-test jasminelhl:~/prj$ cd Github-test jasminelhl:~/prj/Github-test$ git init 提示&#xff1a;使用 master 作为初始分支的名称。这个默认分支名称可能会更改。要在新仓库中 提示&#xff1a;配置使用初始分支名&a…

【C++】VSCode 使用 C/C++ Compile Run 插件时,设置默认运行的编译参数的方法

为什么要设置参数 最近在学习C&#xff0c;在学习多线程的时候&#xff0c;发现使用C11中的thread类写的代码编译会报错&#xff1a; * 正在执行任务: g -Wall -Wextra -g3 /Users/anweiyang/studySrc/C/ThreadTest.cpp -o /Users/anweiyang/studySrc/C/output/ThreadTest /U…

Jmeter接口关联(一)【使用json层级方式提取值】与python中使用层级方式提取值 完成接口关联

文章目录 前言一、按照 json 的路径来提取 ​​​​​​​&#xff08;1&#xff09;成功匹配到数据的案例&#xff08;按照层级匹配&#xff09;&#xff08;2&#xff09;失败未匹配到数据的案例&#xff08;没有按照层级匹配&#xff09;json提取器二、使用完整的接口关联&a…

Django框架-11

聚合查询 1.聚合函数 使用aggregate()过滤器调用聚合函数。聚合函数包括&#xff1a;Avg 平均&#xff0c;Count 数量&#xff0c;Max 最大&#xff0c;Min 最 小&#xff0c;Sum 求和&#xff0c;被定义在django.db.models中。 例&#xff1a;查询图书的总阅读量。 from mo…

前端全集Ⅰ---- HTML/CSS/JavaScript

一 介绍web开发 Web&#xff1a;全球广域网&#xff0c;也称万维网&#xff0c;能够通过浏览器访问的网站 Web网站的工作流程&#xff1a;&#xff08;前后端分离模式&#xff09; 网页有哪些组成&#xff1f; 文字、图片、视频、音频、超链接 前端代码通过浏览器的解析和渲…

导入Excel数据【EasyPoi实战系列】- 第480篇

历史文章&#xff08;文章累计480&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 【…

docker 安装zookeeper单机版

1. 安装版本3.5.7, 也可以自己去官网找到自己需要的版本复制命令即可 https://hub.docker.com/_/zookeeper/tags docker pull zookeeper:3.5.7 2. 创建映射文件夹&#xff1a; #1. 在centos中创建三个文件夹 mkdir -p /home/zookeeper/conf mkdir -p /home/zookeeper/data mkd…

Redis事务

reids事务是指将多条命令放在一个队列当中&#xff0c;保证多个命令在同一个事务中执行而不受其他客户端的影响。 mutil 表示开启事务 命令1 命令2 命令3 exec 表示执行事务 redis的事务中不会保证原子性&#xff0c;假如命令3有误&#xff0c;并不会影响命令1和命令2的执行…