Japan VMUG vExpert が語る #27 で紹介した、お手軽 Kubernetes 環境構築についての話です。VMware Workstation Pro で、Kubernetes クラスタを作成してみます。
今回の内容です。
録画はこちら。
はじめに
今年も vExpert Application Modernization 受賞できたので、これから Kubernetes を始めてみようかと思えそうなおもしろ機能を紹介します。
Tanzu と vSphere with Tanzu の復習
Application Modernization といえば Tanzu ですよね。これは、「Tanzu が Kubernetes です」というわけでななく、「Kubernetes の世界で利用されるものが用意できる」ブランドです。
そして、Kubernetes を便利に使うツールなど(Velero、Sonobuoy ...)も含まれます。
そのなかで話題の? vSphere with Tanzu は・・・
- vSphere が Kubernetes になる
- ESXi で、CRX コンテナ ランタイムによる vSphere Pod が起動できる
といったものです。
しかしながら「Kubernetes が簡単に使えるようになる」わけではありません。私は、「すでに Kubernetes を使い慣れた人むけに、オンプレ Kubernetes を用意しやすくする」といった感じのものであると思っています。(モダンなアプリのオンプレ回帰といったケースでは刺さりそうではあります)
vSphere with Tanzu や TKG よりもお手軽な Kubernetes 用意
ところで、vSphere with Tanzu よりも、さらに簡単に手元にちょっとした Kubernetes クラスタが欲しい場合は、もう少し手軽なツールがあります。しかも、すでに手元の PC に、そのツールがインストールされているかもしれません。
今回は、VMware Workstation Pro 16 以降で利用できる、vctl というツールで Kubernetes クラスタを用意してみます。
VMware Workstation Pro 17 のドキュメントだと下記のあたりです。
vctl kind による Kubernetes クラスタ作成
Windows マシンに、VMware Workstation Pro をインストールしておきます。今回の環境では、バージョン 16.2.5(古め)を利用しています。
まず、PowerShell のコンソールから、コンテナ ランタイムを起動します。
PS> vctl system start
そして vctl kind コマンドを実行すると、別の PowerShell ウィンドウが開きます。
PS> vctl kind
新たに起動されたウインドウで、Kubernetes クラスタを作成します。
PS> kind create cluster
これで、シングル ノードの Kubernetes クラスタが作成されました。kubectl も実行できるようになっており、Kubernetes ノードの情報が取得できます。
PS> kubectl config get-contexts PS> kubectl get nodes
PS> kubectl get pods -A
このように、最近の VMware Workstation では、kind(Kubernetes in Docker)による Kubernetes 作成ができるようになっています。
Kubernetes クラスタは、下記のように削除できます。
PS> kind create cluster
vctl 関連ファイルの様子
VMware Workstation Pro がインストールされたディレクトリ配下を確認してみると、crx といった、vSphere Pod でも利用されているコンテナ ランタイムの名前を含むファイルがみつかります。vctl は、vSphere Pod と同様に、Pod ごとに仮想マシンを作成する仕組みになっているようです。
ホーム ディレクトリ($HOME)配下には .vctl というディレクトリが作成され、kubectl や kind コマンド、そして crx.vmdk というファイルが配置されています。
vctl kind で新たに起動された PowerShell ウインドウでは、PATH 環境変数にこのディレクトリも追加されるため、さきほどのように kind / kubectl コマンドが実行できるようになっています。
vctl でのコンテナ起動
vctl は、kind による Kubernetes 作成をしなくても、「vctl run ~」といったコマンドを実行するとコンテナが起動できます。ほかにも docker CLI のように、vctl ps で起動されたコンテナの確認、vctl exec でコンテナの中に入ることができます。
今回は例として、Docker Hub にある CentOS 7 の自作コンテナ イメージを起動していますが、CRX コンテナ ランタイムを利用しているだけあり、uname -r などを実行すると、vSphere Pod と同様に Photon OS の Linux カーネル(~.ph3-esx)が使用されていることがわかります。
exit でコンテナから抜けて、vctl rm コマンドでコンテナを削除しておきます。コンテナを起動したまま削除するので「-f」オプションを付与しています。
ちょっとした Tanzu 関連ツールの確認などに使えるかもしれません。バージョン 16 同梱の kind だとだいぶ Kubernetes バージョンが古いですが・・・
ちなみに、手元に環境がないので試せてませんが、vctl は最近の VMware Fusion にも含まれているようです。
以上、これから Kubernetes を始めてみようかと思えそうなおもしろ機能の話でした。