単一ノード設定の単一マスターで Openshift v3 を試しています。ruby hello openshift の examples/sample-app をインストールしたところ、ポッドとサービスが起動しました。このアプリのフロントエンドへの外部アクセスを有効にするために 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.
node のルールを確認すると:
[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
このルールを追加すると、外部アクセスが機能し始めます。私は今混乱しています...これは外部アクセスに必要なものですか、それともここに設定がありませんか?
どんな提案も素晴らしいでしょう。