現在、Kubernetes とサーバーレスのコミュニティーでは Knative という新しいオープンソース・プロジェクトが大きな話題となっています。すでに Kubernetes を使用している開発者は実感すると思いますが、Knativeは、インフラストラクチャーに対処する負担を軽減し、ビジネス・ロジックに焦点を絞りたいと思っているアプリケーション開発者にとって絶好のプラットフォームです。
Knative は IBM、Google、Pivotal、Red Hat、Cisco、その他の企業による共同プロジェクトであり、Istio と Kubernetes をベースに開発されています。Knative を構成しているのは、Kubernetes 上でサーバーレス・アプリケーションを可能にする Serving、Build、Evening という 3 つの基本コンポーネントです。Serving コンポーネントは、アプリケーションの処理、トラフィックの管理、ルーティングと自動スケーリングに対応します。Build コンポーネントでは、ソース・コードからイメージをビルドするところからクラスター上にデプロイするまでの一連のステップを作成できます。さらに Eventing コンポーネントにより、イベントのプロデューサーとコンシューマーを作成できるようになっています。この 3 つのコンポーネントはいずれも、他のコンポーネントで使用したりベースとしたりできる共通のパターンとベスト・プラクティスを特定することを目的としています。
Knative の主なユーザーとして意図されているのは開発者とプラットフォーム・プロバイダーです。開発者は Knative を直接 (あるいは API を介して) 使用して、Kubernetes を基盤にサーバーレス・アプリケーションを構築できます。一方、プラットフォーム・プロバイダーは Knative のプリミティブを使用して、Kubernetes 上に独自のサーバーレス・プラットフォームを構築できます。
このチュートリアルは、Knative とその各種の機能とコンポーネントについて学ぶための導入部です。下のリンクをクリックして、一連の演習に取り組んでください。これらの演習をひと通り終えると、次の方法がわかるようになります。
- IBM Cloud Kubernetes Service (IKS) 上で新しいクラスターを作成する
- 作成した Kubernetes クラスターに Istio と Knative をインストールする.
- 使用中はスケールアップし、使用されなくなるとゼロまでスケールダウンする Node.js application を Knative にデプロイする
- ルーティング・ルールを簡単に作成できる knctl ツールを使いこなし、さらに高度な方法でアプリケーションを Knative にデプロイする