第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 の自動スケーリングを有効にできます。