私のkubernetesノードのそれぞれでkube-proxy
を実行しています。私は、仮想サービスホストを作成するためにiptablesルールをインストールしていることがわかります。私はフランネルオーバレイネットワーキングを使用して、私のノードのドッカーネットワークを接続します。これは、内部のドッカーのコンテナからすべてうまく動作します。だから、私はドッキング用のコンテナの中から直接サービスとポッドに接続することができます。ノード - ホストからサービスに接続できません
しかし、特定の要件のために、ドッキング・コンテナの内部と同じ方法で、ノード・ホストからサービスにアクセスする必要があります。問題は、これはサービスポッドが実行されているノードでのみ可能であるということです。私が今できるよ
[[email protected] ~]# iptables-save | grep dashboard
-A KUBE-SEP-CAT6SKLXJIMXS63T -s 172.16.99.5/32 -m comment --comment "kube-system/kubernetes-dashboard:" -j KUBE-MARK-MASQ
-A KUBE-SEP-CAT6SKLXJIMXS63T -p tcp -m comment --comment "kube- system/kubernetes-dashboard:" -m tcp -j DNAT --to-destination 172.16.99.5:9090
-A KUBE-SERVICES -d 10.254.242.220/32 -p tcp -m comment --comment "kube-system/kubernetes-dashboard: cluster IP" -m tcp --dport 80 -j KUBE-SVC-XGLOHA7QRQ3V22RZ
-A KUBE-SVC-XGLOHA7QRQ3V22RZ -m comment --comment "kube-system/kubernetes-dashboard:" -j KUBE-SEP-CAT6SKLXJIMXS63T
:
はそれは(ポッドがKUBE-ノード-2上で実行されている)の明確化などkubernetes-ダッシュボードポッドをホストしていない、ノード上iptables-save
の次の例を参照してください。 curl http://172.16.99.5:9090
にありますが、curl http://10.254.242.220
(kube-node-2でこのコマンドが成功しました)にはアクセスできません。一方、同じホストからdocker run -it --rm centos /usr/bin/curl http://10.254.242.220
が機能します。
私は、iptablesルールとNATingが欠けているという直感を持っています。そのため、すべてのパッケージがKUBE-SERVICES
チェーンにジャンプします。多分、誰かが理解していること、何が起こっているのか、解決策を提供するのを助けることができます。
どのようなFlannelバックエンドをお使いですか?宛先ホストがファイアウォールを使用してソースホストのIPから発信されるトラフィックをブロックしている可能性がありますか? –
VXLANバックエンドを使いたいです。 –