当前位置: 首页 > news >正文

k3s 高可用集群部署(内置 etcd + VIP + keepalived)

k3s 高可用集群部署(内置 etcd + VIP + keepalived)

一、节点规划

  • master 节点:10.0.0.40、10.0.0.51、10.0.0.53
  • worker 节点:10.0.0.52、10.0.0.54
  • VIP(高可用入口):10.0.0.41

二、离线包准备

  1. 下载 k3s 安装脚本、二进制、镜像包
  2. 导入镜像到本地或 Harbor
  3. 打包所有安装文件

三、keepalived 配置(VIP 漂移)

网卡名:ens192(根据实际情况修改)

10.0.0.51(MASTER)

vrrp_instance VI_1 {state MASTERinterface ens192virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 123456}virtual_ipaddress {10.0.0.41}
}

10.0.0.53(BACKUP)

vrrp_instance VI_1 {state BACKUPinterface ens192virtual_router_id 51priority 90advert_int 1authentication {auth_type PASSauth_pass 123456}virtual_ipaddress {10.0.0.41}
}

10.0.0.40(BACKUP)

vrrp_instance VI_1 {state BACKUPinterface ens192virtual_router_id 51priority 80advert_int 1authentication {auth_type PASSauth_pass 123456}virtual_ipaddress {10.0.0.41}
}

四、master 节点部署命令(内置 etcd 高可用 + VIP)

第一个 master 节点(10.0.0.40)

INSTALL_K3S_SKIP_DOWNLOAD=true \
K3S_KUBECONFIG_MODE="644" \
INSTALL_K3S_EXEC="server --cluster-init --node-ip=10.0.0.40 --advertise-address=10.0.0.40 --tls-san=10.0.0.41 --docker" \
/usr/local/bin/install_k3s.sh

获取集群 token

cat /var/lib/rancher/k3s/server/node-token

其他 master 节点(10.0.0.51/53)

INSTALL_K3S_SKIP_DOWNLOAD=true \
K3S_KUBECONFIG_MODE="644" \
K3S_TOKEN="<集群token>" \
INSTALL_K3S_EXEC="server --server https://10.0.0.40:6443 --node-ip=<本机IP> --advertise-address=<本机IP> --tls-san=10.0.0.41 --docker" \
/usr/local/bin/install_k3s.sh
  • <本机IP> 分别为 10.0.0.51、10.0.0.53

五、worker 节点部署命令

INSTALL_K3S_SKIP_DOWNLOAD=true \
K3S_URL="https://10.0.0.41:6443" \
K3S_TOKEN="<集群token>" \
INSTALL_K3S_EXEC="agent --docker" \
/usr/local/bin/install_k3s.sh

六、常见问题与排查

  • 节点 NotReady:检查 Docker、镜像、网络。
  • VIP 漂移异常:检查 keepalived 配置、网卡名、priority。
  • k3s-agent 启动失败:确认 k3s 二进制权限、Docker 服务。
  • 镜像拉取失败:检查 registries.yaml 和 Harbor 权限。
  • keepalived 版本建议一致,避免兼容性问题。
  • CentOS 7 不建议直接用 CentOS 8 的 keepalived rpm 包。

七、关键注意事项

  • 所有 master 节点 --tls-san 必须为 VIP。
  • worker 节点和 kubectl 连接 VIP 地址。
  • keepalived 配置的网卡名需与实际一致(如 ens192)。
  • 建议至少 3 个 master 节点,保证 etcd 高可用。
  • 如需升级 keepalived,建议源码编译或用 EPEL 源。
http://www.wxhsa.cn/company.asp?id=6718

相关文章:

  • 问HashMap底层原理?
  • 用 Go 重写 adbkit:原理、架构与搭建实践
  • C语言环境搭建之Linux子系统使用vscode连接子系统
  • 移远AT指令笔记
  • 数据类型
  • iphone运行windows系统
  • NVR接入录像回放平台EasyCVR视频融合平台语音对讲配置指南
  • Ubuntu filebrowser网盘工具安装
  • 图片结构 - voasem
  • ESP32做AP,ESP8266做station,遥控
  • 实用指南:25年高联:一试填空题解析(下篇)
  • Spring AOP 面向切面编程 - 浪矢
  • jvm内存泄漏的排查tips总结
  • IPA
  • Chromium历史版本下载方式
  • 【ACM出版】第三届物联网与云计算技术国际学术会议 (IoTCCT 2025)
  • 2025年最全 Wiki 管理工具测评:ONES、Confluence、Notion......哪个更适合你?
  • 鼠你爱称重
  • 详细介绍:用户争夺与智能管理:定制开发开源AI智能名片S2B2C商城小程序的战略价值与实践路径
  • PlorarD(WEB中等)
  • 神经网络稀疏化设计构架方式和原理深度解析
  • 天下拍拍卖系统:二方系统也能扩展三方平台功能
  • express使用redis
  • day07 课程
  • 111
  • 排序实现java - 教程
  • .net core 发布到 iis 步骤
  • kylin SP2安装mysql8.4.5
  • 微信社群机器人接口
  • C++的枚举类