企业级Keepalived高可用离线部署实战(附K8S集群VIP配置)

news2025/5/9 18:27:11

企业级Keepalived高可用离线部署实战(附K8S集群VIP配置)

摘要:本文详细讲解在离线环境下部署Keepalived实现Kubernetes集群高可用的完整流程,涵盖源码编译安装、多节点配置、健康检查联动等核心环节,并提供生产级参数调优方案。适用于金融、政务等隔离网络的容灾架构建设。

一、环境规划与架构设计

1.1 节点信息

节点IP角色优先级网卡接口
192.167.14.119MASTER101eno3
192.167.14.223BACKUP100ens192
192.167.14.226BACKUP99ens192

1.2 虚拟IP(VIP)

  • VIP地址:192.167.14.205
  • 作用:作为Kubernetes API Server的统一接入点,实现故障自动切换

二、离线安装Keepalived

2.1 源码编译安装

# 下载源码包(需提前在有网环境操作)
wget https://www.keepalived.org/software/keepalived-2.2.8.tar.gz

# 解压并编译
tar xvf keepalived-2.2.8.tar.gz
cd keepalived-2.2.8
./configure --prefix=/usr/local/keepalived --disable-track-process
make && make install

2.2 系统服务配置

# 复制配置文件
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

# 配置启动脚本
cp keepalived-2.2.8/keepalived/etc/init.d/keepalived /etc/init.d/
chmod +x /etc/init.d/keepalived

# 创建配置目录
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf.sample /etc/keepalived/keepalived.conf

# 设置开机启动
chkconfig --add keepalived
chkconfig keepalived on

三、多节点配置详解

3.1 MASTER节点配置(119)

cat > /etc/keepalived/keepalived.conf << EOF
! Configuration File for keepalived
global_defs {
    router_id K8S_MASTER_119  # 唯一标识
    enable_script_security    # 启用脚本安全
}

vrrp_script chk_apiserver {
    script "/etc/keepalived/check_apiserver.sh"  # 健康检测脚本
    interval 5     # 检测间隔(秒)
    weight -5      # 检测失败权重变化
    fall 2         # 连续失败2次判定异常
    rise 1         # 成功1次恢复
}

vrrp_instance VI_1 {
    state MASTER            # 初始状态
    interface eno3          # 绑定网卡
    virtual_router_id 51    # 集群ID(同一组需相同)
    priority 101            # 优先级(MASTER最高)
    advert_int 2            # 心跳间隔
    
    authentication {        # 认证配置
        auth_type PASS
        auth_pass K8SHA_KA_AUTH
    }
    
    virtual_ipaddress {     # 虚拟IP配置
        192.167.14.205
    }
    
    track_script {         # 关联检测脚本
        chk_apiserver
    }
}
EOF

3.2 BACKUP节点配置(223/226)

# 以223节点为例,修改以下参数:
state BACKUP
interface ens192
mcast_src_ip 192.167.14.223
priority 100  # 226节点设为99

四、健康检查联动机制

4.1 检测脚本配置

cat > /etc/keepalived/check_apiserver.sh << EOF
#!/bin/bash
timeout=3
err=0

# 检测haproxy服务状态
for ((i=0; i<timeout; i++)); do
    if systemctl is-active --quiet haproxy; then
        break
    else
        err=$((err+1))
        sleep 1
    fi
done

# 服务异常时停止keepalived触发切换
if [[ $err -eq $timeout ]]; then
    systemctl stop keepalived
    exit 1
else
    exit 0
fi
EOF

chmod +x /etc/keepalived/check_apiserver.sh

4.2 服务状态联动逻辑

运行正常
服务宕机
执行stop命令
Haproxy服务
Keepalived维持MASTER
触发健康检查
VIP漂移到BACKUP

五、服务启动与验证

5.1 启动服务

# 所有节点执行
systemctl daemon-reload
systemctl enable --now keepalived
systemctl status keepalived

5.2 VIP验证命令

# 查看VIP绑定情况
ip addr show eno3 | grep 192.167.14.205

# 模拟故障测试
MASTER节点执行:
systemctl stop haproxy
tail -f /var/log/messages  # 观察切换日志

六、生产环境调优建议

6.1 安全加固措施

# 限制VRRP协议通信(所有节点)
iptables -A INPUT -p vrrp -s 192.167.14.0/24 -j ACCEPT
iptables -A INPUT -p vrrp -j DROP

