私は実験を設定しましたローカルクーベルネットクラスターは1つのマスターノードと3つのスレーブノードで構成されています。私は、ポート10001でリッスンするカスタムサービスのための配備を作成しました。目標は、安定したIP /ホスト名を持つ、例示的なエンドポイント/hello
にアクセスすることです。 http://<master>:10001/hello
。ローカルクラスタでKubernetes podにアクセスするには?
デプロイメントをデプロイすると、ポッドは正常に作成され、クラスタIPを通じてアクセスできます。
クラウドプロバイダのソリューションは、デプロイメント用のロードバランササービスを作成することであることを理解しているので、サービスをexpose
にするだけです。ただし、これはローカルクラスタではサポートされていないようです。 Ingressの設定は、この目的のために過度のようです。そうじゃない?
kube proxy
は行く方法です。ただし、マスターノードでkube proxy --port <port>
を実行すると、http://<master>:<port>/api/...
にアクセスできますが、実際のポッドにはアクセスできません。
多くの関連する質問(例:How to access services through kubernetes cluster ip?)がありますが、回答は受け入れられません。 topicのKubernetes documentationもかなり疎ですので、概念的に正しいアプローチが何であるかについてはわかりません。
私はまっすぐな解決策や良いチュートリアルを探しています。それは明確なパスが欠けている非常に典型的なユースケースと思われる。
すでにロードバランシングのために外部HAProxyを使用していますが、これは私のシナリオでは最もスムーズな解決策です。しかし、ノードは、iptablesルールを追加した後であっても、外部リクエストからブロックされたままです(ただし、マシン内部から外部IP経由でアクセスすることができます): 'iptables -A INPUT -p tcp --dport -j ACCEPT' Anyそれについての手がかりは? –
Carsten