Photonテイスター:VMwareのCoreOS戦略を試してみる

Table of Contents

Photonテイスター:VMwareのCoreOS戦略を試してみる

VMwareのPhotonへの関心が高まっています。Photonは、高度に最適化されたDockerコンテナをVMwareの世界に導入することを可能にします。

Docker を導入することの素晴らしい点の 1 つは、新しいインスタンスを起動するのにわずか数秒しかかからないことです。

Photonは、CoreOSや類似製品の競合製品として考えられます。Photonの特徴は、VMwareのAPIを公開しているため、開発者はまもなくリリースされるPhoton Controllerプラットフォームの一部機能を活用できることです。Photonは無料で使用でき、必要に応じてフォークすることも可能です。

VMware HAやFTといった従来のVMware機能は、Photon中心の世界では注目されています。開発者が新しいWebスケールアプリケーションを構築する際には、高可用性機能は、可用性を管理するための様々なフレームワークのいずれかを用いて管理する必要があり、開発者は障害発生時にも正常に動作するように努める必要があります。状況は変化しています!

Mac上のVMware Fusionを使ってPhoton上でDockerアプリケーションを構築してみました。VirtualBoxなどの他のデスクトップ仮想化システムも使用できます。この設計をサポートする新しいDocker対応ホストは、現在まだプライベートベータ版です。

Photon 上の基本的な Docker セットアップをインストールするには、次の手順に従います。

  1. githubから最新のPhoton Micro OSイメージをダウンロードします(フルISOを選択)
  2. 8 GB ディスク / 1.5 GB RAM / 1v CPU の仮想マシンを作成する
  3. その他の Linux 3.x 64 ビットカーネルを選択
  4. Photonイメージをアタッチし、VMを起動します。プロンプトが表示されたら「フルインストール」を選択します。

Photonのインストーラーは質問が非常に少なく、インストールも非常に高速です。インストールの種類、ホスト名、ルートパスワードの設定を尋ねるだけで完了です。デフォルトでDHCPアドレスが取得されます。ここでは個々のホストではなく、Webスケールでのインストールを想定しています。スピードと自動化こそが全てです。

Photon Dockerインストール内には、Dockerイメージを動作させるために設定できるNATサービスがあります。デプロイ時に管理者が使用するポートを指定すると、Dockerが必要なネットワークマッピングを作成します。

ここで、Dockerイメージの仕組みについて触れておくのが賢明でしょう。Dockerイメージは、本質的にアプリケーションのみで構成されるステートレスサーバーとして設計されており、フルファットVMのような仮想マシンではありません。Dockerコンテナは、データ損失なしに自由に作成・破棄できます(すべきです)。コンテナが破損したり壊れたりした場合は、破棄して代わりに別のコンテナをデプロイするだけで済みます。

すべてのDockerイメージは、複数の異なるファイルシステムの層を接着したサンドイッチのように構築されています。これは、イメージのメンテナンスを容易にし、イメージの再構築や変更の際に最小限の作業で済むようにするためです。

docker ホストにログインし、最新のパッチで更新してから、次のコマンドを発行します。

yum –y update

入力して Enter キーを押してサーバーを再起動しますreboot

再起動したら、Dockerデーモンを起動し、起動時に自動的に起動するように設定します。以下のコマンドを使用します。

systemctl enable docker

再起動してください。この時点で、次のコマンドを使用してDockerがインストールされ、動作していることを確認できます。

docker info

これにより、Dockerが動作していることの証明と、マニアックな方々にとって興味深い情報が得られます。これで準備が整いましたので、自由にデプロイできるMinecraftイメージをビルドする準備が整いました。

ビルド情報はDockerファイルと呼ばれる特別なファイルに保存されます。このファイルでは、ビルドに含める内容、実行するコマンド、そして必要なファイルを指定します。

mineserver というフォルダを作成してそこに移動し、ファイルの構築を開始します。

mkdir /opt/mineserver && cd /opt/mineserverv

この時点で、次のコマンドを使用して dockerfile を作成および変更できます。

vi Dockerfile.

コメントを追加するには、コメントの先頭にハッシュ記号を付けます。例えば

# This is a comment

セットアップの構築は、dockerfile にコマンドを含めることによって行われます。

Dockerファイルの構築にはいくつかのコマンドが使用できます。すべてのDockerイメージには、アプリケーションプラットフォームを構築するためのベースOSが必要です。Ubuntuは非常に人気のあるベースOSです。

次のように、nano または vi (どちらのエディターでも構いません) を使用して編集して Dockerfile をビルドし、次の内容をファイルにコピーします。

FROM ubuntu:latest

Maintainer Joe Public <[email protected]>

User root

RUN mkdir opt/minecraft/

RUN apt-get -y update

RUN apt-get install -y openjdk-7-jre-headless wget>

RUN wget -P /opt/minecraft/ https://s3.amazonaws.com/Minecraft.Download/versions/1.7.4/minecraft_server.1.7.4.jar

RUN echo "eula=true" > /opt/minecraft/eula.txt CMD java -d64 -Xmx1024M -jar /opt/minecraft/minecraft_server.1.7.4.jar nogui

この例には、Ubuntuの最新バージョンやMinecraftサーバーのファイルをWebから取得するなど、本番環境での利用を想定していない項目がいくつかあることに注意してください。実際のDocker環境では、ファイルをネットワーク内に保存し、インフラストラクチャ内でバージョン管理を行う必要があります。

Docker ファイルをビルドするには、次のコマンドを使用します。

docker build –t “stuart/minecraft” .

出力にエラーが表示された場合は、dockerfile のエラーとコンソールのエラーを確認してください。イメージがビルドされていれば、以下のコマンドを実行して docker インスタンスを実行できます。

光子1

Dockerインスタンスを実行する

docker run –p 25563:25563 stuart/minecraft:latest &

上記のコマンドを実行すると、docker run の実行開始時に常に最新バージョンの dockerfile が使用されるようになります。当然のことながら、Minecraft の各インスタンスには独自のネットワークポートが必要です。ポート番号(25553)を変更してポート設定を行ってください。

役に立つ可能性のある他のコマンドとしては次のようなものがあります。

docker images

光子2

画像は現地で入手可能です

上のスクリーンショットは、ビルドされローカルで利用可能なすべてのイメージを示しています。上記のようにビルドすれば、コマンドを繰り返すだけで必要な数のインスタンスを簡単に作成できます。各コンテナには、実行時にその存続期間中、一意のIDが付与されます。

実行中のコンテナを確認するには、次のコマンドを発行します。

docker ps

インスタンスを強制終了するには次のコマンドを使用します。

docker kill <container ID>

これは、Photon環境でDockerを作成して使用するための基本的な概要に過ぎませんが、その核心部分に触れています。Dockerが非常に簡単なのは、Linuxの使用経験がある程度あればすぐに使いこなせるため、非常に使いやすく、すぐに使いこなせるようになるからです。

新しい Photon コントローラーが何をもたらすのかは、興味深い質問です。®

Discover More