問題タブ [kube-proxy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1335 参照

kubernetes - kube-proxy のスケーラビリティ

kubernetes クラスターを試しているときに、スケーラビリティの問題が発生しました。テスト マシンのトポロジを簡素化するために、NodePort タイプを使用して個々のサービスを外部に公開します。ノードとマスターをホストするベアメタルは、24 個の CPU と 32G RAM を搭載した RHEL 7 です。専用のロード バランサーやクラウド プロバイダーのようなインフラストラクチャはまだありません。サービス定義のスニペットは以下のようになります

このようにして、アプリケーションは次の方法でアクセスできますhttps://[node_machine]:30443/[a_service]

このようなサービスは、1 つの Pod によってのみサポートされます。理想的には、複数のサービスを同じノードにデプロイし (ただし異なる NodePort を使用)、同時に実行したいと考えています。

同様のワークロードの場合、展開されるサービスの数を増やすと (したがってバックエンド ポッドも)、アプリケーションのパフォーマンスが低下することが明らかになるまで、物事はうまく機能していました。驚いたことに、サービスの読み込み時間を分析すると、「ネットワーク」レイヤーのどこかで速度が低下していることを示しているように見える「接続時間」が劇的に低下していることに気付きました。負荷はまだノードの CPU の多くを駆動するほど高くないことに注意してください。ドキュメントの欠点について読みましたが、ヒットしたものがそこに記載されている kube-proxy/Service の制限であるかどうかはわかりません。

質問は次のとおりです。

  1. よりスケーラブルにする方法について何か提案はありますか? つまり、アプリケーションのパフォーマンスを犠牲にすることなく、より多くのサービス/Pod をサポートできるようにするには? NodePort タイプは、サービスの「パブリック」アドレスを設定する最も簡単な方法ですが、すべてのサービスと Pod がこの方法で設定されている場合、スケーラビリティまたはパフォーマンスに制限はありますか?

  2. タイプを LoadBalancer に変更すると、違いはありますか? 「タイプ」:「ロードバランサー」

  3. さらに、外部からバックエンド Pod (またはサービス) にトラフィックをルーティングする HAProxy など、スケーラビリティを向上させる専用の LoadBalancer またはリバース プロキシを使用する利点はありますか? Nginx darkgaro/kubernetes-reverseproxy に対していくつかの作業が行われていることに気付きました。残念ながら、ドキュメントは不完全なようで、具体的な例はありません。他のスレッドで Vulcan について話している人がいますが、これは kubernetes に推奨される LB ツールですか?

あなたの推薦と助けは大歓迎です!

0 投票する
2 に答える
428 参照

kubernetes - マシン間の Kube プロキシの負荷分散

私の理解では、Kube-proxy は複数のマシンで実行されているサービスの負荷を分散できますか? 誰かが確認できますか、それがそのために設計されたものです.. Rgs

0 投票する
2 に答える
616 参照

kubernetes - kube-proxy の負荷分散はどのように行われますか

K8s クラスター内のノードはすべてkube-proxy実行されており、任意のノードがクラスター内の任意のサービスのトラフィックを転送できることを理解しています。

2 つのノードで実行されている 2 つのレプリカ ポッドを含むサービスがあるN1としN2ます。外部ロード バランサはトラフィックをN3およびに転送しますN4。最初の要求が に到達N3し、トラフィックを に迂回させます。2 番目の要求が到達し、トラフィックが N2 に転送されます。N3kube-proxyN1N4N4kube-proxy

kube-proxyは相互に通信して、以前のリクエストが に転送されたことを認識しN4、適切なロード バランシングのためにこのリクエストを転送する必要があります。または、決定がローカルであり、調整されていない場合、正しくロードされません。残高 ?kube-proxyN1N2kube-proxykube-proxy

0 投票する
1 に答える
8227 参照

kubernetes - kube-proxy のプロキシ モードで、ユーザー空間モードは何を意味しますか?

kube-proxy には --proxy-mode というオプションがあり、ヘルプ メッセージによると、このオプションは userspaceまたはiptablesすることができます (以下を参照)。

ここでユーザー空間モードが何を意味するのかわかりません。

ユーザー空間モードで kube-proxy を実行するときの動作原理を教えてください。

0 投票する
1 に答える
303 参照

kubernetes - kube-proxy デフォルト/Tomcat:http のエンドポイントが見つかりませんでした: サービス エントリがありません

OS Centos 7 を使用しています。私のポッド:

私のサービス:

サービスは次のようになります。

そしてポッド:

そして、Curl を実行すると:

その時点での Kube-proxy ログには、次のようなものが表示されます。

しかし、ポッドの IP アドレスとポート 8080 に対して直接 curl を実行すると、問題なく動作します。コマンドを実行すると kubectl get endpoints

この出力の「none」のフィールド ENDPOINTS は奇妙に見えます。どうしたの?