我确实设置了CoreOS单节点群集,可以从我的客户端访问API而不会出现任何问题。我跟着guide。所有部署的pod都运行正常,我可以毫无问题地访问节点上的那些。
现在我正在尝试使用Nginx-Ingress建立来自外部世界的连接。服务/端点在nginx中(通过标志--v = 2计算出来),但不幸的是没有连接到节点IP。 kubectl get ing
显示节点IP,但端口未连接到节点,因此我无法从外部世界访问端点/服务。
我尝试在相应的服务上指定type: NodePort
,但这似乎不起作用。此外,在入口控制器RC上设置hostNetwork: true
,但这也不起作用。
- 更新开始 -
只是尝试在入口控制器RC前使用服务。此服务的类型为NodePort。问题仍然存在,端口未在节点上打开,但在群集IP范围以及服务IP范围内。
这是否暗示了网络问题? iptables的?不确定。
- 更新结束 -
那么,如何在这个单节点集群上从外部世界访问我的服务?任何帮助表示赞赏。
- 更新 -
将--hostname-override=EXTERNAL-IP
添加到kube-proxy yaml
,服务(10.3.0.186)可以访问,端点(10.2.9.8:8080)可以从节点访问,以下iptables条目存在:
-A KUBE-SEP-VN7N5XLSTJBPYG7C -s 10.2.9.8/32 -m comment --comment "default/echoheaders:http" -j KUBE-MARK-MASQ
-A KUBE-SEP-VN7N5XLSTJBPYG7C -p tcp -m comment --comment "default/echoheaders:http" -m tcp -j DNAT --to-destination 10.2.9.8:8080
-A KUBE-SERVICES -d 10.3.0.186/32 -p tcp -m comment --comment "default/echoheaders:http cluster IP" -m tcp --dport 80 -j KUBE-SVC-P5R2U4YB6QJZHBET
-A KUBE-SVC-P5R2U4YB6QJZHBET -m comment --comment "default/echoheaders:http" -j KUBE-SEP-VN7N5XLSTJBPYG7C
- 更新结束 -