首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何解决 TKE DataPlane V2 与 Istio 1.23 的兼容问题

如何解决 TKE DataPlane V2 与 Istio 1.23 的兼容问题

原创
作者头像
炎可
发布2025-08-14 13:06:14
发布2025-08-14 13:06:14
2260
举报

我们新购置了一套 TKE 集群,使用版本 1.30 并启用了 DataPlane V2,实际使用中发现和现有的集群行为有差异。

表现为,原本应该自动注册进入 Istio Mesh 的原生 Kubernetes Service,无法被 Mesh 中的其他服务访问,表现为报告 No Healthy Upstream,除非显式指定 outboundTrafficPolicy.mode: ALLOW_ANY,即视作为外部服务。

经过复杂的排查,最终确定是 DataPlane V2 的 Cilium 与 Istio 1.23 Sidecar 模式存在冲突。

最后经过多次尝试,找到了最小改动的解决方法

  1. 修改 kube-system 命名空间下的 cilium-config ConfigMap

增加或者修改如下参数:

代码语言:yaml
复制
bpf-lb-sock-hostns-only: "true"
  1. 重启 kube-system 下的 Deployment tke-eni-agent 和 DaemonSet tke-eni-agent

根因

Cilium 的 bpf-lb-sock: true 在 Pod 级别直接翻译 ClusterIP 到 Pod IP,绕过了 Istio 的 Envoy sidecar 流量捕获,导致 503 NU(No Upstream Host)错误。同时,tke-cni-agent因 ClusterIP 路由问题(kube-proxy-replacement: disabled 时缺失 kube-proxy)无法访问 API 服务器。

解决方案效果

设置 bpf-lb-sock-hostns-only: true 限制 socket 负载均衡到 host namespace,让 Cilium 在 host 级别处理 ClusterIP,与 Istio 的 iptables 重定向兼容,解决了 Istio 和 Multus/tke-cni-agent 的问题。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档