2つのポッドとType:NodePortを持つサービスを実行して、ポッド間のリクエストの負荷分散を行っています。私はいつ要求をサービスに送信するのかを知りたいのですが、どのポッドにリクエストが転送されるのですか。これを見つける方法はありますか?レスポンスを見ると、すべてのリクエストが同じポッドで処理されるようです。要求を処理しているKubernetesポッドの検索方法
答えて
使用している場合は、アプリケーションログファイルを参照できます。 stdoutに何かを印刷する場合は、
kubectl logs <pod>
を使ってメッセージを見てください。テストの場合、応答にpod hostnameを含めることができます。
コンテキストとネームスペースがないため、ログが表示されない可能性があります。
kubectl get pods -o wide --all-namespaces | grep <pod>
を試して、ポッドが存在するネームスペースとノードのIPアドレスに関する情報を取得してください。
その後ポッドがサービスに関連付けられていないことを遠隔チャンスもあり、ログ kubectl --namespace <namespace> logs --tail 100 -f <pod>
の最後の100行の実行中の尾を取得するために供給し、以下のコマンドに。 kubectl describe services --namespace <namespace> <service>
を実行し、Selector:
セクションのアプリケーション名を調べる
また、コンテナにexecを実行して、ポートがポッド自体にアクセス可能かどうかを確認することもできます。リッスンやアンサーしていない場合は、ネームスペース内のアプリケーションに関連付けられていないサービスが原因である可能性があります。
セレクタが私の配置を指しています – PMat
kubernetes Service
は、デフォルトでWRRを使用して負荷分散を行います。サービスを作成すると、ノードにiptables
ルールが生成されます。
ノードにsshを入れて、iptables-save|less
を実行します。サービスの名前を検索します。以下の例では、サービスmicrobot
は、microbot
の展開と3つのレプリカの負荷分散を行います。 2つのポッドしかないので、2つのエントリが必要です。 iptables
出力は、上記のように見えない場合は
-A KUBE-SVC-LX5ZXALLN4UQ7ZFL -m comment --comment "default/microbot:" -m statistic --mode random --probability 0.33332999982 -j KUBE-SEP-OZCDYTQTC3KQGJK5
-A KUBE-SVC-LX5ZXALLN4UQ7ZFL -m comment --comment "default/microbot:" -m statistic --mode random --probability 0.50000000000 -j KUBE-SEP-SKIRAXBCCQB5R4MV
-A KUBE-SVC-LX5ZXALLN4UQ7ZFL -m comment --comment "default/microbot:" -j KUBE-SEP-SPMPNZCOIJIRSNNQ
は、それはあなたのサービスが適切に設定されていない可能性があります。 Heidiのように、ポッドはサービスに関連付けられていません。
私は2つのポッドを持っていますが、このように見えます。-A KUBE-SVC-RCFZYSCVQORLOLVD -mコメント - コメント "default/memory-service:" -m統計 - モードランダム - 確率0.50000000000 - j-KUBE-SEP-QL7KI24MTSZRY3Q3' – PMat
iptablesのルールは正しく見えるので、正しくロードバランスする必要があります。 'memory-service'デーモンのログをそれぞれヒットさせることができますか?そうすれば 'kubectl logs -f'を使ってポッドを観察することができます。または、デプロイメントでさらに1つのポートを公開し、それをサービスに関連付けます。一度、 'kubectl exec'をポッドに入れたら、netcatをインストールして余分なポートで引き続き聞くようにしてください。次に、テストをもう一度実行します。それが私がデバッグする方法です。 –
- 1. 要求ループの処理方法は?
- 2. ノード要求の処理方法
- 3. Tweepyで結果を検索して処理する方法
- 4. 流出しているサーバー/要求エラーを処理する方法は?
- 5. モデルまたはプロパティの検証エラーとしてASP.NET MVC3要求検証例外を処理する方法
- 6. Kubernetes:私のポッドの縮尺方法
- 7. KubernetesポッドのCPU要件の見積もり方法は?
- 8. Kubernetesポッドが起動していない
- 9. 大量の保留中の要求を処理する方法
- 10. Djangoの要求変数を処理する最良の方法
- 11. 秘密についてのKubernetesとポッドでの消費方法
- 12. 角2のクロスオリジン要求を処理する方法
- 13. PHPでコントローラへのXMLhttp要求を処理する方法
- 14. node.jsのPOST要求を処理する方法
- 15. ノードの未処理要求を設定する方法
- 16. 検索 - テキスト処理
- 17. Django HTTP.Requestで処理する方法、コンテンツタイプを要求する、クエリパラメータ
- 18. djangoインクルージョンテンプレートタグの処理要求
- 19. NGINX JSON POSTの処理要求をKubernetes上のPython Flaskコンテナに渡す
- 20. セレンIDEの検索でフィールド選択を処理する方法
- 21. 検索の結果を処理する方法
- 22. Aurelia:ビューで非同期要求を処理する方法は?
- 23. ファイアベースクラウド機能:継続的な要求を処理する方法
- 24. ストアドプロシージャを使用して "キーワード検索"を処理する方法は?
- 25. 私kubernetesポッド
- 26. マルチコンテナkubernetesポッド
- 27. 処理のXMLを使用して特定の要素を検索する
- 28. NodeJs TCPサーバーが要求を一貫して処理しない
- 29. モンテカルロツリー検索でターミナルノードを処理する方法は?
- 30. node.jsサーバーのファイルへの複数の要求の処理方法
私は 'kubectl logs'を空にしました。 –
PMat
ログインしていますか? –