【ケイネイティブ】

Knative とは?

最終更新:
💡 Kubernetesに、リクエストやイベントで動くアプリの仕組みを追加

Kubernetes上でサーバーレスのアプリを動かすためのオープンソース技術。ServingはHTTPなどのリクエストに応じたコンテナの実行と自動スケール、Eventingはイベントの配送を担う。

📌 このページのポイント
Kubernetes上に、アプリの仕組みを追加HTTPリクエストイベント送信元Servingコンテナアプリを実行設定によりPodを0台へEventingイベントを配送受信先はServing以外も可Kubernetes:必要な基盤を運用するアプリのPod 0台 ≠ クラスタ全体が0台
ServingとEventingの役割を比較した概念図。矢印は入力を表し、Kubernetesの上にある枠は動作する基盤との関係を示します。全内部コンポーネントやEventingの配送経路を描いた実装図ではありません。
ひよこ ひよこ
KnativeとKubernetesはどう違うの?
ペンギン先生 ペンギン先生
Kubernetesがコンテナを動かす基盤で、Knativeはその上に、リクエストに応じてアプリを動かしたりイベントを届けたりする仕組みを加えるんだ。クラスタの管理が不要になるという意味ではないよ
ひよこ ひよこ
使っていないときは全部0台になる?
ペンギン先生 ペンギン先生
Servingは、設定に応じて対象アプリのPodを0台まで減らせるよ。ただし、KubernetesのノードやKnativeの管理機能まで0台になるわけではない。0台への縮小にはKPAという自動スケールの方式を使うなどの条件があり、すべての設定で必ず0台になるとは限らないんだ
ひよこ ひよこ
ServingとEventingは何を分担する?
ペンギン先生 ペンギン先生
ServingはHTTPなどで使うコンテナアプリの実行や通信先、更新ごとのリビジョンを管理する。Eventingは送信元のイベントを受信先へ届ける仕組みだよ。Eventingの受信先はServingのサービスだけでなく、通常のKubernetesのサービスにもできるんだ
ひよこ ひよこ
関数だけを動かす仕組み?
ペンギン先生 ペンギン先生
関数に限定されないよ。Servingはコンテナにしたアプリを扱う。EventingではCloudEvents形式のイベントをHTTP POSTで配送する。何を0台へ減らせるか、どの部品を運用するかを区別して理解しよう
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Knative」って出てきたら「Kubernetes上でサーバレスを動かすプラットフォーム」と思えればだいたいOK!
📖 おまけ:英語の意味
「Knative」 = Kubernetes上で使うサーバーレス技術の名前
💬 ServingやEventingなどを提供するプロジェクトの名前だよ。名前を理解することと、クラスタ上に必要な設備や運用がなくなることは別なんだ

参考資料

← 用語集にもどる