vSphereでパパッとコンテナ環境を作ろう!

こんにちは!VMware担当の大谷です。今回は、vSphere上でコンテナを実行する簡単な方法をご紹介します。

コンテナとは?

ここではコンテナそのものの詳しい説明は省略します。インターネット上に解説記事がたくさんありますのでそちらをご覧ください。
簡単に概要だけ説明すると、仮想マシンがPCの本体(ハードウェア)を仮想化したものであるのに対して、コンテナはOS上で実行されているアプリケーション(プログラム本体やランタイムなど関連ファイルのセット)単位で仮想化するものです。OS部分は共有するので、サイズが小さく起動や停止も高速という特徴を持っています。そしてこのコンテナアプリケーションのプラットフォームといえばDockerですね。

図 仮想マシンとコンテナ

VMwareでコンテナといえばTanzuです!

VMware Tanzuはコンテナ化されたアプリケーションの開発環境、実行環境、管理環境を提供します。3つの機能を実現する製品群で構成され、エンタープライズクラスの耐障害性、セキュリティ、パフォーマンスを提供するソリューションです。詳しくは下記Webサイトをご覧ください。

Tanzuはコンテナアプリケーションを大規模に運用するには最適な製品なのですが、エンタープライズ環境向けということもあり、どうしても手軽さに欠けてしまいます。「数個のコンテナアプリケーションをvSphere上で実行したいだけ・・・」「Kubernetesとか言われても手が出ない・・・」そんな方もたくさんいらっしゃるのではないでしょうか? そこで!今回はvSphere上でお手軽にコンテナアプリケーションを実行する方法をご紹介します。

もっとお手軽な方法は?

思いつくのは、UbuntuなどのLinuxディストリビューションを仮想マシンにインストールしてコンテナの実行環境を作ってしまう方法です。これでもいいのですが、もっとサクッとvSphere上でコンテナアプリケーションを実行する方法はないのでしょうか?
 そこで今回はVMwareが提供しているLinuxディストリビューションであるPhoton OS(Photon Linux)をご紹介します。vCenter Server ApplianceのOSとして使われているので、目にしたことがある方もいらっしゃると思います。このLinux環境は、vSphere上でコンテナアプリケーションを実行するために最適化してあるという特徴を持っています。最小構成のOVAは必要最低限の機能だけを実装しているため、サイズがとってもコンパクトでホストのリソース消費も最小化できます。

Photon OSをダウンロードして展開しましょう

ではさっそくPhoton OSをvSphere 8にデプロイしてみます。まずはOSイメージをGitHubからダウンロードするわけですが、展開方法によっていくつかの形式が用意されています。今回は一番手軽で小さいOVA形式のOSバージョン4.0GAを使いましょう。「OVA with virtual hardware v13 (UEFI Secure Boot)」をダウンロードしてください。

図 インストールファイルのダウンロードページ

ダウンロードしたOVAをデプロイしましょう。旧バージョン用ですが、手順は同じですのでインストールガイドを参照してください。

今回デプロイするOVAではインストールガイドのスクリーンショットと異なるところが1点あります。インストールガイドではデプロイは7ステップですが、実際にデプロイを実行すると8ステップあります。7ステップ目のネットワーク設定が追加されているようです。接続する仮想マシンポートグループを選択できますが、IPアドレスを指定することはできません。デフォルトはDHCPが有効になっていますので、後ほどStatic IPアドレスを設定します。
 デプロイが完了したらWebコンソールまたはRemote Consoleで仮想マシンに接続して電源をONにしましょう。しばらくするとLinuxのログインメッセージが表示されます。

図 起動画面

図 ログインメッセージ

最初のログイン時は下記ユーザー/パスワードを使用してください。
   ユーザー名:root パスワード:changeme

パスワードの変更を求められるので、新しいパスワードを入力してください。

図 初回ログインとパスワード変更

これでPhoton OSのデプロイは完了です。とっても簡単ですね!

Photon OSの基本設定をしましょう

Photon OSのいいところは、何もしなくてもコンテナの実行環境が整っているところです。実はデプロイしただけでDockerが使えます。

図 インストールされているDockerのバージョン

それではコンテナを実行する前に必要な設定をしていきましょう。

① Static IPアドレスを設定する
まずはIPアドレスの設定をしましょう。これには次のような設定ファイルが必要ですので、下記パスにファイルを作成してください。

設定ファイル /etc/system/network/10-static-eth0.network

[[Match]
Name=eth0

[Network]
DHCP=no
Address=/<サブネットのビット数> (CIDR表記)
Gateway=<デフォルトゲートウエイのIPアドレス>
DNS=

次に作成したファイルのパーミッション(アクセス権)を変更します。これをしないとStatic IPアドレスの設定ファイルを読み込めずエラーになります。

chmod 644 /etc/system/network/10-static-eth0.network

Static IPアドレスを反映させるためサービスを再起動します。

systemctl restart systemd-networkd.service

Static IPアドレスが正しく設定されたかはip addressコマンドで確認できます。念のためpingでIPの疎通確認をしておきましょう。

図 外部のサーバーにpingを実行

Photon OSは最初からSSHサービスが有効になっています。そのためIPアドレスを設定するだけでTera Termなどのターミナルソフトを使って接続可能です。

② キーマップ(キーボードレイアウト)の変更
Photon OSのデフォルトキーマップはn/aです。つまり何も設定されていない状態なので英語キーボードになっています。日本語キーボードを使っていると記号などの配置が異なって使いにくいのでキーボードレイアウトを変更しましょう。

図 キーマップの確認 localectl

図 キーマップを日本語に設定 localectl set-keymap jp106

これで日本語キーボードが使えるようになりました。ただし、Remote Consoleで接続した場合は英語キーボードになりますので、ここからはSSHで接続して設定していきます。

③ Dockerサービスを自動的に立ち上げる
Dockerのパッケージはインストールされているのですが、OS起動時にサービスが立ち上がるようには設定されていません。このままではちょっと不便なので自動起動するように設定します。

図 サービスの自動起動有効化 systemctl enable docker

次にコンテナアプリケーションを実行できるようにDockerサービスを起動しましょう。

図 Dockerサービスを起動 systemctl start docker

systemctl status docker コマンドで確認すると、ちゃんとサービスが起動しています。これでコンテナアプリケーションの実行環境が完成しました。とっても簡単でお手軽ですね!

④ Docker Hubの公式Dockerイメージ hello-worldを動かしてみる
それでは実際にコンテナアプリケーションを実行してみましょう。今回はあらゆるアプリケーションや言語でお約束のHello Worldです。

以下のコマンドを実行するとDocker Hubからhello-worldのイメージがダウンロード(Pull)されDockerで実行されます。

図 docker run hello-world

ダウンロードされ実行可能なDockerイメージを確認してみましょう。

図 Dockerイメージの一覧 docker images

いかがでしょう? Photon OSを使えばvSphereに最適化されたコンテナ実行環境が、素早く簡単に展開できるのです。ぜひ皆さんもお試しください!

VMwareの記事




※閲覧にはiDATEN(韋駄天)へのログインが必要です。