このブログは、vExperts Advent Calendar 2023の15日目です。
最近EUCに限らずVMware関連でいろいろやっていますが、今回Edgeについて触ってみました。
VMware Explore 2023 LasVegasで発表された「VMware Tech Showcase」と呼ばれる取り組みによって、まだ製品としてリリースされていない開発中の機能・製品を一部試用することができます。現在VMware Tech Showcaseで利用可能な「VMware Edge Cloud Orchestrator (以前の開発プロジェクト名称はProject Keswick)」を試してみたので、触ってみた内容をご紹介します。
■VMware Edge Cloud Orchestrator・Project Keswick の概要
はじめにソリューションの概要をご紹介します。
まず先に、Project Keswickについてです。Project Keswickは、VMwareの仮想化テクノロジーとGitOpsを組み合わせ、大量のEdgeをクラウドから一括で展開・管理する機能の提供を目的とし、VMware Explore 2022 USで発表された開発プロジェクトです。
Project KeswickのEdgeは、ESXiベースによって構成されます。そして、Edgeデバイスの管理者は、GitリポジトリにEdgeデバイス(ESXiホスト)や仮想マシン、コンテナなどの構成ファイルを作成します。Project KeswickのEdgeをインストール・起動し、EdgeデバイスがKeswickのサービスに登録されると、Edgeデバイスは自動的にGitリポジトリから構成情報を取得し、構成や仮想マシン、コンテナサービスを自動展開する仕組みを提供します。
●イメージ図
次にVMware Edge Cloud Orchestrator(VECO)についてです。VECOはVMware Explore 2023 Las Vegasで、Edge向けの統合オーケストレーション機能として発表されました。VMware SD-WAN(VMware SASE)のオーケストレーション機能と、VMware Edge Computingソリューションのオーケストレーション機能を統合し、Edge NetworkingとEdge Computingのクラウド統合管理を実現するものだと発表されています。
つまり、EdgeデバイスもEdgeがつながるネットワークも、まとめて1つのコンソールで管理!といったVMwareらしいソリューションですね。
VMware Explore 2023 Las Vegas直後に、VMware Tech Showcaseのプログラムで利用できるようになっていたProject Keswickですが、最近あらためてログインをしてみると管理コンソール名が「Edge Cloud Orchestrator」に変わっていました。
画面左上の"Edge Cloud Orchestrator"の隣に[Edge Compute]といったプルダウンが用意されているので、いずれここからSD-WANのサービスなどを選択して管理画面にアクセスできるんじゃないかなと思われます。(VMware SASE/SD-WANの管理画面も似たようなプルダウンで管理サービスを切り替えるコンソールなので)
■検証時の操作の流れ
事前の説明はこれくらいにして、VECOにEdgeデバイスを登録してサンプルのワークロードを動かしてみたいと思います。今回の操作では以下の流れで操作します。
- Gitリポジトリの準備・登録
- Edgeの展開
- Edgeの登録
- Edgeデバイスの設定変更
- ワークロードの展開
・コンテナサービスを展開
・仮想マシンを展開
VMware Edge Cloud Orchestrator(Project Keswick)のアクティベーションは、VMware Tech Showcaseにアクセスし、"VMware Edge Cloud Orchestrator - Edge Compute (Previously Project Keswick)"の[Get started]をクリックするとサービスの有効化ページに進めることができます。利用開始には、VMware Customer Connectのアカウントが必要です。
アクティベーションが完了すると、VMware Cloud ServicesのコンソールにVMware Edge Cloud Orchestratorサービスが表示されるようになります。
1.Gitリポジトリの準備・登録
まず、Gitリポジトリの準備を行います。今回はGitHubを使用します。はじめに、Edge用に新しいリポジトリを作成します。リポジトリの名前を決め、Privateリポジトリの設定で作成します。
次に、Edgeデバイスがプライベートリポジトリにアクセスできるようにするために、アクセストークンを発行します。GitHub の右上にあるアイコンをクリックし、[Settings] を開きます。[Developer Settings]を開き、[Personal access tokens]-[Fine-grained personal access tokes]の順に画面を開きます。画面右側の[Generate new token]をクリックします。
以上で、Gitリポジトリの準備は完了です。
2.Edgeの展開
次にEdgeを展開します。Edgeの作成方法は現在複数準備されております。Edgeコンピューティングの本来用途を考えると、小型のPCなどのハードウェアにISOイメージ利用する方式でインストールするのが望ましいですが、今回はOVAファイルを用いて、vSphere上の仮想マシンとしてEdgeを展開します。(EdgeのOSはほとんどESXiなので、実質Nested ESXiの構成に近い形になります。)
Edge Cloud Orchestratorを開き、[Lanunchpad]を開き[DOWNLOAD]-[OVA]をクリックすると、ファイルがダウンロードされます。
(ここで、Rootアカウントのパスワードを入力していますが、後ほどのタイミングで指定パスワードが適用されていないことがわかります。。)
概ね、従来からのESXiの画面とかわりない表示です。画面真ん中に、ハードウェア環境の管理情報が表示されています。後ほど、ハードウェア環境の管理情報は利用します。
[F2キー]を押下し、設定画面を開きます。
仮想マシンデプロイ時に適用したrootのアカウントのパスワード情報はなぜか適用されていないので、パスワード未入力でログインができました。
rootアカウントのパスワードが未設定の状態なので、パスワードを設定します。
また、SSHもOVFデプロイ時の選択で有効にしたはずですが、有効になっていなかったのでこのタイミングで有効化しました。
EdgeノードのIPアドレスにブラウザでアクセスすると、Host Clientのログイン画面が表示されます。(検証時はDHCPでIPアドレスを取得しています)
ログインすると通常のESXi HostClientと同じ画面が表示されます。これでEdgeの展開は完了です。
ちなみに、仮想マシンは[ec-system-hostname]という名前の仮想マシンが展開されています。

