我正在尝试使用具有单个节点设置的单个主节点的 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
添加此规则后,外部访问开始工作。我现在很困惑......这是外部访问所需的东西还是我在这里缺少任何配置?
任何建议都会很棒。