3

hereで説明されているように、Knative の Activator は非アクティブなリビジョンへのリクエストを受け取り、バッファリングします。

このルーティングはどのように実装されていますか? 私のアプリケーションの名前空間に表示されるのは、リクエストをリビジョンにルーティングする VirtualService だけなので、メッシュに入ってくるトラフィックがどのようにアクティベーターにリダイレクトされるのかわかりません。

Knative サービス バージョン: 0.9.0

4

1 に答える 1

11

Knative には、サーバーレス サービスと呼ばれる新しい概念 (CRD) があり、Knative サービスごとに作成されます。

サーバーレス サービスは、次の 2 つの Kubernetes サービスを作成します。

  • アプリケーション ポッドを対象とするプライベートサービス。Pod IP を検出するために必要です。
  • パブリック サービス はイングレス ゲートウェイによってターゲットにされており、そのモード (詳細は後述) に応じて、最初のサービスと同じエンドポイントを指すか、アクティベーター サービスのエンドポイントを指すかのいずれかになります。

サーバーレス サービス モード

サーバーレス サービスは、次のいずれかのモードにすることができます。

  • 仕える
  • プロキシー

サーブモード

サーバーレス サービスは、実行中のアプリケーションのポッド インスタンスがある限り、Serve モードになります。そのため、パブリック サービスはプライベート サービスのエンドポイントで構成されます。つまり、次の図に示すように、イングレス ゲートウェイによって転送されたリクエストがアプリケーションに到達します。

Knative サーバーレス コントローラーのサービス提供モード

  • hello-go-pb - 公共サービスです。
  • hello-go-pr - プライベート サービスです。

プロキシ モード

アプリケーションのインスタンスがオートスケーラーによってスケールダウンされると、サーバーレス サービス コントローラーはパブリック サービスを更新し、アクティベーター サービスによって検出された IP で構成されます。自動スケーリングをトリガーすると、1 つのサービスが起動して実行されるまでリクエストがバッファリングされ、リクエストが転送されます。プロキシ モードは、次の図で確認できます。

Knative サーバーレス コントローラーのプロキシ モード

要約すると、サーバーレス コントローラーは、パブリック サービスのエンドポイントを、プライベート サービスのエンドポイントを交互に設定するか、ゼロにスケールダウンした場合はアクティベーター サービスのエンドポイントに設定します。

于 2019-11-14T18:32:20.323 に答える