すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Knative の概要

最終更新日:Jul 29, 2025

Knative は、オープンソースの Kubernetes ベースのサーバーレスフレームワークです。 Knative は、アプリケーションのリソースリクエストに基づくポッドの自動スケーリング、バージョン管理、カナリアリリースをサポートしています。 トラフィックが処理されていない場合、ポッドの数はゼロにスケールされます。 Container Service for Kubernetes(ACK) Knative は、オープンソースの Knative および Kubernetes API と完全に互換性があります。 ACK Knative の機能は、複数の側面で強化されています。 たとえば、Knative はコールドスタート時間を短縮するためにインスタンスを保持し、Advanced Horizontal Pod Autoscaler(AHPA)コンポーネントに基づく予測スケーリング機能をサポートしています。

Kubernetes クラスターで Knative を使用する理由

Knative の概要

Knative は、オープンソースの Kubernetes ベースのサーバーレスフレームワークであり、サーバーレスアプリケーション向けのクラウドネイティブでクロスプラットフォームのオーケストレーション標準を提供します。 この標準を実装するために、Knative はコンテナの作成、ワークロード管理、イベントモデルを統合し、次の利点を提供します。

  • ビジネスロジックへの注力: Knative は、シンプルなアプリケーション構成と自動スケーリングを提供します。 これにより、開発者はビジネスロジックに集中できます。 これにより、O&M の負担が軽減され、基盤となるリソースへの注力が軽減されます。

  • 標準化: ビジネスコードをサーバーレスプラットフォームにデプロイする場合、ソースコードのコンパイルとデプロイ、およびイベントの管理を考慮する必要があります。 現在、コミュニティやクラウドベンダーが提供するサーバーレスソリューションと FPGA as a Service(FaaS)ソリューションは、異なる標準を採用しています。 Knative は、標準的で汎用的なサーバーレスフレームワークを提供します。

    たとえば、Knative でイベント駆動型モードを使用する場合、対応する YAML ファイルを変更し、クラウドサービスにバインドすることなくクラスターにデプロイできます。 これにより、クロスプラットフォームの移行が容易になります。

  • 使いやすさ: Knative は、コードをコンテナイメージに自動的にパッケージ化し、イメージをサービスとして公開できます。 また、Knative は関数を Kubernetes クラスターに迅速にデプロイし、コンテナとして実行することもできます。

  • 自動スケーリングとバージョン管理: Knative は、トラフィックが処理されていない場合、ポッドの数をゼロに自動的に減らすことができます。 これにより、リソースが節約されます。 また、Knative は、バージョン管理やカナリアリリースなどのさまざまな機能も提供します。

  • Knative Eventing: Knative は、外部イベントシステムとインターフェースし、イベントをサービスまたは関数にルーティングして処理するためのイベントモデルを提供します。

詳細については、「Knative Service の概要」をご参照ください。

主要コンポーネント

Knative は、さまざまな機能を提供する次のコアコンポーネントで構成されています。

  • Knative Serving: サーバーレスワークロード管理機能を提供します。 Knative Serving を使用すると、アプリケーションのサーバーレスデプロイ、バージョン管理、カナリアリリースが可能になります。 また、Knative Serving は、リソースリクエストに基づくポッドの自動スケーリングもサポートしています。 トラフィックが処理されない場合、ポッドの数はゼロにスケールされます。

  • Knative Eventing: イベント管理機能を提供します。これにより、外部イベントソースとのインターフェース、イベントの登録とサブスクライブ、イベントのフィルタリングを行うことができます。 イベントシステムは、イベントプロデューサーとイベントコンシューマーを切り離します。

  • Knative Functions: Knative サービスを効率的に作成、ビルド、デプロイできます。 Kubernetes、コンテナ、Knative などの基盤となる技術スタックを深く理解していなくても、Knative Functions を使用して、ステートレスなイベント駆動型関数を Knative サービスとして Kubernetes クラスターにデプロイできます。

ACK Knative を使用する理由

