web-dev-qa-db-ja.com

ゲストノードでKubernetesサービスにアクセスできません

Kubernetes Githubリポジトリでゲストブックの例を実行しようとしましたが、ローカルホストからこのサービスにアクセスできません。私のテスト環境は、CloudStackによってプロビジョニングされた2台の仮想マシン(CentOS7を使用)で構成されており、OpenShiftOriginがインストールされています。これがサービスリストです:

    [root@openshift-master AMD64]# ./oc get svc
NAME              CLUSTER-IP       EXTERNAL-IP   PORT(S)                   AGE
docker-registry   172.30.39.251    <none>        5000/TCP                  1d
guestbook         172.30.55.125    nodes         3000/TCP                  56m
kubernetes        172.30.0.1       <none>        443/TCP,53/UDP,53/TCP     1d
redis-master      172.30.24.94     <none>        6379/TCP                  1h
redis-slave       172.30.132.250   <none>        6379/TCP                  1h
router            172.30.33.117    <none>        80/TCP,443/TCP,1936/TCP   1d

公開されているサービスはゲストブックです。サービスゲストブックの説明は次のとおりです。

[root@openshift-master AMD64]# ./oc describe svc guestbook
Name:           guestbook
Namespace:      default
Labels:         app=guestbook
Selector:       app=guestbook
Type:           NodePort
IP:         172.30.55.125
Port:           <unset> 3000/TCP
NodePort:       <unset> 30642/TCP
Endpoints:      172.17.0.6:3000,172.17.0.7:3000,172.17.0.8:3000
Session Affinity:   None
No events.

私が行った場合:

curl 172.30.55.125:3000

ゲストブックポッドをホストするノード、クラスター内の他のノード、および私のホストマシン(192.168.1.2)からのみ機能します。機能しません。

CloudStackですべてのポートを開きました。そうしないと、ノードをsshできず、ノードで次のファイアウォールルールを設定します。

firewall-cmd --permanent --zone=public --add-port=30642/tcp

30642はNodePortであり、クラスター外から到達するために必須です。解決する方法について何か考えがありますか?前もって感謝します。

2
DarkSkull

curl 172.17.0.6:3000(つまり、各Endpointsアドレス)は、すべてのクラスターノードから直接使用できる必要があります。それが機能しない場合は、クラスターネットワークが正しく設定されていません。これには、あるノードから別のノードに送信されたパケットをフィルタリングするファイアウォールまたはSDNが含まれる可能性があります。

172.30.55.125:3000は、すべてのクラスターノードのiptablesリストにエントリがあり、各クラスターノードのローカルkube-proxyデーモンによって維持されている必要があります。リモートエンドポイントのカーリングは機能するが、サービスの仮想IPとポートの使用が失敗する場合は、kube-proxyが機能していない可能性があります。 iptablesエントリ、プロセスステータス、およびログファイルを確認してください。

最後に、ゲストブックアプリが実際に接続を受信して​​いる可能性がありますが、運命の逆引きDNSルックアップを試行している間、ゲストブックアプリは中止またはブロックしています。

1
aecolley