【ケイネイティブ】
Knative とは?
最終更新:
💡 Kubernetesに、リクエストやイベントで動くアプリの仕組みを追加
Kubernetes上でサーバーレスのアプリを動かすためのオープンソース技術。ServingはHTTPなどのリクエストに応じたコンテナの実行と自動スケール、Eventingはイベントの配送を担う。
📌 このページのポイント
- ServingはHTTP/HTTPSで使うアプリの実行、リビジョン、通信先を管理する
- Servingでは設定に応じてアプリのPodを0台へ減らせる
- EventingはCloudEvents形式のイベントを送信元から受信先へ配送する
- アプリが0台でも、KubernetesやKnativeの基盤までなくなるわけではない
KnativeとKubernetesはどう違うの?
Kubernetesがコンテナを動かす基盤で、Knativeはその上に、リクエストに応じてアプリを動かしたりイベントを届けたりする仕組みを加えるんだ。クラスタの管理が不要になるという意味ではないよ
使っていないときは全部0台になる?
Servingは、設定に応じて対象アプリのPodを0台まで減らせるよ。ただし、KubernetesのノードやKnativeの管理機能まで0台になるわけではない。0台への縮小にはKPAという自動スケールの方式を使うなどの条件があり、すべての設定で必ず0台になるとは限らないんだ
ServingとEventingは何を分担する?
ServingはHTTPなどで使うコンテナアプリの実行や通信先、更新ごとのリビジョンを管理する。Eventingは送信元のイベントを受信先へ届ける仕組みだよ。Eventingの受信先はServingのサービスだけでなく、通常のKubernetesのサービスにもできるんだ
関数だけを動かす仕組み?
まとめ:ざっくりこれだけ覚えればOK!
「Knative」って出てきたら「Kubernetes上でサーバレスを動かすプラットフォーム」と思えればだいたいOK!
📖 おまけ:英語の意味
「Knative」 = Kubernetes上で使うサーバーレス技術の名前
💬 ServingやEventingなどを提供するプロジェクトの名前だよ。名前を理解することと、クラスタ上に必要な設備や運用がなくなることは別なんだ