第2章 OpenShift Serverless 製品アーキテクチャー

2.1. Knative Serving

OpenShift Container Platform 上の Knative Serving は、サーバーレスアプリケーションのデプロイおよび提供をサポートするために Kubernetes および Istio をベースにビルドされます。

これは、OpenShift Container Platform クラスター上のサーバーレスワークロードの動作を定義し、制御するために使用される Kubernetes カスタムリソース定義 (CRD) のセットを作成します。

これらの CRD は、サーバーレスコンテナーの迅速なデプロイや、Pod の自動スケーリング、Istio コンポーネントのルーティングおよびネットワークのプログラミング、または特定の時点におけるデプロイされたコードおよび設定のスナップショットの表示などの複雑なユースケースに対応するためのビルディングブロックとして使用できます。

2.1.1. Knative Serving コンポーネント

このセクションで説明するコンポーネントは、Knative Serving が正しく設定され、実行されるために必要なリソースです。

Knative サービスリソース
service.serving.knative.dev リソースは、クラスター上のサーバーレスワークロードのライフサイクル全体を自動的に管理します。これは、サービスの各アップデートについてのルート、設定、および新規リビジョンがアプリケーションに設定されるように他のオブジェクトの作成を制御します。サービスは、トラフィックを最新バージョンまたは固定されたバージョンに常にルーティングするように定義できます。
Knative ルートリソース
route.serving.knative.dev リソースは、ネットワークのエンドポイントを、1 つ以上の Knative リビジョンにマップします。部分的なトラフィックや名前付きルートなどのトラフィックを複数の方法で管理することができます。
Knative 設定リソース
configuration.serving.knative.dev リソースは、デプロイメントの必要な状態を維持します。設定を変更すると、新規リビジョンが作成されます。
Knative リビジョンリソース
revision.serving.knative.dev リソースは、ワークロードに対して加えられるそれぞれの変更についてのコードおよび設定の特定の時点におけるスナップショットです。リビジョンはイミュータブル (変更不可) オブジェクトであり、必要な期間保持することができます。クラスター管理者は、revision.serving.knative.dev リソースを変更して、OpenShift Container Platform クラスターでの Pod の自動スケーリングを有効にできます。