【问题标题】:kubernetes internal to external communication directly?Kubernetes内部直接对外通信?
【发布时间】:2015-11-10 02:17:09
【问题描述】:

我想访问 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 伪装

但是我们不能直接访问外部 Saas 端点吗?

kubernetes 或 flannel(或其他网络插件?)上是否有任何配置可以直接允许内部到外部通信?

谢谢

【问题讨论】:

  • 在关于网络的 kubernetes 文档中,我也发现了这个 link 。这是否意味着 iptables 伪装是正确的做法?

标签: kubernetes


【解决方案1】:

如果您将 kubelet 告知 [1],kubelet 将确保创建 iptables 后路由规则,但是我怀疑您正在使用 --configure-cbr0=false 运行,因为您希望允许 flannel 设置容器网络。我相信您可以告诉 flannel 为您设置规则:

法兰绒--帮助
...
-ip-masq 为覆盖网络之外的流量设置 IP 伪装规则

[1]https://github.com/kubernetes/kubernetes/blob/b9cfab87e33ea649bdd13a1bd243c502d76e5d22/pkg/kubelet/container_bridge.go#L122

【讨论】:

  • 谢谢,正是我想要的。 Flanneld 现在可以根据您的帮助设置 ip-masq
猜你喜欢
  • 1970-01-01
  • 2019-02-26
  • 2021-06-03
  • 1970-01-01
  • 2021-06-28
  • 2018-09-24
  • 2019-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多