Kubernetes 上でサーバーレスワークロードを実行するには、通常、自動スケーリングポリシーの設定、イングレスルーティングの管理、トラフィック分割ロジックのゼロからの構築が必要です。Service Mesh (ASM) は、Knative Serving をお使いの Container Service for Kubernetes (ACK) または ACK Serverless クラスターに統合します。これにより、別のイングレスコントローラーを管理することなく、自動的にスケーリング (ゼロへのスケーリングを含む) する HTTP ワークロードをデプロイし、サービスメッシュを介してカナリアリリースを実行できます。
機能
Knative は、サーバーレスアプリケーション向けのクラウドネイティブかつクロスプラットフォームなコンテナオーケストレーション標準を開発するために設計された、Kubernetes ベースのサーバーレスフレームワークです。この標準は、コンテナ (または関数) の作成、ワークロード管理 (自動スケーリング)、およびイベントモデルを統合することで実装されます。また、Knative では、Istio を使用してサービスを統合・ルーティングしたり、カナリアリリースを実行したりすることもできます。
ASM 上の Knative は、以下の機能を提供します。
| 機能 | 説明 |
|---|---|
| リクエストベースの自動スケーリング | 受信リクエストと Knative イベントに基づいて Pod を自動的にスケーリングします。トラフィックが受信されない場合はゼロにスケーリングします。 |
| トラフィックベースのカナリアリリース | プログレッシブロールアウトのために、Knative Service の複数のリビジョンにわたってトラフィックを分割します。 |
| ASM ゲートウェイによる統合イングレス | すべてのインバウンドトラフィックを ASM イングレスゲートウェイ経由でルーティングし、別のイングレスコントローラーを不要にします。 |
仕組み
ACK コンソールを介して、ACK または ACK Serverless クラスターに Knative Serving コンポーネントをデプロイします。
ASM コンソールで、ingressgateway という名前のイングレスゲートウェイを作成します。Knative Serving は、このゲートウェイをサービスゲートウェイとして使用します。
アプリケーションを Knative Service としてデプロイします。ASM がトラフィックルーティングを処理し、Knative Serving が自動スケーリングを処理します。
Knative のデプロイ時にゲートウェイとして Kourier を選択した場合は、デプロイ後にアンインストールしてください。
ACK コンソールで、[クラスター] に移動し、クラスター名をクリックして、[アプリケーション] > [Knative] を選択します。[コンポーネント] タブの [アドオンコンポーネント] セクションで Kourier を見つけ、[アンインストール] をクリックします。
Knative フレームワークの詳細については、「Knative の概要」をご参照ください。