我正在尝试使用单个主设备和单节点设置的Openshift v3。 我为ruby hello openshift安装了examples / sample-app,pod和服务已启动。当我尝试使用NodePort或LoadBalancer选项启用对此应用程序前端的外部访问时,我会继续如下所示:
[root@openshift-master~]# curl openshift-node.tidalsoft:31597
curl: (7) Failed connect to openshift-node.tidalsoft:31597; No route to host
[root@openshift-master~]# oc describe service frontend
Name: frontend
Namespace: test
Labels: template=application-template-stibuild
Selector: name=frontend
Type: NodePort
IP: 172.30.252.16
Port: web 5432/TCP
NodePort: web 31597/TCP
Endpoints: 10.1.0.10:8080,10.1.0.13:8080
Session Affinity: None
No events.
当我检查节点上的规则时:
[root@openshift-node~]# iptables -t nat -L | grep 31597
REDIRECT tcp -- anywhere anywhere /* test/frontend:web */ tcp dpt:31597 redir ports 39433
DNAT tcp -- anywhere anywhere /* test/frontend:web */ tcp dpt:31597 to:10.88.102.48:39433
因此我添加了允许重定向端口39433的规则
[root@openshift-node~]# iptables -I OS_FIREWALL_ALLOW -p tcp -m tcp --dport 39433 -j ACCEPT
添加此规则后,外部访问开始工作。我现在感到困惑......这是外部访问需要的东西还是我在这里缺少任何配置?
任何建议都会很棒。
答案 0 :(得分:0)
要启用对某些服务的外部(群集外)访问,最好使用本机openhift功能 - route。
以下是有关adding route support to your openshift cluster所需步骤的openshift文档的信息。
答案 1 :(得分:0)
这是Ansible安装程序中的一个错误,OpenShift SDN也存在一个已知问题(它会覆盖入站规则)。两者都有待解决。