焦点热门:k8s双栈协议无法访问集群外ipv6服务(解决)
发布时间:2023-04-23 08:47:26
来源:腾讯云
问题背景
k8s集群升级了双协议栈后,从集群内无法访问外部ipv6服务,已经确认部署了Endpoint和Service。而同样采用ipv4是没问题的。
1 部署Endpoint和Service
apiVersion: v1kind: Servicemetadata: name: myep namespace: default labels: app: myepspec: ports: - name: http-8080 port: 8080 protocol: TCP targetPort: 8080 ipFamilies: - IPv6---apiVersion: v1kind: EndpointsapiVersion: v1metadata: name: myep #此名字需与 Service 中的 metadata.name 的值一致 namespace: default labels: app: myepsubsets: - addresses: - ip: 1002:003B:456C:678D:890E:0012:234F:56G7 ## 集群外Ip ports: - port: 8080 name: http-8080
然后在集群的Pod中访问myep:8080不通。
(资料图片)
分析
通过tcpdump在1002:003B:456C:678D:890E:0012:234F:56G7这台机器山上抓包:tcpdump -i eth0 host 1002:003B:456C:678D:890E:0012:234F:56G7 tcp -vv
发现可以收到发来的请求,但是并没有回包。
同样用tcpdump抓ipv4的包,是有回包的。分析ipv4和ipv6的差异:ipv4的SrcIP是Pod所在宿主机的ip,而ipv6的SrcIP是2000:100:100:100:9a7e:bead:f22c:9640,而2000:100:100:100::/64是集群内部的ipv6网段,可以确定ipv6的请求从Pod所在宿主机出来时没有进行SNAT转换。2 增加SNAT的iptables策略
这里采用了一种比较简单的解决方案,最终方案应该通过集群的cni配置解决。
为所有的宿主机添加iptables策略:
ip6tables -t nat -A POSTROUTING -s 2000:100:100:100::/64 -o eth0 -j SNAT --to-source FC00:0:130F::9C0:876A:130B
参数 | 说明 |
---|---|
-s | 要处理的源IP段 |
-o | 规则绑定的接口 |
--to-source | 替换的IP(本机IP) |
增加iptables策略后服务就可以访问了。
一些弯路
最初在服务所在主机上通过增加静态路由的方式也可以临时性达到目的:
ip -6 route add 2000:100:100:100::/64 via FC00:0:130F::9C0:876A:130B
相当于把Pod所在宿主机作为Pod内部网段的网关,这样可以临时解决问题,当时由于Pod会在集群的Node上漂移,所以这不是一个好的方法。
标签:
AD
更多相关文章
- 焦点热门:k8s双栈协议无法访问集群
- python-异常处理和错误调试-asyncio
- 量子计算机在信用评分卡组合优化中
- 全球聚焦:AI+SkeyeVSS视频融合平台
- 拉波-埃尔坎点赞记者批评阿莱格里的
- 花体字在线生成转换器(花体字在线
- 小作文给对象(小作文给对象)-天天
- 焦点资讯:电脑qq怎么看情侣关系(
- 环球聚焦:事业单位工作人员处分条
- 开卷品书香
- 【世界独家】安徽省全民健身展示大
- 【科技早报】微信新增音乐和视频号
- 今日看点:我市将举办文旅体宣传推
- 灵魂之尘多少级装备出_灵魂之尘分解
- adjust to是什么意思_adjust to的用法
- 环球头条:4月19日支票大写_4月10日
- 速读:超级五星战队2小游戏_超级五
- 全球短讯!用尽我的一切奔向你歌词_
- 当前速读:足球队员蛋被踢了_今天早
- 天天动态:冬笋的功效和作用及禁忌_
- 封闭针一针可以维持多长时间_封闭针
- 环球资讯:红霉素软膏的副作用与禁
- 林夕煜宸小说免费-环球速看
- 突如其来的近义词_突如其来造句 环
- 企业劳动争议协商调解规定是否废止_
- 世界最资讯丨我眼中的缤纷世界
- 全球最资讯丨世界上海拔最低的湖泊
- 环球精选!意大利国花是什么(中国
- 每日热讯!律师代出庭都要本人什么证
- 法院强制执行应提交的材料有哪些