多云搭建 K3S 集群

多云搭建 K3S 集群

💡 原文中文,约9100字,阅读约需22分钟。
📝

内容提要

本文介绍了如何搭建跨云的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以确保与主节点的连接。

🏷️

标签

➡️

继续阅读