1

我正在尝试使用具有单个节点设置的单个主节点的 Openshift v3。我为 ruby​​ hello openshift 安装了示例/示例应用程序,并且 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

添加此规则后,外部访问开始工作。我现在很困惑......这是外部访问所需的东西还是我在这里缺少任何配置?

任何建议都会很棒。

4

2 回答 2

0

这是 Ansible 安装程序中的一个错误,OpenShift SDN 也存在一个已知问题(它会覆盖入站规则)。两者都将得到解决。

于 2015-12-13T17:41:48.497 回答
0

为了启用对某些服务的外部(集群外)访问,最好使用本机 openshift 功能-路由

这里还提供了来自 openshift 文档的有关向 openshift 集群添加路由支持所需步骤的信息。

于 2015-12-07T16:58:45.583 回答