kubernetes直接在外部沟通内部?

时间:2015-11-10 02:17:10

标签: kubernetes

我想在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 masquerade,以便直接访问外部端点,如下所示:    

 iptables -t nat -A -A POSTROUTING -s 10.254.61.0/24 ! -d 10.254.0.0/16 -j MASQUERADE 

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

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

由于

1 个答案:

答案 0 :(得分:0)

如果你告诉它[1],那么kubelet将确保创建iptables postrouting规则但是我怀疑你正在运行--configure-cbr0 = false,因为你想允许法兰绒设置容器网络。我相信你可以告诉法兰绒为你设定规则:

  

flanneld --help
  ...
  -ip-伪装           为覆盖网络之外的流量设置IP伪装规则

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