関係するオブジェクトをまとめる
IngressとServiceを---で区切り、必要ならDeploymentやPodも追加します。同じ名前でも名前空間が違うServiceは参照先になりません。
Kubernetes / Helm
レンダリング済みYAMLとリクエストのHost・パスを入力し、静的な経路を調べます。
マニフェストを貼るか、例を読み込んでください。
ブラウザ内で解析します。クラスター接続やHTTP送信はしません。
ExactとPrefixのみ標準規則として判定します。
上限: 300,000文字、100リソース、500パス。
マニフェストを貼るか、例を読み込んでください。
Ingressのパスが正しく見えても、バックエンドが存在しないServiceポートを指していることがあります。Ingressパスのマッチング確認は、その食い違いを一つのリクエストからたどります。
規則の一致と実際の疎通は別です。表示するのは貼り付けたマニフェストから確かめられる範囲で、クラスターには接続しません。
Ingressパスのマッチング確認は最長のパスを選び、同じ長さならExactを優先します。選ばれたServiceのportからtargetPortまでのつながりを示します。
Serviceのポートが存在しなければそこで経路を止めます。Podのマニフェストがないだけなら不明と表示し、障害と決めつけません。
IngressとServiceを---で区切り、必要ならDeploymentやPodも追加します。同じ名前でも名前空間が違うServiceは参照先になりません。
初期パスは/です。/api/ordersのような具体的なパスとHostヘッダーを入れてください。Hostが空ならHostなしの規則だけを確認できます。
一致は静的な規則の一致です。参照切れ、不明、コントローラー依存の表示を読み分け、編集後は再実行してからレポートをコピーします。
Ingressパスのマッチング確認はExactとセグメント単位のPrefixを扱います。/apiは/apixに一致せず、ワイルドカードHostは一段のサブドメインだけです。 Kubernetes Ingressのルーティング全体はコントローラーごとに異なります。
IngressのバックエンドはServiceのportまたはポート名を参照します。ServiceのtargetPortはその次の段階で解決し、未指定ならportと同じ値です。
DeploymentテンプレートやPodがある場合はselectorとラベルを照合します。ない場合は到達可能と見なさず、不明のまま残します。
Prefixは/ごとの要素で比較します。/fooは/foo/barに一致しますが、/foo-barには一致しません。大文字と小文字も区別します。
IngressのバックエンドはServiceのportまたはポート名を指定します。targetPortはServiceからPodへの対応先で、Ingressから直接指定する値ではありません。
Hostが一致しなければその規則は選ばれません。defaultBackendがあれば候補になり、なければ処理はコントローラーに委ねられます。
404はHostやパスの不一致、アプリ側の応答、rewriteなどでも起こります。静的な経路を確認した後、コントローラーのログと実リクエストを調べてください。
できません。YAMLだけではPodのReady状態、EndpointSlice、DNS、ロードバランサーや実際の通信を確かめられません。
経路について質問がありますか?