3.Edgeの登録
次にEdgeデバイスをEdge Cloud Orchestratorに登録します。
vSphere ClientでEdgeのモニタ画面を開き、DCUIのログイン前画面に表示されている"Vendor"、"Model"、"Serial Number"の値を確認します。
※"Serial Number"の値をメモするのが面倒な場合は、SSHでEdgeにログインし"DCUI"のコマンドを入力すると"Serial Number"の値をコピーできます。
しばらくするとEdgeデバイスが認識され、登録したEdgeデバイスの情報が[Hosts]のタブの表示へ移動します。Stausを確認すると"Pending"状態になっているので、アクティブ化します。Edgeデバイスを選択し、[ACTIVATE HOST]をクリックします。
Edgeデバイスに紐付けるGit Repositoryを選択します。今回は前の手順で登録したGitリポジトリを選択します。続けて、GitHubのユーザー名と、前の手順で作成したアクセストークンを入力します。[CONFIRM]をクリックします。
しばらくするとアクティベーションが完了し、Statusが"Active"状態になります。Hostのシリアルナンバーをクリックし、Edgeデバイスの詳細情報を確認します。
以下の様な画面で、Edgeデバイスのリソース利用状態やハードウェア情報を確認することができます。
以上で、Edgeデバイスの登録は完了です。
4.Edgeデバイスの設定変更
ここからGitリポジトリにyamlファイルを配置して、Edgeデバイスの設定変更やワークロードの展開を試してみます。まず、EdgeデバイスのNTP設定を試してみます。参考となる構成ファイルは以下ドキュメントに紹介されています。
・Configuring Keswick hosts
以下は、yamlファイル配置前のEdgeデバイスの状態です。NTPの設定が何も適用されていません。
今回はNTPサーバー設定を、ntp.nic.jp、pool.tnp.orgを指定しています。
Edge Cloud Orchestratorで、ホストの情報を確認します。特に設定変更がなされたようなログなどは表示されないところがつらいですが、"GitOps"のStatusが"Ready"になっていれば定期的に指定したリポジトリにたいして、変更がないか情報を取得しにいっているはずです。
Edge Cloud Orchestratorで、ホストの情報を確認します。特に設定変更がなされたようなログなどは表示されないところがつらいですが、"GitOps"のStatusが"Ready"になっていれば定期的に指定したリポジトリにたいして、変更がないか情報を取得しにいっているはずです。
しばらくして(数分後)にEdgeデバイスの状態を確認すると、NTPサーバーの設定が追加されていることが確認できました。このように、Gitリポジトリに構成ファイルを保存するだけで自動的にEdgeデバイスの設定変更が実施されます。
【余談】
初めてyamlファイルを配置したタイミングか、アクティベーションしたタイミングか不明ですが、Edgeデバイス展開時にはなかった"ec-worker"という名前の仮想マシンが作成されていました。
5.ワークロードの展開
次にワークロードの展開を試してみます。まずは、コンテナサービスを展開しています。
コンテナサービスを展開
Edge Cloud Orchestrator(Project Keswick)のサンプル用として、いくつかのサンプルyamlが公開されています。
・KeswickExample
・Kubernetes Containers
https://docs.vmware.com/en/VMware-Tech-Showcase/services/project-keswick/GUID-F7937611-FB76-48B5-9C61-27EE70B5A3C9.html
https://docs.vmware.com/en/VMware-Tech-Showcase/services/project-keswick/GUID-F7937611-FB76-48B5-9C61-27EE70B5A3C9.html
今回は、 "Hello Keswick"の文字列を表示するWeb サーバのサービスと、ロード バランサとしてmetallbを展開してみます。
サンプルのGitHubにある"hello-keswick.yaml"をコピーし、今回使用しているGitリポジトリのmainブランチ直下にそのまま保存します。
以上で準備は完了です。
仮想マシンを展開
最後に仮想マシンを展開してみます。
・Deploying Virtual Machines
操作前にEdgeデバイス上の仮想マシン一覧を確認すると、2つの仮想マシンしかない状態であることが確認できました。
サンプルのGitHubにある[virtualmachine]-"linux-photon.example"をコピーし、今回使用しているGitリポジトリのmainブランチにそのまま保存します。ファイル名を"photon_Deploy.yaml"に変更しています。
しばらくすると、Edgeデバイス上に新しい仮想マシンが自動的に作成されました。
このように、Gitリポジトリにyamlファイルを配備することで、自動的にEdgeデバイス上にサービスや仮想マシンが展開されます。
■おわりに
今回確認したEdge Cloud Orchestrator(Project Keswick)の動作は以上です。EdgeデバイスのOSとして、ほぼそのままESXiが使われているのが、VMwareならではのできるアプローチとして面白いなと感じました。また、サンプルのyamlファイルを使いサンプルのままに動かしただけですが、GitHubに配置したyamlファイルの情報を元に、自動的にコンテナのサービスや仮想マシンが展開されるのは、実際に試してみると面白かったです。
ただ現時点では、管理コンソール情報だとEdgeデバイスの情報だけが表示されている状態のため情報不足感がありました。追加したyamlファイルに伴う設定変更やサービス展開の状況、その上で展開されているワークロードの実行情報が確認できるようになると、より良い感じのサービスになってきそうだなと感じました。