概念¶
このセクションのドキュメントでは、一般的に参照されるKnativeの概念と抽象化について説明し、Knativeの動作の理解を深めるのに役立ちます。
Knativeとは?¶
Knativeは、サーバーレスデプロイメントを実行するためのプラットフォーム非依存ソリューションです。
Knative Serving¶
Knative Servingは、Kubernetesカスタムリソース定義(CRD)として一連のオブジェクトを定義します。これらのリソースは、サーバーレスワークロードがクラスタ上でどのように動作するかを定義および制御するために使用されます。
主要なKnative Servingリソースは、サービス、ルート、コンフィグレーション、リビジョンです。
-
サービス:
service.serving.knative.dev
リソースは、ワークロードのライフサイクル全体を自動的に管理します。アプリにルート、コンフィグレーション、サービスの更新ごとに新しいリビジョンがあることを保証するために、他のオブジェクトの作成を制御します。サービスは、常に最新のバージョンまたは固定されたバージョンにトラフィックをルーティングするように定義できます。 -
ルート:
route.serving.knative.dev
リソースは、ネットワークエンドポイントを1つ以上のリビジョンにマッピングします。割合によるトラフィック制御や名前付きルートなど、さまざまな方法でトラフィックを管理できます。 -
コンフィグレーション:
configuration.serving.knative.dev
リソースは、デプロイメントの目的の状態を維持します。コードとコンフィグレーションを明確に分離し、Twelve-Factor Appの方法論に従います。コンフィグレーションを変更すると、新しいリビジョンが作成されます。 -
リビジョン:
revision.serving.knative.dev
リソースは、ワークロードに加えられた変更ごとに、コードとコンフィグレーションの時点のスナップショットです。リビジョンは不変のオブジェクトであり、必要に応じて保持できます。Knative Servingリビジョンは、受信トラフィックに応じて自動的にスケールアップおよびスケールダウンできます。
リソースとその相互作用の詳細については、serving
GitHubリポジトリのリソースタイプ概要を参照してください。
Knative Eventing - Kubernetes向けのイベント駆動型アプリケーションプラットフォーム¶
Knative Eventingは、アプリケーションでイベント駆動型アーキテクチャを使用できるようにするAPIのコレクションです。これらのAPIを使用して、イベントプロデューサー(ソースと呼ばれる)からイベントコンシューマ(シンクと呼ばれる)へのイベントをルーティングするコンポーネントを作成できます。シンクは、レスポンスイベントを送信することによってHTTPリクエストに応答するように構成することもできます。
Knative Eventingは、標準のKubernetesサービスやKnative Servingサービスなど、さまざまな種類のワークロードをサポートするスタンドアロンのプラットフォームです。
Knative Eventingは、イベントプロデューサーとシンク間でイベントを送受信するために、標準のHTTP POSTリクエストを使用します。これらのイベントはCloudEvents仕様に準拠しており、任意のプログラミング言語でイベントの作成、解析、送信、受信を可能にします。
Knative Eventingコンポーネントは疎結合であり、互いに独立して開発およびデプロイできます。アクティブなイベントコンシューマがそれらのイベントを待機する前に、プロデューサーがイベントを生成できます。イベントコンシューマは、それらのイベントを作成するプロデューサーが存在する前に、イベントクラスに関心を表明できます。