Project Pacific について現時点で分かっていること – アーキテクチャ編 –

最終更新日

Comments: 0

先日のVMworld2019 にてアナウンスされたProject Pacific1は、vSphere とkubernetes (k8s) を統合し、vCenter Server からVM もPod も管理できるという。本記事では、各所で発表されている様々な公開情報を基に、Project Pacific について現時点で判明しているアーキテクチャについて、技術的な面からまとめる。ほぼほぼ、この動画をまとめたものになるので、必要に応じて動画を参照してほしい 。
https://www.youtube.com/watch?v=pfcfOMikea4

アーキテクチャ

vSphere のESXi サーバーがLinux VM の代わりにWorker Node として機能する。ESXi 上に、Spherelet と呼ばれる、k8s のKubelet に相当する機能を直接稼働させ、k8s Master からの命令に従いPod の操作を行う。このアーキテクチャの違いは下図のように、k8s と比較すると分かりやすい。

https://mapr.com/blog/kubernetes-kafka-event-sourcing-architecture-patterns-and-use-case-examples/
The supervisor cluster is a Kubernetes cluster of ESXi instead of Linux
https://blogs.vmware.com/vsphere/2019/08/project-pacific-technical-overview.html

Pod はESXi 上にネイティブに実装され、vCenter Server からはVM のように見える。これを実現しているのがCRX2 と呼ばれるESXi 組み込みのコンテナランタイムであり、Linux Kernel をESXi 上に組み込み、ブートの際の初期化プロセスもないため(これをDirect Boot と呼ぶらしい)、高速にPod が起動する。最初からLinux OS が立ち上がっていると考えると分かりやすいか。したがって、VM のリソース分離とセキュリティのメリットを享受しつつも、コンテナの高速起動を実現している。

パフォーマンスも優れたものになっている。これまでは(ベアメタルでの実装を除き)物理サーバー>ハイパーバイザー>Linux VM>Pod、というレイヤー構造だったのが、物理サーバー>ハイパーバイザー>Pod、というよりシンプルなものになるということである。このため従来のVM 上にコンテナをデプロイするモデルよりもスループットが優れたものになっているとの発表がVMworld であった。 また、ベアメタルよりも8% 優れているとの発表もあったが、これはよりNUMA を意識したCPU スケジューリングが可能なことに起因する。コンテナがばらばらにCPU 資源を使うよりも、vCPU というある程度まとまった単位でスケジューリングした方がLocal Memory Access をしやすくなるとのこと。3

動画の中でも質問があったが、ESXi の軽量なアーキテクチャにLinux Kernel を組み込むことは反するのではないか、という疑問は尤もだが、これもいわゆるPod を動かす以外の余計な機能を全て削いでいるため、軽量であるとのこと(どのくらいの容量かは説明がなかった)。

なお、CRX のLinux Kernel はPhoton OS を使用している。ただしLinux Distro というよりは、本当に単純なKernel 部分しか使っていない。4 このCRX は1 コンテナに1 つ割り当てられる(=1pod 1 Kernel)。

ここで、Master NodeはVM で実装される。これは図のk8s Master VM である。当然ながら冗長化されるであろうが、etcd が組み込みか外出しかどうかはソースが見つからなかった。

一つ注意点として、Pod を作る時は、図にもあるように、k8s Master に接続するため、vSphere からPod を作ったりはしないようである。あくまでも、vSphere Admin とk8s を使うDeveloper の役割を分けているとのこと。5

まとめ

以上が現時点で私が理解しているProject Pacific のアーキテクチャの情報である。 まだ先の話なので情報も少ないし、Tech Preview のため今後実装が変わるかもしれない。しかしながら、これまでk8s の導入がなかなか進まなかった大規模顧客が、Project Pacific でコンテナを導入するきっかけになれば、それは非常に面白い。

  1. 色々な記事を 日本語に翻訳して読むと「プロジェクト太平洋」となって笑ってしまう…
  2. Container Runtime eXective またはContainer Runtime for ESXi の略らしい。 https://www.linkedin.com/in/rahulrane50/ (2018年から書いているようだがこれは大丈夫なのだろうか……)
  3. https://www.vmware.com/techpapers/2017/docker-vsphere65-weathervane-perf.html
    https://youtu.be/pfcfOMikea4?t=431
  4. https://youtu.be/pfcfOMikea4?t=572
  5. https://youtu.be/pfcfOMikea4?t=250

vkbaba

仮想化関連のSE をしています。ただいま社会人3 年目。 投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントする