【ケイネイティブ】

Knative とは?

💡 Kubernetesにサーバレスの魔法を追加するプラグイン
📌 このページのポイント
Knative のアーキテクチャ Kubernetes(基盤) Knative Knative Serving HTTPトリガー・0へのスケール Knative Eventing イベント駆動トリガー HTTPリクエスト 0台→自動起動 イベントソース Kafka等 Cloud Run KnativeベースのマネージドサービスOO
KnativeはKubernetes上でServingとEventingの2機能を提供する
ひよこ ひよこ

KnativeってKubernetesとどう違うの?

ペンギン先生 ペンギン先生

KubernetesコンテナデプロイするOSのような基盤で、KnativeはそのKubernetes上に乗っかってサーバレスの機能を追加するプラットフォームなんだよ。拡張機能みたいなイメージだね。

ひよこ ひよこ

サーバレスの機能ってどういうこと?

ペンギン先生 ペンギン先生

代表的なのは「リクエストが来たら起動、しばらく来なければ0台に縮退」というオートスケールだよ。普通のKubernetesでも最小1台は維持するけど、Knativeなら完全にゼロにできてコストが抑えられるんだ。

ひよこ ひよこ

Knative ServingとKnative Eventingって別々のものなの?

ペンギン先生 ペンギン先生

うん、2つのコンポーネントは独立してインストールできるよ。Servingはリクエスト駆動(HTTPなど)の関数実行、EventingはKafkaやCloud Pub/Subなどのイベントを受け取ってサービスを起動する仕組みなんだ。

ひよこ ひよこ

Google Cloud Runと関係あるって聞いたんだけど?

ペンギン先生 ペンギン先生

そうなんだよ。Cloud RunはKnativeをベースに作られたフルマネージドサービスで、Knativeの使い勝手をさらに簡単にしたものと思えばいいよ。自前のk8sクラスタにKnativeを入れればCloud Run的な環境を自分で運用できるんだね。

ひよこ ひよこ

じゃあどんなときにKnativeを選ぶの?

ペンギン先生 ペンギン先生

オンプレやプライベートクラウドでサーバレスを動かしたい場合や、Kubernetes環境に統一したい場合に向いているよ。クラウドベンダーに縛られずにサーバレスを実現したいチームが採用することが多いんだね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Knative」って出てきたら「Kubernetes上でサーバレスを動かすプラットフォーム」と思えればだいたいOK!
📖 おまけ:英語の意味
「Knative」 = Kubernetes Native(の省略造語)
💬 Kubernetes(k8s)の上でNative(ネイティブ)に動くサーバレス基盤という意味で名付けられたんだよ。「K」はKubernetesの頭文字だね
← 用語集にもどる