hereで説明されているように、Knative の Activator は非アクティブなリビジョンへのリクエストを受け取り、バッファリングします。
このルーティングはどのように実装されていますか? 私のアプリケーションの名前空間に表示されるのは、リクエストをリビジョンにルーティングする VirtualService だけなので、メッシュに入ってくるトラフィックがどのようにアクティベーターにリダイレクトされるのかわかりません。
Knative サービス バージョン: 0.9.0
hereで説明されているように、Knative の Activator は非アクティブなリビジョンへのリクエストを受け取り、バッファリングします。
このルーティングはどのように実装されていますか? 私のアプリケーションの名前空間に表示されるのは、リクエストをリビジョンにルーティングする VirtualService だけなので、メッシュに入ってくるトラフィックがどのようにアクティベーターにリダイレクトされるのかわかりません。
Knative サービス バージョン: 0.9.0
Knative には、サーバーレス サービスと呼ばれる新しい概念 (CRD) があり、Knative サービスごとに作成されます。
サーバーレス サービスは、次の 2 つの Kubernetes サービスを作成します。
サーバーレス サービスは、次のいずれかのモードにすることができます。
サーバーレス サービスは、実行中のアプリケーションのポッド インスタンスがある限り、Serve モードになります。そのため、パブリック サービスはプライベート サービスのエンドポイントで構成されます。つまり、次の図に示すように、イングレス ゲートウェイによって転送されたリクエストがアプリケーションに到達します。
アプリケーションのインスタンスがオートスケーラーによってスケールダウンされると、サーバーレス サービス コントローラーはパブリック サービスを更新し、アクティベーター サービスによって検出された IP で構成されます。自動スケーリングをトリガーすると、1 つのサービスが起動して実行されるまでリクエストがバッファリングされ、リクエストが転送されます。プロキシ モードは、次の図で確認できます。
要約すると、サーバーレス コントローラーは、パブリック サービスのエンドポイントを、プライベート サービスのエンドポイントを交互に設定するか、ゼロにスケールダウンした場合はアクティベーター サービスのエンドポイントに設定します。