k8s双栈协议无法访问集群外ipv6服务(解决)
k8s集群升级了双协议栈后,从集群内无法访问外部ipv6服务,已经确认部署了Endpoint和Service。而同样采用ipv4是没问题的。
k8s集群升级了双协议栈后,从集群内无法访问外部ipv6服务,已经确认部署了Endpoint和Service。而同样采用ipv4是没问题的。
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 -i eth0 host 1002:003B:456C:678D:890E:0012:234F:56G7 tcp -vv
发现可以收到发来的请求,但是并没有回包。
(资料图片仅供参考)
这里采用了一种比较简单的解决方案,最终方案应该通过集群的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上漂移,所以这不是一个好的方法。
标签:
k8s集群升级了双协议栈后,从集群内无法访问外部ipv6服务,已经确认部署了Endpoint和Service。而同样采用ipv4是没问题的。
央视网消息:尊重自然、保护生物多样性是大家共同的心愿。我们与其他生物一起生活在地球上,地球就是我们共同的家园。接下来让我
4月18日,网通社从2023上海车展现场获悉,全新奔驰长轴距GLC正式上市,新车共推出4款车型,提供5座 7座版本可选,官方指导价42 78万元起。新车
公司问答丨登康口腔回应冷酸灵抗敏感牙膏产品是否有提价计划:有投资者在互动平台向登康口腔(001328 SZ)提问,公司冷酸灵抗敏感牙膏产品要比云
中新网4月23日电据美媒报道,美国加州长滩市政府称,日前,约有25万加仑的污水流入洛杉矶河,导致公共海滩被关闭。据洛杉
4月22日,湖北港口集团、江西省港口集团以及湘水集团湖南省港务集团在汉签署战略合作协议,三省将共同打造长江中游城市群“组合港”,为长...
1、履约保函:由担保人为施工方(申请人)向业主(受益人)提供的,保证施工方履行工程建设合同责任和义务,承包商不履行合同的,业主可要求保证人
乳蛋饼可以原味或加酱汁食用乳蛋饼是一种烤箱烤制的咸味馅饼,在预烤的外壳中包含鸡蛋、奶酪、牛奶或奶油。乳蛋饼起源于法国洛林
[ 相关新闻 ]