Knative は、サーバーレス アプリケーション向けのオープンソースで Kubernetes ベースのプラットフォームです。Knative は、サーバーレス ワークロードのデプロイと管理、およびサーバーレス ワークロード用のエンタープライズクラスのプラットフォームの構築に役立ちます。ACK Serverless は Knative と統合されています。Knative API を呼び出してクラウドリソースを使用するには、ACK Serverless クラスター を作成し、Knative を有効にするだけで済みます。この場合、Knative コントローラーの料金を支払う必要はありません。
ACK Serverless Knative のメリット
オープンソースの Knative | ACK Serverless Knative |
オープンソースの Knative | ACK Serverless Knative |
デフォルトでは、Istio ゲートウェイが使用されます。そのため、Istio コントローラーのインストールに使用されるインフラストラクチャ リソースの料金を支払う必要があります。 | Knative コントローラーの料金を支払う必要はありません。 |
Knative コントローラーのインストールに使用されるインフラストラクチャ リソースの料金が請求されます。 |
ACK Serverless クラスターにポッドを作成すると、コールドスタートが発生します。オープンソースの Knative は、スケールツーゼロメカニズムを使用してコストを削減します。ただし、コールドスタート中は、セッション タイムアウトが原因で、クラスターがリクエストを処理できない場合があります。 | ACK Serverless Knative は、オフピーク時にインスタンス数をゼロにスケーリングしません。代わりに、ACK Serverless はリザーブドインスタンスを使用します。リザーブドインスタンスを使用すると、低コストでコールドスタートを回避できます。 |
Knative でのリソース管理
ACK Serverless はサーバーレス アプリケーションをホストし、Kubernetes を簡単に使用する方法を提供します。ノードを購入する必要なく、コンテナー化されたアプリケーションを ACK Serverless クラスターに直接デプロイできます。Knative を使用してリソースを管理するメリットを以下に示します。
Knative Serving コントローラーは ACK Serverless と統合されています。 Knative API 操作を呼び出してクラウドリソースを使用するには、ACK Serverless クラスターを作成し、そのクラスターに対して Knative を有効にするだけで済みます。 Knative コントローラーの料金は発生しません。
Knative Gateway
デフォルトでは、オープンソースの Knative は、Istio、Gloo、Contour、Kourier、Ambassador など、複数の Ingress ゲートウェイ ソリューションを提供します。これらのソリューションの中で、Istio が最も頻繁に使用されます。これは、Istio がサービスメッシュとしても機能するためです。各 ACK Serverless クラスターには、少なくとも 2 つの常駐ゲートウェイ インスタンスが含まれている必要があります。 2 つのインスタンスは相互にバックアップを提供して、高可用性を確保します。ゲートウェイ コントローラーは常駐している必要があります。これらの常駐リソースのインフラストラクチャ費用と O&M 費用を支払う必要があります。
ユーザー エクスペリエンスを向上させるために、Alibaba Cloud では、Application Load Balancer(ALB)インスタンスを Knative Ingress ゲートウェイとして使用できます。 Knative Gateway は、ACK Serverless クラスターに必要なゲートウェイ機能を提供し、クラウドサービスと同じくらい安定して信頼性があります。常駐リソースは必要ありません。これにより、インフラストラクチャ コストと O&M ワークロードが削減されます。
リザーブドインスタンス
デフォルトでは、オープンソースの Knative は、オフピーク時にインスタンス数をゼロにスケーリングします。ただし、リソース割り当て、ポッド スケジューリング、イメージのプル、アプリケーションの初期化オーバーヘッドなどの要因により、ゼロから 1 つのインスタンスにスケーリングするコールドスタートのレイテンシは依然として課題となっています。
オープンソースの Knative とは異なり、ACK Serverless Knative は、オフピーク時にインスタンス数をゼロにスケーリングしません。代わりに、ACK Serverless Knative は 1 つのインスタンスを予約します。リザーブドインスタンスのしくみを以下に示します。
ACK Serverless Knative は、オフピーク時にバースト可能インスタンスを使用してコンピューティング最適化インスタンスを置き換えます。リクエストを受信すると、ACK Serverless はコンピューティング最適化インスタンスに切り替えます。このメカニズムにより、オフピーク時のコストが削減されます。
オフピーク時に累積された CPU クレジットは、ピーク時に使用してコストを削減できます。
Kubernetes クラスターへの Knative コンポーネントのデプロイ
Knative は ACK Serverless クラスターにデプロイできます。
課金
ACK Serverless Knative を使用する場合、ACK Serverless クラスターの管理に使用されるクラウドリソースに対してのみ課金されます。クラウドリソースには、エラスティックコンテナーインスタンス、SLB インスタンス、NAT ゲートウェイが含まれます。これらのリソースは、対応する請求ルールに基づいて課金されます。