ACK Knative は、オープンソースの Knative および Kubernetes API と完全に互換性があります。 ACK Knative は、サービスとしての機能も強化し、より包括的なソリューションを提供します。

image
  • サービスとしての機能: 数回クリックするだけでアプリケーションをデプロイできます。 システムを構築するためにリソースを購入する必要はありません。 コンソールが提供され、視覚化された操作がサポートされているため、Kubernetes クラスターと Knative の使用が簡素化されます。

  • 簡素化された O&M:

    • 主要コンポーネントのホスティング: ACK クラスターでは、主要コンポーネントである Knative Serving と Knative Eventing は、ACK によって作成およびホストされます。 これにより、高可用性が確保され、リソース使用量に対して料金は発生しません。

    • ゲートウェイホスティング: ACK Knative は、Application Load Balancer(ALB)、Microservices Engine(MSE)、Service Mesh(ASM)、Kourier の 4 種類のゲートウェイを提供します。 Kourier を除き、クラウドサービスゲートウェイのコントローラーは ACK によって作成され、完全にホストされ、O&M 不要のゲートウェイサービスを提供します。 Kourier は、オープンソースバージョンと互換性があります。

  • エコシステム統合: Alibaba Cloud コンピューティングサービス(Elastic Container Instance および ECS)、可観測性(Simple Log Service および Managed Service for Prometheus)、アプリケーション統合(EventBridge)とシームレスに統合されています。 サーバーを購入したり、サービスを構築したりすることなく、Knative サービスを使用して、ロギング、モニタリング、アラート、継続的デリバリー、Eventing などの機能を実装できます。

  • その他の機能: オープンソースの Knative に基づいて、ACK Knative は、実際のビジネスシナリオに基づいてすぐに使える、より広範なソリューションを提供します。 次のセクションでは、ソリューションについて説明します。

    • リザーブドインスタンス: デフォルトでは、オープンソースの Knative は、オフピーク時にポッドの数をゼロにスケールしてコストを削減します。 ただし、次回アプリケーションを起動すると、アプリケーションのコールドスタートに時間がかかります。 コールドスタート時間を短縮するには、リザーブドインスタンス機能を使用して、低スペックのバースト可能インスタンスを予約することをお勧めします。 これにより、コストと起動時間のバランスをとることができます。

    • Knative 自動スケーリング: リクエストベースのKnative Pod Autoscaler(KPA)をすぐに使用できるだけでなく、HPAもサポートしています。 Knative サービスに対して AHPA を有効にすることができます。 アプリケーションのリソース需要が定期的に変動する場合は、AHPA を使用してリソース需要を予測することをお勧めします。 これにより、Knative に必要なリソースをプリロードして、コールドスタート時間を短縮できます。

ACK Knative とオープンソースの Knative の比較の詳細については、「Alibaba Cloud Knative とオープンソース Knative の比較」をご参照ください。

ユースケース

次の表に、ACK Knative のユースケースを示します。

シナリオ

説明

Web サービスのホスティング

  • 簡素化されたデプロイ: ACK Knative は、Kubernetes の基盤となる詳細をカプセル化し、Knative サービスを使用してワークロードのデプロイと管理を大幅に簡素化します。

  • 簡素化されたマルチバージョン管理: リビジョンメカニズムにより、各リビジョンに一意の識別子が割り当てられるため、バージョンのロールバックなど、さまざまなバージョンの管理が容易になります。

  • トラフィック管理のための簡素化されたカナリアリリース: ACK Knative は、トラフィック管理機能を提供します。 異なるリビジョンのサービスに異なるトラフィック比率を設定して、カナリアリリースと A/B テストを迅速に実行できます。

サーバーレスアプリケーション

  • ビジネスロジックへの注力: 開発者は、サービスとしてのインフラストラクチャ(IaaS)リソースではなく、ビジネスロジックの開発に集中できます。 アプリケーションの構成も簡素化されます。 これにより、基盤となるインフラストラクチャの O&M コストが削減されます。

  • オンデマンドのリソース使用量と自動スケーリング: ACK Knative は、リクエストと同時実行性に基づいてリソースを自動的にスケールアウトし、ビジネストラフィックが処理されていない場合はポッドの数をゼロに減らすことができます。 これにより、リソースとコストが節約されます。

