Kubernetes 上で、リクエストベースの自動スケーリング、スケールトゥゼロ、カナリアリリースを使用してサーバーレスワークロードを実行します。コミュニティ版 Knative および Kubernetes API と完全に互換性がある ACK Knative は、予約インスタンスと AHPA 予測スケーリングを追加しています。
Kubernetes クラスターで Knative を使用する理由
Knative
Knative は、コンテナビルド、ワークロード管理、イベント駆動モデルを通じてサーバーレスアプリケーション向けのクラウドネイティブかつクロスプラットフォームなオーケストレーション標準を定義する、Kubernetes ベースのフレームワークです。メリットは次のとおりです。
-
ビジネスロジックへの集中: Knative はアプリケーション構成と自動スケーリングを簡素化するため、開発者は基盤となるリソースではなくビジネスロジックに集中できます。
-
標準化: サーバーレスアプリケーションのデプロイには、ソースコードのコンパイル、デプロイメントの管理、イベントの処理が必要です。コミュニティやベンダーのソリューションには、統一された標準が欠けていることがよくあります。Knative は、サーバーレスアプリケーション向けの汎用フレームワークを提供します。
たとえば、クラスター内で YAML カスタムリソース (CR) を記述してデプロイすることで、イベント駆動アーキテクチャを実装できます。これにより、特定のクラウド製品との深い統合を回避し、クロスプラットフォーム移行を簡素化できます。
-
使いやすさ: Knative は、コードをコンテナイメージにパッケージ化し、サービスとして公開し、関数を Kubernetes クラスターにコンテナとしてデプロイします。
-
自動スケーリングとバージョン管理: Knative は、トラフィックがない場合にインスタンスをゼロにスケーリングしてリソースを節約し、バージョン管理とカナリアリリースをサポートします。
-
イベント駆動: Knative は、外部システムからイベントを取り込み、サービスまたは関数にルーティングするための完全なイベントモデルを提供します。
Knative アプリケーションモデルの紹介では、Knative Service アプリケーションモデルについて説明しています。
コアコンポーネント
Knative には、次のコアコンポーネントが含まれます。
-
Knative Serving: アプリケーションのデプロイ、バージョン管理、リクエストベースの自動スケーリング、カナリアリリース、トラフィックがない場合のスケールトゥゼロといった機能で、サーバーレスワークロードを管理します。
-
Knative Eventing: イベントソースを統合し、イベントの登録、サブスクリプション、フィルタリングをサポートします。そのイベントモデルは、プロデューサーとコンシューマーを分離します。
-
Knative Functions: Kubernetes、コンテナ、Knative に関する深い知識がなくても、ステートレスでイベント駆動型の関数を Knative Service として Kubernetes 上に作成、ビルド、デプロイします。
なぜ ACK Knative か
ACK Knative は、コミュニティ Knative および標準の Kubernetes API と完全に互換性があり、強化された製品機能とより広範なソリューションを備えています。
-
エンタープライズ対応機能: ワンクリックデプロイにより、リソースの購入やシステムの自己構築が不要になります。ACK コンソール GUI は、Kubernetes と Knative の操作を簡素化します。
-
運用の簡素化:
-
マネージドコアコンポーネント: ACK は、ACK クラスター内で Knative Serving と Knative Eventing を作成・管理し、コンポーネントリソースに対する追加料金なしで高可用性を実現します。
-
マネージドゲートウェイ: ACK Knative は、アプリケーションロードバランサー (ALB)、サービスメッシュ (ASM)、および Kourier ゲートウェイを提供します。コミュニティ互換の Kourier を除き、ACK は他のゲートウェイのコントローラーをフルマネージドでメンテナンスフリーのサービスとして管理します。
-
-
エコシステム統合: Alibaba Cloud のコンピュート (Elastic Container Instance (ECI)、Elastic Compute Service (ECS)、Container Compute Service (ACS))、可観測性 (Simple Log Service (SLS) および Prometheus)、アプリケーション統合 (EventBridge) と統合することで、サーバーのプロビジョニングやサービスの自己構築なしで、Knative Service にロギング、モニタリング、アラート、継続的デリバリー、イベント駆動機能を追加できます。
-
拡張機能: ACK Knative は、オープンソース Knative を拡張し、次のような実際のシナリオ向けのすぐに使えるソリューションを提供します。
-
予約インスタンス: レイテンシーに敏感なアプリケーション向けに、低コストで常時稼働するインスタンスを保持し、スケールトゥゼロからのコールドスタートレイテンシーを削減しながらコストを管理します。
-
Knative 自動スケーリング: Knative Pod Autoscaler (KPA) および Horizontal Pod Autoscaler (HPA) を使用したリクエストベースの自動スケーリングを提供します。周期的なワークロード向けに Advanced Horizontal Pod Autoscaler (AHPA) を構成して、リソースを事前にプロビジョニングし、コールドスタートを削減します。
-
ACK Knative とオープンソース Knative の違いについては、「ACK Knative とオープンソース Knative の比較」をご参照ください。
ユースケース
一般的な ACK Knative ユースケース:
|
シナリオ |
説明 |
|
Web サービスホスティング |
|
|
サーバーレスアプリケーション |
|
|
AI ワークロード |
|
|
イベント駆動ワークロード |
Knative Eventing は外部システムからイベントを取り込みます。たとえば、IoT デバイスはセンサーデータを Knative サービスに送信できます。データを受信してストレージ、リアルタイム分析、またはモニタリングとアラートをトリガーするように、ACK Knative イベントソースを設定します。 |
ワークフロー
ACK Knative のワークフロー:
|
ステップ |
説明 |
|
前提条件 |
バージョン 1.22 以降の ACK マネージドクラスター。クラスターをアップグレードするには、「クラスターを手動でアップグレードする」をご参照ください。 |
|
Knative コンポーネントのデプロイと管理に従って、ACK Knative をデプロイし、Knative Serving をインストールします。 |
|
|
「Knative ゲートウェイの選択」に従って、ゲートウェイを選択してデプロイします。
|
|
|
サービスのデプロイと管理 |
リソースタイプの指定
|
|
自動スケーリング
|
|
|
バージョン管理とカナリアリリース
|
|
|
Knative Service へのアクセス
|
|
|
高度な機能 |
イベント駆動: 外部イベントソース、ルーティング、サブスクリプション、フィルタリングを含むサーバーレスイベントモデルについては、「Knative Eventing」をご参照ください。 |
|
Knative Functions: Kubernetes クラスター内で関数を作成、デプロイ、呼び出すには、「Knative Functions のデプロイ」をご参照ください。 |
|
|
AI 推論サービス
|
|
|
サービスメッシュ: Service Mesh (ASM) を Knative Service と統合することで、トラフィック管理とサービスのセキュリティを強化できます。 |
|
|
可観測性とコスト管理 |
ログ収集: ログデータの収集、消費、配信、クエリ、分析を非介入で行うには、SLS を使用して「Knative Service からのログの収集」をご参照ください。 |
|
モニタリングダッシュボード: 応答レイテンシー、リクエスト同時実行数などについて、Managed Service for Prometheus で「Knative Service モニタリングダッシュボードの表示」をご参照ください。 |
|
|
モニタリングとアラート: SLS のログに基づくアラートルールを使用して「Knative Service のアラート構成」をご参照ください。 |
|
|
リソース使用状況とコスト配賦を表示するには、「Knative Service のコストインサイト機能の有効化」をご参照ください。 |
課金
ACK クラスターで ACK Knative を使用する場合、ACK Knative の管理費用は請求されません。クラスター管理費用、クラウドサーバー、ロードバランサーインスタンス、NAT ゲートウェイなど、作成および使用されたリソースは、それぞれの価格に基づいて課金されます。ACK クラスターの課金概要、およびクラウド製品のリソース料金をご参照ください。
よくある質問
ACK Knative の問題については、「Knative FAQ」をご参照ください。
Knative に関するご質問は、こちらをクリックしてコミュニティに参加してください。
関連ドキュメント
-
最新の機能とバグ修正を利用するために、Knative Serving を速やかにアップグレードしてください。詳細については、「Knative リリースノート」および「Knative Serving コンポーネントのアップグレード」をご参照ください。
-
Knative 公式の Knative Bookstore Tutorial では、書店アプリケーションのビルド、デプロイ、モニタリングの手順を説明しています。