我按照说明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)地址?
答案 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)