防止Kubernetes单主/节点设置上的公共IP地址绑定

时间:2016-02-21 23:59:15

标签: kubernetes

我按照说明here启动单节点主kubernetes安装。然后计划通过直接托管在互联网上的nginx ingress controller(在物理服务器上,而不是GCE,AWS或其他云)上提供托管在其中的网站。

设置按预期工作,我可以点击负载均衡器并通过入口流到目标echoheaders实例,得到我的输出,一切看起来都很棒。好东西。

当我端口扫描服务器的公共互联网IP并看到除入口端口(80)之外的所有这些开放端口时,麻烦来了。

 Open TCP Port:     80          http
 Open TCP Port:     4194
 Open TCP Port:     6443        
 Open TCP Port:     8081        
 Open TCP Port:     10250
 Open TCP Port:     10251
 Open TCP Port:     10252       
 Open TCP Port:     10255
 Open TCP Port:     38654
 Open TCP Port:     38700
 Open TCP Port:     39055
 Open TCP Port:     39056
 Open TCP Port:     44667

所有额外端口都对应于cadvisor,skydns以及各种echo头和nginx实例,出于安全原因,这些实例不应绑定到服务器的公共IP地址。所有这些都被注入到主机的KUBE-PORTALS-HOST iptable中,并通过kube-proxy绑定到服务器的公共IP。

如何让hypercube告诉kube-proxy只绑定到docker IP(172.x)或私有集群IP(10.x)地址?

1 个答案:

答案 0 :(得分:0)

您应该能够在kube-proxy(http://kubernetes.io/docs/admin/kube-proxy/)上设置绑定地址:

--bind-address=0.0.0.0: The IP address for the proxy server to serve on (set to 0.0.0.0 for all interfaces)