【ケイネイティブ】

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の頭文字だね
← 用語集にもどる