在使用 TKE 集群服务的过程中,某些场景下,可能会出现服务访问不通的问题,如果确认后端 Pod 访问正常,则可能是由于 kube-proxy 组件版本较低,导致节点上的 iptables 或 ipvs 服务转发规则下发失败。本文档整理了低版本 kube-proxy 存在的若干问题,并给出相应的修复指引。
kube-proxy 未能正确适配节点 iptables 后端
错误信息示例
Failed to execute iptables-restore: exit status 2 (iptables-restore v1.8.4 (legacy): Couldn't load target 'KUBE-MARK-DROP':No such file or directory
问题原因
kube-proxy 在执行 iptables-restore 时,所依赖的 KUBE-MARK-DROP Chain 不存在,导致同步规则失败后退出。 KUBE-MARK-DROP Chain 由 kubelet 负责维护。
一些高版本的 OS 使用的 iptables 后端为 nft,而低版本 kube-proxy 使用的 iptables 后端为 legacy。当低版本 kube-proxy 运行在高版本 OS 上时,会因为 iptables 后端不匹配而读不到 KUBE-MARK-DROP Chain。高版本 OS 包括:
tlinux2.6 (tk4)
tlinux3.1
tlinux3.2
CentOS8
Ubuntu20
修复指引
升级 kube-proxy,需要按如下逻辑处理:
| TKE 集群版本 |
修复策略 |
| 1.24 |
升级 kube-proxy 到 v1.24.4-tke.5 及以上 |
| 1.22 |
升级 kube-proxy 到 v1.22.5-tke.11 及以上 |
| 1.20 |
升级 kube-proxy 到 v1.20.6-tke.31 及以上 |
| 1.18 |
升级 kube-proxy 到 v1.18.4-tke.35 及以上 |
| 1.16 |
升级 kube-proxy 到 v1.16.3-tke.34 及以上 |
| 1.14 |
升级 kube-proxy 到 v1.14.3-tke.28 及以上 |
| 1.12 |
升级 kube-proxy 到 v1.12.4-tke.32 及以上 |
| 1.10 |
升级 kube-proxy 到 v1.10.5-tke.20 及以上 |

最低0.47元/天 解锁文章
4422

被折叠的 条评论
为什么被折叠?



