Knativeはいかにコンテナサーバーレスを実現しているか 〜Cloud Runから見るKnative〜

By morito ikeda

Elevator Pitch

コンテナをサーバレス環境で実行できるGCPの新サービス「Cloud Run」。このサービスは、Kubernetes上でサーバレス環境を実現する「Knative」をベースにして作られています。
ここではKnativeの構成要素の一つである”Serving”に着目し、Knativeの観点から見たCloud Runの構造や、Knativeがどのようにコンテナサーバーレスを実現しているかを紹介します。
本講演が「K8s上での開発・運用コストを下げたい」「プラットフォームに依存せずサーバーレスを実現したい」「そもそもKnativeとは何かを知りたい」といった方々の基礎となることを期待しています。

Description

近年ではアプリケーションをKubernetes上で運用する事例も増えてきました。そのような中で、Kubernetes上でのアプリケーション開発・運用をさらに便利にするために、k8sエコシステムの上でサーバーレス環境やCI/CDを実現する「Knative」が注目されています。

そしてコンテナサーバーレスをKubernetes上で可能にするCloud Runは、このKnativeのコンポーネントの一つである”Serving”をベースに構築されています。 しかし普通にCloud Runを使用しているだけではその仕組み、またそれがどのようにKnativeと関係があるのかは私たちの目には見えません。

そこで本セッションでは、コンテナサーバーレスを支えるKnative Servingの詳細、および Knativeの視点から見たCloud Runの構造 を、実際にGKE上でCloud Runを動かしながら説明します。
Knative自体の概要から入り、KnativeのServingを構成する4つのCRD(Custom Resource Definition)を詳しく見ていきながら、CloudRunとの関係性について理解していきます。 またそれらは「Knativeの目指すサーバーレス」とはどんなものなのかを知っておくことで、より理解が深まります。 これについては、CNCF Serverless Whitepaper v1.0で言及されており、ここについても触れていきます。

Knativeというものはクラウドプラットフォームに依存せずサーバーレスなコンテナ運用やCI/CDを実現する技術でもあるため、Google Cloud RunにとどまらないKubernetes上でのサーバーレスワークロードについて理解を深めていく一歩になれればと思います。

Notes

10分のトークを希望します。