惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
雷峰网
雷峰网
S
SegmentFault 最新的问题
博客园 - 【当耐特】
博客园_首页
量子位
爱范儿
爱范儿
博客园 - 叶小钗
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
V
V2EX
美团技术团队
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog
宝玉的分享
宝玉的分享
WordPress大学
WordPress大学
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客 on 打工人日志

k8s RKE2 cilium L2 + envoy gateway 安装配置 k8s RKE2 vSphere 存储配置 OpenClaw 全能指南:从安装到进阶自动化实战 (2026 最终版) Kubernetes — skywalking + banyanDB APM监控部署 Kubernetes — promtail + loki + grafana 日志系统部署 k8s master 节点 Unauthorized Kubernetes — metalLB + Traefik 部署 Kubernetes — SSL 证书自动更新 Kubernetes — RKE2 + kube-vip + cilium 部署 使用TLSv1.3 升级nginx和openssl Proxmox VE(PVE) 更新到最新版本 kindle 邮件发送失败,错误代码E999 metallb + ingress-nginx + argocd 本地部署 iStoreOS(旁路由)使用openclash实现dns劫持 异常流量分析:图片库服务黑客入侵 openwrt 硬盘扩容 搭建ip地址检索服务 Kubernetes — k8s 手动安装 1.17.9 SELinux 问题:导致端口无法创建,无法访问 【福利】免费!本地部署!去除视频中移动的物体 通知:《打工人日报》迁移到独立板块 KyBook 3 | calibre-web - IOS系统最佳图书伴侣 Tmux 安装和使用教程 DockerHub 加速镜像部署 - 使用cloudflare 代理 docker的零停机部署 SD-webui 批量处理图片 ubuntu 安装 ComfyUI ubuntu 安装 stable-diffusion-webui 测试策略:微服务架构 单元测试:测试单元质量提升
Keepalived高可用
2022-01-05 · via 博客 on 打工人日志

Keepalived 高可用

配置文件存放位置:/usr/share/doc/keepalived/samples
VVRP 虚拟路由冗余协议

组成

LB 集群:Load Balancing,负载均衡集群,平均分配给多个节点
HA 集群:High Availability,高可用集群,保证服务可用
HPC 集群:High Performance Computing,高性能集群

配置

keepalived+LVS+nginx

  1. 各节点时间必须同步:ntp, chrony
  2. 关闭防火墙及 SELinux

同步各节点时间

1#安装ntpdate
2yum -y install ntpdate
3#更改时区
4timedatectl set-timezone 'Asia/Shanghai'
5#查看时间
6timedatectl
7datetime

安装 keepalived

1#安装
2yum -y install keepalived

创建 check_apiserver.sh

1# 创建检测脚本
2vim /etc/keepalived/check_apiserver.sh 
 1#!/bin/bash
 2
 3# VIP 地址(你的 Kubernetes apiserver 将通过这个 VIP 暴露)
 4APISERVER_VIP="10.10.10.68" # 设定你自己的vip
 5APISERVER_PORT="6443"
 6
 7errorExit() {
 8  echo "*** $*" 1>&2
 9  exit 1
10}
11
12# 检查 apiserver 的 /healthz
13curl -sf --max-time 3 https://${APISERVER_VIP}:${APISERVER_PORT}/healthz \
14  -k -o /dev/null || errorExit "API Server Unhealthy"

配置master

1vim /etc/keepalived/keepalived.conf
 1vrrp_script chk_apiserver {
 2    script "/etc/keepalived/check_apiserver.sh"
 3    interval 3
 4    weight -10
 5    fall 3
 6    rise 2
 7}
 8
 9vrrp_instance VI_1 {
10    state MASTER
11    interface eth0 # 改为你实际网关
12    virtual_router_id 51
13    priority 120 #master改为最大值
14    advert_int 1
15
16    authentication {
17        auth_type PASS
18        auth_pass 123456 #改为实际的密码
19    }
20
21    virtual_ipaddress {
22        10.10.10.68/24  #改为vip地址
23    }
24
25    track_script {
26        chk_apiserver
27    }
28}

启动keepalived

1systemctl enable keepalived --now
2systemctl status keepalived
3# 检测vip是否正常
4ip a | grep eth0
5ping 10.10.10.68
6curl -k https://10.10.10.68:6443/healthz

配置 backup

1vim /etc/keepalived/keepalived.conf
 1vrrp_script chk_apiserver {
 2    script "/etc/keepalived/check_apiserver.sh"
 3    interval 3
 4    weight -10
 5    fall 3
 6    rise 2
 7}
 8
 9vrrp_instance VI_1 {
10    state BACKUP                   # master2/master3 上改为 BACKUP
11    interface eth0
12    virtual_router_id 51
13    priority 100                   # master2: 100, master3: 90
14    advert_int 1
15
16    authentication {
17        auth_type PASS
18        auth_pass 123456
19    }
20
21    virtual_ipaddress {
22        10.10.10.68/24
23    }
24
25    track_script {
26        chk_apiserver
27    }
28}

启动keepalived

1systemctl enable keepalived --now
2systemctl status keepalived
3# 检测vip是否正常
4ping 10.10.10.68
5curl -k https://10.10.10.68:6443/healthz