このドキュメントでは、Knative の概念、Knative システムに関連するロール、Knative コンポーネント、および Knative がサポートするサードパーティアドオンについて説明します。

背景情報

Knative は、Kubernetes に基づくサーバーレスフレームワークです。 Knative の目的は、異なるプラットフォーム間で、サーバーレスワークロードを調整するクラウドネイティブの標準を提供することです。 この目的を実現するために、Knative は、クラウドネイティブアプリケーションの開発の 3 つの分野 (コンテナーと機能の構築、ワークロードの提供と動的なスケーリング、イベント) に関するベストプラクティスを体系化しています。

Knative システムに関連するロール

  • Developers :ネイティブ Kubernetes API を直接使用して、サーバーレス機能、アプリケーション、およびコンテナーを自動スケーリングランタイムにデプロイする担当者を指します。
  • Contributors:コードとドキュメントを開発して Knative コミュニティに提供する担当者を指します。
  • Operators :Kubernetes API およびツールを使用して Knative インスタンスをデプロイし管理する担当者を指します。 Knative は、企業やクラウドプロバイダーのシステムなど、Kubernetes をサポートする環境に統合できます。
  • Users:Istio ゲートウェイを使用して該当するサービスにアクセスするか、Eventing システムを使用して Knative のサーバーレスサービスをトリガーする担当者を指します。

詳細については、 『Personas involved in Knative』をご参照ください。

コンポーネント

Knative は、次の 3 つのコンポーネントで構成されています。
Build
このコンポーネントは、アプリケーションのソースコードをコードリポジトリから取得し、コードをコンテナーイメージにコンパイルしてから、イメージリポジトリにイメージをプッシュするために使用されます。 これらのアクションはすべて、対応する Kubernetes ポッドで発生します。
Eventing
このコンポーネントを使用して、イベントを管理し配信できます。
具体的には、Eventing は、外部イベントソースへの接続、イベントの登録とサブスクライブ、イベントのフィルター処理など、サーバーレスイベントを起動するイベントモデルを提供するように設計されています。 イベントモデルでは、イベントプロデューサーとイベントコンシューマーを分離します。 これは、コンシューマーがイベントのリッスンを開始する前にプロデューサーがイベントを生成でき、プロデューサーがイベントの生成を開始する前にイベントコンシューマーがイベントをリッスンできることを意味します。
Serving
このコンポーネントは、サーバーレスワークロードの管理に使用できます。 ワークロードを自動スケーリングするリクエスト駆動型の機能を提供します。 リクエストを処理する必要がない場合、Serving はワークロードインスタンスをゼロインスタンスにスケーリングするのに役立ちます。 高度なシナリオでは、ワークロードインスタンスを制限なしに必要な数に拡張できます。 さらに、このコンポーネントは、段階的デプロイの機能をサポートしています。

サードパーティのアドオン

Knative は、GitHub イベントソースを使用するための GitHub アドオンをサポートしています。