前几周又把家庭集群从 docker swarm 切到 k3s 了,我把系统全装上了最新的 debian ,然后遇到好几个坑。


## 一、 [kilo]( https://kilo.squat.ai/docs/introduction) 会一直报规则不支持

容器会一直报 iptables 某个规则不支持,请使用 nftables...

但是能正常安装,使用也没问题,但是正常几天后,会突然出现集群网络不通的问题,不知道是不是也是 nftables 的问题

排查一路是发现 kilo 生成的 WireGuard ip 是一个旧的 ip ,一直没变

最后没找到解决方案,所以换成 tailscale 了,k3s 唯一给出的 vpn 方案。

## 二、tailscale subnet 无效

tailscale subnet 按官方教程配置好了,结果只能 ping 通装了 tailscale 的那个节点的内网 ip ,ping 不通其它的,看 iptables 规则也是有的。

只能搜索引擎慢慢翻,试了几种都没用,最后 reddit 找到个说修改 [firewall-mode]( https://tailscale.com/kb/1294/firewall-mode#how-to-set-the-firewall-mode) 的,加上就解决了...
```bash
TS_DEBUG_FIREWALL_MODE=nftables
```

行吧,好歹是解决了。


## 三、 安装 Calico 替换 flannel ,来解决获取不到用户真实 ip 的问题

装上这个之后,直接给我集群干崩了,无限重启。

翻官网 issues ,给得方案是不要使用 nftables https://github.com/projectcalico/calico/issues/8025

绷不住了,一路踩坑过来,是不是不能用 nftables 了,**有人用上了吗**

关键是 debian 最新的两个版本,默认使用 nftables
举报· 89 次点击
登录 注册 站外分享
5 条回复  
DefoliationM 小成 2024-7-9 20:14:05
看起来你的机器上不只装了 k8s ,还装了其他东西,我建议在完全干净的系统里装 k8s ,不然不好排查,完全不知道问题出在哪。
LanLiang 小成 2024-7-10 10:55:22
kubernetes 官方 (kube-proxy)对 nftables 的支持将会在 1.31 版本进入 beta 阶段,默认开启.
ericFork 小成 2024-7-10 20:42:13
calico 对 nftables 的支持将在 v3.29 引入( tech-preview ),GA 可能还需要一些耐心
guigeng 小成 2024-7-16 14:56:06
我是 k3s + tailscale 方案,kube-proxy 使用 ipvs
就是有个问题,我内网有其他 vm 做了 adfertise-routes ,只能通过 tailnet 的 ip 访问 master 了
`TS_DEBUG_FIREWALL_MODE=nftables`这个我没设置
```bash
NAME        STATUS   ROLES                  AGE     VERSION
dogyun      Ready    <none>                 19h     v1.29.6+k3s2
dogyun-js   Ready    <none>                 3h28m   v1.29.6+k3s2
k3s-lab     Ready    control-plane,master   21h     v1.29.6+k3s2
oracle-a1   Ready    <none>                 19h     v1.29.6+k3s2
oracle-a2   Ready    <none>                 19h     v1.29.6+k3s2
oracle-a3   Ready    <none>                 19h     v1.29.6+k3s2
oracle-a4   Ready    <none>                 21h     v1.29.6+k3s2
virmach     Ready    <none>                 19h     v1.29.6+k3s2
```

目前在任意一台 node 上 Ping pod 的 ip 地址都正常。
os 基本是用 debian12 ,ubuntu22.04 24.04
返回顶部