kubernetes内部直接与外部通信?
kubernetes internal to external communication directly?
我想访问 pod 中的一些外部 Saas api 端点。我使用法兰绒作为 kubernetes 网络。但是当我尝试在 pod 中 ping 外部 IP 时,数据包将在没有伪装的情况下发送。所以ping不通
我发现了这个:
https://docs.openshift.org/latest/dev_guide/integrating_external_services.html
在没有选择器的情况下创建服务并附加相关端点后,我可以在 pod 中获取外部服务。
我还可以在节点的 10.254.0.0/16 上添加 iptables 伪装,以启用直接访问外部端点,如下所示:
iptables -t nat -A -A POSTROUTING -s 10.254.61.0/24 ! -d 10.254.0.0/16 -j MASQUERADE
但是我们不能直接访问外部 Saas 端点吗?
kubernetes 或 flannel(或其他网络插件?)上是否有任何配置可以直接允许内部到外部通信?
谢谢
如果您告诉 [1],kubelet 将确保创建 iptables 后路由规则,但我怀疑您是 运行 --configure-cbr0=false 因为您想允许 flannel 设置容器网络。相信你可以告诉flannel给你定规则:
flanneld --help
...
-ip-masq
setup IP masquerade rule for traffic destined outside of overlay network
我想访问 pod 中的一些外部 Saas api 端点。我使用法兰绒作为 kubernetes 网络。但是当我尝试在 pod 中 ping 外部 IP 时,数据包将在没有伪装的情况下发送。所以ping不通
我发现了这个: https://docs.openshift.org/latest/dev_guide/integrating_external_services.html 在没有选择器的情况下创建服务并附加相关端点后,我可以在 pod 中获取外部服务。
我还可以在节点的 10.254.0.0/16 上添加 iptables 伪装,以启用直接访问外部端点,如下所示:
iptables -t nat -A -A POSTROUTING -s 10.254.61.0/24 ! -d 10.254.0.0/16 -j MASQUERADE
但是我们不能直接访问外部 Saas 端点吗?
kubernetes 或 flannel(或其他网络插件?)上是否有任何配置可以直接允许内部到外部通信?
谢谢
如果您告诉 [1],kubelet 将确保创建 iptables 后路由规则,但我怀疑您是 运行 --configure-cbr0=false 因为您想允许 flannel 设置容器网络。相信你可以告诉flannel给你定规则:
flanneld --help
...
-ip-masq setup IP masquerade rule for traffic destined outside of overlay network