Knative は、Kubernetes を基盤とするサーバーレスフレームワークであり、クラウドネイティブでクロスプラットフォームのサーバーレスアプリケーション向けオーケストレーション標準を実現します。Container Service for Kubernetes (ACK) Knative は、オープンソースの Knative と完全互換であり、ACK、メッセージサービス、ストレージサービス、ネットワーキングサービスと統合することで、Kubernetes 上で本番対応のサーバーレス機能を提供します。
ACK Knative が解決する課題
Kubernetes 上でサーバーレスワークロードを実行するには、Pod、Service、Deployment、Ingress リソース、イベントルーティング、スケーリングポリシーなどを手動で管理する必要があり、運用オーバーヘッドが大幅に増加します。ACK Knative は、以下の機能によりこの課題を解決します。
-
自動スケーリング(ワークロードが処理されていない場合のゼロスケールを含む)
-
イベント駆動型アーキテクチャ(非同期イベントルーティングにより、イベントプロデューサーとコンシューマーを疎結合化)
-
開発者生産性の向上(Kubernetes、コンテナ、または Knative のインフラストラクチャを直接管理する必要がない関数フレームワークを提供)
主要コンポーネント
ACK Knative は 3 つのコンポーネントで構成されます。ワークロードの要件に応じて、各コンポーネントを個別または組み合わせてご利用いただけます。
Knative Serving
サーバーレスワークロード向けの自動スケーリング対応コンテナランタイムです。Knative Serving は、サーバーレスサービスのフルライフサイクル(デプロイメント、トラフィックルーティング、スケーリング)を一括で管理します。
主な特徴:
-
着信トラフィックに基づく Pod の自動スケーリング(ワークロードが処理されていない場合のゼロスケールを含む)
-
リビジョン間でのトラフィック分割によるカナリアリリース
-
カスタムドメイン名および HTTPS 証明書のサポート
-
gRPC サービスのデプロイメント
Knative Eventing
イベントプロデューサーとコンシューマーを疎結合化する非同期イベントルーティングレイヤーです。プロデューサーはコンシューマーが実行開始する前でもイベントを発行でき、コンシューマーはプロデューサーがイベント生成を開始する前でもイベントクラスをサブスクライブできます。
主な特徴:
-
イベントの取り込み、レジストリ登録、サブスクリプション、フィルタリング、トリガー実行
-
イベント駆動型アーキテクチャにおける EventBridge との統合
-
疎結合:プロデューサーおよびコンシューマーの変更を伴わず、サービス間を接続可能
Knative Function
開発者に焦点を当てた関数フレームワークです。Kubernetes、コンテナ、または Knative の基盤インフラストラクチャを管理することなく、ステートレスかつイベント駆動型の関数を Knative Service としてデプロイできます。
前提条件
登録済みクラスター内に Knative をデプロイするには、以下の要件を満たす必要があります。
-
登録済みクラスターが作成済みであること。また、Kubernetes 1.18 以降を実行する自己管理型 Kubernetes クラスターが、登録済みクラスターに接続されていること。詳細については、「登録済みクラスターの作成」をご参照ください。
-
kubectl クライアントが登録済みクラスターに接続されていること。詳細については、「クラスターの kubeconfig ファイルを取得し、kubectl を使用してクラスターに接続する」をご参照ください。
-
Calico ルートリフレクションモードまたは Cilium ボーダーゲートウェイプロトコル (BGP) ルートモードで動作する自己管理型 Kubernetes クラスターのみがサポートされます。
次のステップ
| 機能 | 関連ドキュメント |
|---|---|
| Knative のリリースノート | Knative のリリースノート |
| Alibaba Cloud Knative とオープンソース Knative の比較 | Alibaba Cloud Knative とオープンソース Knative の比較 |
| Knative コンポーネントの管理 | Knative のデプロイメント および Knative コンポーネントの管理 |
| Knative Service の管理 | Knative アプリケーションの迅速なデプロイメントKnative 向け Ingress の選択推奨事項、、リビジョンの作成、HTTPS による Service へのアクセスのための証明書設定、カスタムドメイン名の設定、トラフィック分割に基づくカナリアリリースの実施、Knative における gRPC Service のデプロイメント、および AHPA を使用したスケジュールされた自動スケーリングの実装 |
| Knative Eventing | Knative Eventing のデプロイメント および Knative における EventBridge のイベント駆動型機能の利用 |
| KServe | KServe コンポーネントのデプロイメント および KServe を使用した推論サービスの迅速なデプロイメント |
| ベストプラクティス | Knative におけるエラスティックコンテナインスタンスの利用、トラフィック変動への耐性を確保するための自動スケーリングの有効化、Knative における HPA の利用、Managed Service for Prometheus における Knative ダッシュボードの表示 、および Knative を基盤とした Stable Diffusion サービスの本番環境へのデプロイメント |