Skip to content
Latchkey

ingressトラフィックとは何か? 受信のネットワークフロー

ingressトラフィックとは、ユーザーのリクエストがデプロイされたサービスに届いたり、webhookがあなたのエンドポイントに到着したりするように、外部からネットワークへ流れ込むデータです。

ingressはegressの鏡像です。ネットワークの境界を離れるのではなく、入ってくるトラフィックです。デプロイされたサービスにとって、ingressはあなたが実際に処理したいトラフィックであり、内部への許可と正しいルーティングが必要です。CIは、新しくデプロイされたサービスがトラフィックを受け入れることを検証する際にingressを気にかけます。

定義上の受信

ingressとは、ネットワークの外部から内部のホストへ開始された任意のコネクションです。パブリックユーザーへの処理もwebhookの受信も、どちらもingressです。

ingressを制御する

  • ファイアウォールとsecurity groupの受信ルール。
  • 内部へルーティングするload balancerとingress controller。
  • ネットワークのエッジでのTLS終端。

Kubernetesにおけるingress

Kubernetesでは、ingress resourceとcontrollerが外部のHTTPトラフィックをhostとpathでサービスへルーティングします。デプロイは新しいルートを公開するために、しばしばingressのルールを更新します。

ingressとデプロイの検証

デプロイ後、smoke checkは新しいサービスへingressトラフィックを送り、それが応答することを確認します。ingressのルールが誤っていると、workloadが内部で正常に動いていても、そのチェックは失敗します。

ingressチェックが失敗する理由

一般的な原因は、受信ルールの欠落、健全なbackendのないload balancer、または誤ったサービスを指すingressルートです。これらはtimeout、502、503として現れます。

一時的対破綻したingress

backendがまだウォームアップ中の503は一時的ですが、受信ルールの欠落は毎回失敗します。Latchkeyのrunnerはデプロイの検証中に一時的なingressの応答をretryし、誤ったルールは本当の失敗として可視化したままにします。

重要なポイント

  • ingressは外部からネットワークへ入ってくる受信トラフィックです。
  • 受信ファイアウォールルール、load balancer、ingressルートによって制御されます。
  • ウォームアップ中の503は一時的ですが、受信ルールの欠落は決定論的な破綻です。

関連ガイド