AI シナリオ

  • ビジネスロジックへの注力: GPU アクセラレーションなどの異種コンピューティングシナリオでは、開発者は基盤となるインフラストラクチャのメンテナンスではなく、AI ジョブの開発とデプロイに集中できます。

  • オンデマンドのリソース使用量と自動スケーリング: ACK Knative は、実際のワークロードに基づいてリソースを自動的にスケールアウトできます。 ワークロードが変動する推論サービスのリソース使用コストが大幅に削減されます。

  • 移植性: ACK Knative は、Kubernetes 互換環境で実行できます。 Knative サービスは、クラウド上のノード、データセンター、さらにはエッジデバイスにもデプロイできます。

Knative Eventing シナリオ

Knative Eventing は、外部イベントシステムからイベントを取り込むプロセスを簡素化するイベントモデルを提供します。 たとえば、IoT(Internet of Things)デバイスがセンサーデータを Knative サービスに送信する場合、ACK Knative は対応するイベントソースを構成してデータを受信し、データストレージ、リアルタイム分析、モニタリング、アラートなど、対応する処理ロジックをトリガーできます。

手順

次の図は、ACK Knative の使用方法を示しています。

image

ステップ

説明

前提条件

Kubernetes 1.22 以後を実行する ACK マネージドクラスター が準備されています。 クラスターをアップグレードするには、「ACK クラスターを手動でアップグレードする」をご参照ください。

コンソールで ACK Knative をデプロイし、Knative Serving コンポーネントをインストールします。 詳細については、「Knative をデプロイおよび管理する」をご参照ください。

インストールしてデプロイする Knative ゲートウェイを選択するACK Knative は、ALB、MSE、ASM、Kourier ゲートウェイをサポートしています。

  • ALB: トラフィック管理のために Alibaba Cloud の ALB サービスによって強化された、完全に管理された O&M 不要の Ingress。 また、ALB Ingress は自動スケーリング機能も提供します。

  • MSE: Kubernetes Ingress 標準に準拠した次世代 Ingress。 MSE Ingress は、従来のトラフィックゲートウェイのすべての機能をサポートしています。

  • ASM: マイクロサービスアプリケーションのトラフィックを一元管理できる Istio 互換プラットフォーム。 ASM Ingress は、トラフィック制御、メッシュの可観測性、安全なサービス間通信などの機能を提供して、サービスガバナンスを簡素化し、異種コンピューティングインフラストラクチャ上で実行されるサービスの管理を支援します。

  • Kourier: Envoy アーキテクチャに基づいて開発されたオープンソースの軽量 Ingress。

サービスのデプロイと管理

使用中のリソースタイプを指定します。

  • デフォルトでは、Knative サービスを実行するために ECS リソースが使用されます。

  • エラスティックコンテナインスタンスによって提供されるポッドリソースを使用して、トラフィックバーストを処理します。 詳細については、「Knative でエラスティックコンテナインスタンスを使用する」をご参照ください。

  • AI 推論などのシナリオで GPU リソースを使用します。 詳細については、「Knative で GPU を使用する」をご参照ください。

  • ECS インスタンスとエラスティックコンテナインスタンスがクラスターに共存している場合は、ResourcePolicy を使用して、スケールアウトアクティビティのインスタンスの優先順位を指定できます。 詳細については、「Knative で ECS インスタンスとエラスティックコンテナインスタンスを共存させる」をご参照ください。

  • プリエンプティブインスタンスを使用するように Knative サービスを構成できます。これにより、クラウドコンピューティングリソースの使用量が削減されます。 詳細については、「プリエンプティブインスタンスを使用する」をご参照ください。

  • リザーブドインスタンスを構成して、低スペックのバースト可能インスタンスを予約し、コストと起動時間のバランスをとります。 詳細については、「リザーブドインスタンスを構成する」をご参照ください。

