内容提要
本文介绍了如何搭建跨云的k3s集群,使用WireGuard进行安全网络连接。首先安装WireGuard并升级内核,然后配置各节点的IP和密钥,编写WireGuard配置文件。最后安装k3s主节点和工作节点,确保集群正常运行,利用WireGuard加密传输保障通信安全。
延伸解读
内核升级是WireGuard部署的前提
文章强调,CentOS 7默认内核为3.10,无法直接运行WireGuard,必须升级到5.15.2-1.el7.elrepo.x86_64。若内核版本不足,启动WireGuard时会报“Operation not supported”错误。因此,在跨云搭建k3s集群前,务必先在所有节点完成内核升级并重启,否则后续步骤无法进行。
WireGuard配置中的关键参数解析
在WireGuard配置中,Interface部分的Address是分配给本机的虚拟IP,ListenPort是UDP监听端口;Peer部分的EndPoint是对端公网IP和端口,AllowedIPs则指定哪些IP的流量应转发到该对端。文章提醒,多个Peer的AllowedIPs不能冲突,且EndPoint的IP需所有节点都能通信,内网IP也可用。
k3s安装参数与WireGuard的配合
安装k3s主节点时,需通过--node-external-ip设置公网IP,--advertise-address设置通信地址,--node-ip指定WireGuard虚拟IP,--flannel-iface指定wg0网卡。工作节点则需设置K3S_URL为master的虚拟IP和6443端口,K3S_TOKEN从master的/var/lib/rancher/k3s/server/node-token获取。这样节点间流量便通过WireGuard加密传输。
WireGuard的持久化与热重载
系统重启后,WireGuard创建的wg0网卡会丢失。文章建议使用systemctl enable wg-quick@wg0生成systemd守护脚本,实现开机自动启动。此外,wg-quick未提供重载命令,但可通过wg syncconf wg0 <(wg-quick strip wg0)实现配置热重载,避免重启服务中断通信。
Q&A
如何安装WireGuard以搭建K3S集群?
首先,确保内核版本升级到5.15.2-1.el7.elrepo.x86_64,然后通过yum安装wireguard-tools。
在搭建K3S集群时,如何配置各节点的IP和密钥?
为每个节点生成私钥和公钥,并在WireGuard配置文件中设置相应的IP和密钥。
如何确保K3S集群的安全通信?
使用WireGuard加密传输数据,确保节点间的通信安全。
安装K3S主节点时需要哪些参数?
需要指定外部IP、内部IP和使用WireGuard的网络接口等参数。
如何检查K3S集群的状态?
可以使用kubectl命令检查集群状态,确认所有节点正常运行。
在安装工作节点时需要设置哪些环境变量?
需要设置K3S_URL和K3S_TOKEN以确保与主节点的连接。