前置条件
2台以上含公网的机器(可ipv6/ipv4公网均可)
所有设备安装环境:
# 1. 更新系统并安装 EPEL 和 ELRepo 源(获取 WireGuard 模块)
sudo dnf update -y
sudo dnf install -y epel-release elrepo-release
# 2. 安装 WireGuard 内核模块(kmod)和工具(tools)
# kmod-wireguard 提供内核模块,wireguard-tools 提供 wg 等命令行工具
sudo dnf install -y kmod-wireguard wireguard-tools
# 3. 验证 WireGuard 模块是否已加载
# K3s 启动时会尝试加载,但手动验证一下更保险
sudo modprobe wireguard
sudo lsmod | grep wireguard
server 增加配置:
# 如果是初始安装则增加在扩展命令上,否则更改k3s service配置
--node-external-ip="3.96.164.33" \ # 对外的公网ip, 双栈则两个都配上
--flannel-backend=wireguard-native \ # 指定通信方式为 wireguard, 默认vxlan不支持跨网通信
--flannel-external-ip
---
# 开放默认的 WireGuard 端口(UDP)
sudo firewall-cmd --zone=public --add-port=51820/udp --permanent
# 重新加载防火墙规则使之生效
sudo firewall-cmd --reload
agent 配置
# 如果是初始安装则增加在扩展命令上,否则更改k3s agent配置
'--node-external-ip' \
'240e:399:e6b:2b91:be24:11ff:fe14:6e92' \ # 对外的公网ip, 双栈则两个都配上
---
--- agent 建议把agent防火墙针对server的ip全开放。
# 开放默认的 WireGuard 端口(UDP)
sudo firewall-cmd --zone=public --add-port=51820/udp --permanent
# 重新加载防火墙规则使之生效
sudo firewall-cmd --reload
重启相关服务