自動スケーリング:

バージョン管理とカナリアリリース:

  • リビジョンに基づいてアプリケーションバージョンを管理します。 たとえば、アプリケーションを新しいバージョンから以前のバージョンにロールバックできます。 詳細については、「リビジョンを作成する」をご参照ください。

  • トラフィック比率とリビジョンに基づいて Knative サービスのカナリアリリースを実行する方法の詳細については、「トラフィック分割に基づいてカナリアリリースを実行する」をご参照ください。

Knative サービスへのアクセス:

  • Knative サービスのデフォルトのドメイン名は、{route}.{namespace}.{default-example.com} 形式です。 {default-example.com} は、デフォルトのドメイン名サフィックスです。 カスタムドメイン名サフィックスを指定できます。 詳細については、「カスタムドメイン名を構成する」をご参照ください。

  • カスタムドメイン名を使用して Knative サービスを公開する場合は、データ転送を保護するために、ドメイン名の証明書を構成することをお勧めします。 詳細については、「HTTPS 経由でサービスにアクセスするための証明書を構成する」をご参照ください。

  • liveness プローブと readiness プローブを構成して、サービスのヘルスステータスと可用性を監視および管理できます。 詳細については、「Knative でポートプロービングを構成する」をご参照ください。

高度な機能

Knative Eventing: イベントソース、イベントの取り込みとサブスクリプション、イベントフィルタリングで構成される、サーバーレスのイベント駆動型モードのための包括的で体系的なアーキテクチャを提供します。

Knative Functions: Knative Functions は、Knative サービスを作成、ビルド、デプロイするための簡単な方法を提供します。 詳細については、「Knative Functions をデプロイする」をご参照ください。

AI 推論サービス:

サービスメッシュ: ASM を Knative サービスに統合して、複雑なトラフィック管理を実装し、サービスセキュリティを向上させます。

可観測性とコスト管理

ログ収集: Simple Log Service は、非侵入型のログ収集、消費、配信、クエリ、分析機能を有効にします。 詳細については、「Knative で SLS を有効にする」をご参照ください。

Knative ダッシュボード: Knative を Managed Service for Prometheus に接続して、応答レイテンシやリクエスト同時実行性などの統計を表示します。 詳細については、「Knative モニタリングダッシュボードを表示する」をご参照ください。

モニタリングとアラート: Simple Log Service を使用して、収集されたログデータに基づいてアラートルールを構成します。 詳細については、「Knative サービスのアラートを構成する」をご参照ください。

コスト分析: IT 企業の財務管理者は、Knative のコスト分析機能を有効にして、ACK クラスターのリソース使用量とコストの傾向を分析できます。 詳細については、「Knative サービスのコスト分析機能を有効にする」をご参照ください。

課金

ACK クラスターで ACK Knative を使用する場合、ACK Knative は無料です。 ただし、Knative を使用するときに作成されるクラウド リソースに対しては課金されます。 たとえば、ECS インスタンス、SLB インスタンス、NAT ゲートウェイを作成して使用する場合、リソースの課金ルールに基づいてリソースに対して課金されます。 ACK クラスターの課金ルールの詳細については、「課金概要」および「クラウド製品リソースの課金」をご参照ください。

FAQ

ACK Knative の使用中に問題が発生した場合は、まず Knative FAQ を参照し、ご自身でトラブルシューティングを行うことができます。

Knative について質問や提案がある場合は、DingTalk グループ 23302777 に参加してください。

参考資料

  • 最新の機能とバグ修正を入手するには、できるだけ早く Knative Serving をアップデートしてください。 詳細については、「Knative リリースノート」および「Knative Serving をアップグレードする」をご参照ください。

  • Knative の公式ドキュメントでは、Knative を使用してオンラインストアアプリケーションを構築、デプロイ、監視する方法を説明したチュートリアルが提供されています。 詳細については、「Knative Bookstore チュートリアル」をご参照ください。