6.2 参数优化

vrrp_instance VI_1 {
    ...
    nopreempt         # 禁止抢占,避免网络抖动
    debug 1           # 调试日志级别
    notify_master "/path/to/notify.sh master"  # 状态切换通知
}

七、常见问题排查指南

故障现象排查命令解决方案
VIP未正确绑定ip addr show检查网卡配置、防火墙规则
节点状态始终为BACKUPjournalctl -u keepalived确认priority配置高于其他节点
健康检查误触发切换systemctl status haproxy调整检测间隔/失败阈值
节点间无法通信tcpdump -i eno3 vrrp检查网络连通性、组播配置

扩展阅读:《Keepalived双主模式部署方案》

如果本教程帮助您解决了问题,请点赞❤️收藏⭐支持!欢迎在评论区留言交流技术细节!欲了解密码学知识,请订阅《密码学实战》专栏 → 密码学实战

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RBAC的使用

1、简述RBAC的作用及工作流程 Rbac基于角色访问控制&#xff0c;用于管理用户对集群资源的访问权限&#xff0c;通过定义角色和绑定规则&#xff0c;将用户与权限进行关联&#xff0c;作用&#xff1a;权限精细化管理&#xff0c;操作便捷与统一管理&#xff0c;动态调整权限。…

MySQL+Redis实战教程:从Docker安装部署到自动化备份与数据恢复20250418

MySQLRedis实战教程&#xff1a;从Docker安装部署到自动化备份与数据恢复 一、前言 在企业应用中&#xff0c;对MySQL和Redis运维的要求越来越高&#xff1a; 不能仅是启动就算部署运行稳定、隔离、访问控制、备份恢复、安全可靠&#xff0c;才是 企业级的基本功能 本文将手…

AI驱动商业变革:零售行业的智能化跃迁

引言&#xff1a;AI技术迈入黄金时代 2024年成为生成式AI&#xff08;Gen AI&#xff09;全面落地的关键年。据麦肯锡《技术趋势展望》报告&#xff0c;生成式AI相关投资同比增长​7倍​​&#xff0c;其经济价值预计达​​2.6-4.4万亿美元​​[1]。在零售领域&#xff0c;该技…

AI调试工具有哪些?

一、深度学习框架专用调试工具 TensorBoard • 功能&#xff1a;实时监控训练指标&#xff08;损失值、准确率&#xff09;、可视化神经网络结构、分析参数分布和梯度信息 • 适用框架&#xff1a;TensorFlow、PyTorch&#xff08;通过插件&#xff09; • 特点&#xff1a;支持…

交易模式革新:Eagle Trader APP上线,助力自营交易考试效率提升

近年来&#xff0c;金融行业随着投资者需求的日益多样化&#xff0c;衍生出了众多不同的交易方式。例如&#xff0c;为了帮助新手小白建立交易基础&#xff0c;诞生了各类跟单社区&#xff1b;而与此同时&#xff0c;一种备受瞩目的交易方式 —— 自营交易模式&#xff0c;正吸…

健身会员管理系统(ssh+jsp+mysql8.x)含运行文档

健身会员管理系统(sshjspmysql8.x) 对健身房的健身器材、会员、教练、办卡、会员健身情况进行管理&#xff0c;可根据会员号或器材进行搜索&#xff0c;查看会员健身情况或器材使用情况。

捋一遍Leetcode【hot100】的二叉树专题

二叉树专题 除了后面两个&#xff0c;都挺简单 二叉树的中序遍历 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int …

【测试文档】项目测试文档,测试管理规程,测试计划,测试文档模版,软件测试报告书(Word)

原件获取列表&#xff1a; 系统测试方案-2.docx B-Web安全服务渗透测试模板.docx 压力测试报告.docx安全测试用例及解析.docx 测试计划.doc 测试需求规范.doc 测试需求指南.docx 测试用例设计白皮.doc 单元测试报告模板.doc 单元测试计划模板.doc 回归测试指南.doc 集成测试报…

Linux的联网网络管理攻略

RHEL9版本特点 在RHEL7版本中&#xff0c;同时支持network.service和NetworkManager.service&#xff08;简称NM&#xff09;。 在RHEL8上默认只能通过NM进行网络配置&#xff0c;包括动态ip和静态ip,若不开启NM&#xff0c;否则无法使用网络RHEL8依然支持network.service&am…

