WebAssemblyによるサーバレスをKubernetes上で実現する「SpinKube」、CNCFへの寄贈を発表
今回は「WebAssemblyによるサーバレスをKubernetes上で実現する「SpinKube」、CNCFへの寄贈を発表」についてご紹介します。
関連ワード (以外、期待、監視等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
WebAssemblyによるサーバレスプラットフォームをKubernetes上で実現するオープンソースの「SpinKube」が、Cloud Native Computing Foundation(CNCF)へ寄贈されたことが発表されました。
Today on the #KubeCon + #CloudNativeCon keynote stage, @michelledhanani alongside @Azure & @ZEISS_Group shared how & why #Wasm has taken root in the cloud native world. Read about it getting practical & about @SpinKube's contribution to @CloudNativeFdn: https://t.co/6Mo3WTYDmU
— Fermyon (@fermyontech) March 21, 2024
SpinKubeを構成する4つのソフトウェア
SpinKubeは主に「Containerd Shim Spin」「Runtime Class Manager」「Spin Plugin for Kubernetes」「Spin Operator」の4つから構成されています。
Containerd Shim SpinはKubernetesのノード上でWebAssemblyで構築されたSpinワークロードを実行するためのShimです。containerd上でWebAssemblyを実行可能にするrunwasiと、WebAssemblyをポータブルにするWASI(WebAssembly System Interface)を用いています。
参考:コンテナランタイムのcontainerdに、WebAssemblyをコンテナとして扱うための「runwasi」が統合。これからのコンテナランタイムはWebAssemblyと統合されていく
Runtime Class managerはKubernetes環境におけるcontainerd shimのインストール、更新、削除、設定などのタスクの自動化などによるライフサイクルを管理します。
Spin Plugin for Kubernetesは、containerd shimsと統合して動作し、Kubernetesが従来のコンテナワークロードと同様の方法でWebAssemblyのワークロードを管理、実行できるようにします。
Spin Operatorは、Spinアプリのカスタムリソース定義(CRD)を定義しKubernetesへのデプロイを可能にします。さらに、Spinアプリのイメージ、レプリカ、スケジューラ、およびその他のユーザー定義値などのSpinAppカスタムリソースを監視し、Kubernetesクラスタ内での適切な状態を実現します。
サーバレス環境でも期待されるWebAssembly
サーバレス環境では現在、コンテナ型仮想化の技術が多く用いられていますが、WebAssemblyはコンテナ型仮想化よりも軽量でより素早く起動し、多くの場合においてより高速に実行され、またサンドボックスによって安全に分離されるなど、技術面で多くの利点があります。
そのためサーバレス環境におけるWebAssemblyの利用は今後の普及が期待されるところです。
SpinKubeのプロジェクトはCNCFの試験的なプロジェクトであるサンドボックスプロジェクトとして開発が進められます。しかしSpinKubeにはFermyon以外にマイクロソフトも積極的に関わっているため、今後の進展次第ではマイクロソフトがMicrosoft AzureでSpinKubeによるサーバレス環境の提供を行う可能性もありそうです。