問題タブ [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.
kubernetes - kube-proxy のスケーラビリティ
kubernetes クラスターを試しているときに、スケーラビリティの問題が発生しました。テスト マシンのトポロジを簡素化するために、NodePort タイプを使用して個々のサービスを外部に公開します。ノードとマスターをホストするベアメタルは、24 個の CPU と 32G RAM を搭載した RHEL 7 です。専用のロード バランサーやクラウド プロバイダーのようなインフラストラクチャはまだありません。サービス定義のスニペットは以下のようになります
このようにして、アプリケーションは次の方法でアクセスできますhttps://[node_machine]:30443/[a_service]
このようなサービスは、1 つの Pod によってのみサポートされます。理想的には、複数のサービスを同じノードにデプロイし (ただし異なる NodePort を使用)、同時に実行したいと考えています。
同様のワークロードの場合、展開されるサービスの数を増やすと (したがってバックエンド ポッドも)、アプリケーションのパフォーマンスが低下することが明らかになるまで、物事はうまく機能していました。驚いたことに、サービスの読み込み時間を分析すると、「ネットワーク」レイヤーのどこかで速度が低下していることを示しているように見える「接続時間」が劇的に低下していることに気付きました。負荷はまだノードの CPU の多くを駆動するほど高くないことに注意してください。ドキュメントの欠点について読みましたが、ヒットしたものがそこに記載されている kube-proxy/Service の制限であるかどうかはわかりません。
質問は次のとおりです。
よりスケーラブルにする方法について何か提案はありますか? つまり、アプリケーションのパフォーマンスを犠牲にすることなく、より多くのサービス/Pod をサポートできるようにするには? NodePort タイプは、サービスの「パブリック」アドレスを設定する最も簡単な方法ですが、すべてのサービスと Pod がこの方法で設定されている場合、スケーラビリティまたはパフォーマンスに制限はありますか?
タイプを LoadBalancer に変更すると、違いはありますか? 「タイプ」:「ロードバランサー」
さらに、外部からバックエンド Pod (またはサービス) にトラフィックをルーティングする HAProxy など、スケーラビリティを向上させる専用の LoadBalancer またはリバース プロキシを使用する利点はありますか? Nginx darkgaro/kubernetes-reverseproxy に対していくつかの作業が行われていることに気付きました。残念ながら、ドキュメントは不完全なようで、具体的な例はありません。他のスレッドで Vulcan について話している人がいますが、これは kubernetes に推奨される LB ツールですか?
あなたの推薦と助けは大歓迎です!
kubernetes - マシン間の Kube プロキシの負荷分散
私の理解では、Kube-proxy は複数のマシンで実行されているサービスの負荷を分散できますか? 誰かが確認できますか、それがそのために設計されたものです.. Rgs
kubernetes - kube-proxy の負荷分散はどのように行われますか
K8s クラスター内のノードはすべてkube-proxy
実行されており、任意のノードがクラスター内の任意のサービスのトラフィックを転送できることを理解しています。
2 つのノードで実行されている 2 つのレプリカ ポッドを含むサービスがあるN1
としN2
ます。外部ロード バランサはトラフィックをN3
およびに転送しますN4
。最初の要求が に到達N3
し、トラフィックを に迂回させます。2 番目の要求が到達し、トラフィックが N2 に転送されます。N3
kube-proxy
N1
N4
N4
kube-proxy
kube-proxy
は相互に通信して、以前のリクエストが に転送されたことを認識しN4
、適切なロード バランシングのためにこのリクエストを転送する必要があります。または、決定がローカルであり、調整されていない場合、正しくロードされません。残高 ?kube-proxy
N1
N2
kube-proxy
kube-proxy
kubernetes - kube-proxy のプロキシ モードで、ユーザー空間モードは何を意味しますか?
kube-proxy には --proxy-mode というオプションがあり、ヘルプ メッセージによると、このオプションは userspaceまたはiptablesにすることができます (以下を参照)。
ここでユーザー空間モードが何を意味するのかわかりません。
ユーザー空間モードで kube-proxy を実行するときの動作原理を教えてください。
kubernetes - kube-proxy デフォルト/Tomcat:http のエンドポイントが見つかりませんでした: サービス エントリがありません
OS Centos 7 を使用しています。私のポッド:
私のサービス:
サービスは次のようになります。
そしてポッド:
そして、Curl を実行すると:
その時点での Kube-proxy ログには、次のようなものが表示されます。
しかし、ポッドの IP アドレスとポート 8080 に対して直接 curl を実行すると、問題なく動作します。コマンドを実行すると kubectl get endpoints
この出力の「none」のフィールド ENDPOINTS は奇妙に見えます。どうしたの?