Linux上位机开发实践(SoC和MCU的差异)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 soc一般是指跑linux的芯片&#xff0c;而mcu默认是跑rtos的芯片&#xff0c;两者在基本原理方面其实差异不大。只不过&#xff0c;前者由于性能的原…

ios app的ipa文件提交最简单的方法

ipa文件是ios的app打包后生成的二级制文件&#xff0c;在上架app store connect或做testflight测试的时候&#xff0c;它提示我们需要使用xcode、transporter或xcode命令行等方式来上传。 而xcode、transporter或xcode命令行的安装都需要使用mac电脑&#xff0c;假如没有mac电…

详细解释浏览器是如何渲染页面的?

渲染流程概述 渲染的目标&#xff1a;将HTML文本转化为可以看到的像素点 当浏览器的网络线程收到 HTML 文档后&#xff0c;会产生一个渲染任务&#xff0c;并将其传递给渲染主线程的消息队列。在事件循环机制的作用下&#xff0c;渲染主线程取出消息队列中的渲染任务&#xff0…

Nacos安装及数据持久化

1.Nacos安装及数据持久化 1.1下载nacos 下载地址&#xff1a;https://nacos.io/download/nacos-server/ 不用安装&#xff0c;直接解压缩即可。 1.2配置文件增加jdk环境和修改单机启动standalone 找到bin目录下的startup.cmd文件&#xff0c;添加以下语句(jdk路径根据自己…

FPGA_YOLO(四)用HLS实现循环展开以及存储模块

Vivado HLS&#xff08;High-Level Synthesis&#xff0c;高层次综合&#xff09;是赛灵思&#xff08;Xilinx&#xff09;在其 Vivado 设计套件 中提供的一款工具&#xff0c;用于将 高级编程语言&#xff08;如 C、C、SystemC&#xff09; 直接转换为 硬件描述语言&#xff0…

ASP.NET MVC 实现增删改查(CRUD)操作的完整示例

提供一个完整的 ASP.NET MVC 实现增删改查&#xff08;CRUD&#xff09;操作的示例。该示例使用 SQL Server 数据库&#xff0c;以一个简单的 Product 实体为例。 步骤 1&#xff1a;创建 ASP.NET MVC 项目 首先&#xff0c;在 Visual Studio 中创建一个新的 ASP.NET MVC 项目…

MCP理解笔记及deepseek使用MCP案例介绍

文章目录 一、MCP介绍&#xff08;1&#xff09;使用MCP与之前的AI比较&#xff08;2&#xff09;原理&#xff08;3&#xff09;优点 二、deepseek使用MCP使用案例介绍 一、MCP介绍 全称 模型上下文协议 来源 由Claude母公司Anthropic于24年底开源发布 简介 AI大模型的标准化…

# 手写数字识别:使用PyTorch构建MNIST分类器

手写数字识别&#xff1a;使用PyTorch构建MNIST分类器 在这篇文章中&#xff0c;我将引导你通过使用PyTorch框架构建一个简单的神经网络模型&#xff0c;用于识别MNIST数据集中的手写数字。MNIST数据集是一个经典的机器学习数据集&#xff0c;包含了60,000张训练图像和10,000张…

LeetCode:DFS综合练习

简单 1863. 找出所有子集的异或总和再求和 一个数组的 异或总和 定义为数组中所有元素按位 XOR 的结果&#xff1b;如果数组为 空 &#xff0c;则异或总和为 0 。 例如&#xff0c;数组 [2,5,6] 的 异或总和 为 2 XOR 5 XOR 6 1 。 给你一个数组 nums &#xff0c;请你求出 n…

Perf学习

重要的能解决的问题是这些&#xff1a; perf_events is an event-oriented observability tool, which can help you solve advanced performance and troubleshooting functions. Questions that can be answered include: Why is the kernel on-CPU so much? What code-pa…

齐次坐标变换+Unity矩阵变换

矩阵变换 变换&#xff08;transform)&#xff1a;指的是我们把一些数据&#xff0c;如点&#xff0c;方向向量甚至是颜色&#xff0c;通过某种方式&#xff08;矩阵运算&#xff09;&#xff0c;进行转换的过程。 变换类型 线性变换&#xff1a;保留矢量加和标量乘的计算 f(x)…