CoreOSとPortainerで簡単コンテナ管理


このブログはBluemix(SoftLayer) Advent Calendar 2016の12月20日のエントリーです。

はじめに

最近、手っ取り早く、HDP (Hortonworks Data Platform) 2.5のSandboxを試すことができる環境をいろいろ探しているのですが、現状CoreOSをデプロイできるクラウドを利用するのが簡単だと思います。すでに、Docker (EC2)Rancher(SoftLayer)Docker(Packet)で試す方法が紹介されていますが、ここでは、CoreOS (SoftLayer) + Portainerで試す方法を紹介します。

HDP (Hortonworks Data Platform) 2.5のSandboxとは

Hortonworksが提供するApache Hadoop、Apache Sparkなどをパッケージしたイメージになります。Docker、VMware、Virtual Box、Azureのイメージなどがあります。VMware、Virtual Boxを利用するとローカルで試せますが、イメージサイズが大きいので、クラウド上で試す事をお勧めします。Azureであれば、sandboxがすでにマーケットプレイスにあります。こちらを参照。AWSであれば、Hortonworks Data Cloud for AWSを利用すれば簡単に試せます。こちらを参照。他のクラウドであれば、Docker環境に展開することをお勧めしています。

CoreOSとは

RancherOSなどと同じDocker環境込みのディストリビューションです。RancherOSと比べ基本的なLinuxコマンドを使用することができます。

IBM Bluemix Infrastracture (旧SoftLayer)で、CoreOSをデプロイ

IBMが提供するパブリッククラウドのIaaSサービスです。ベアメタルサーバーを利用できる事で知られています。今年9月までは「SoftLayer」というブランド名で提供していましたが、今年10月より、Bluemixブランドに統合され、正式名「IBM Bluemix Infrastructure」として提供されるようになりました。機能などは変わらず提供されますし、また新しく韓国などにもデータセンターができているようです。Bluemix Infrastractureでは、CoreOSを選択する事ができるので、こちらを利用したいと思います。

まずは、カスタマーポータルにアクセス、ログインます。

IBMidに変更しろと言われますが、私は今の所変更しません。

Bluemix Infrastractureのカスタマーポータル

ベアメタルサーバー (CoreOS) をオーダー

Portainerを試してみる

Portainerとは

Portainerは、とってもシンプルなコンテナ管理ポータルです。特に今回のようなケースでは、dockerコマンドだけで十分なのですが、私のようなDocker初心者にとっては、このようなUIがあるととっても分かりやすいので紹介します。詳細はGithubを参照するといいでしょう。ドキュメント系はこちら

PortainerのWebサイト

Portainerのインストール

# git clone https://github.com/portainer/portainer.git
# docker run -d -p 7000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer --logo "http://hortonworks.com/wp-content/uploads/2016/02/HWX-RGB-full-no-tagline-reverse.png"
★ --logo でロゴを変更できます。

ダッシュボード

コンテナのリソース使用率

コンソールに接続

App template

HDP Sandboxを試してみる

Docker上での展開は既にいくつかの記事で紹介されていますが、念のためコマンドを載せておきます。

# curl -O http://hortonassets.s3.amazonaws.com/2.5/HDP_2.5_docker.tar.gz
# gunzip HDP_2.5_docker.tar.gz
# docker load < HDP_2.5_docker.tar
# docker run -v hadoop:/hadoop --name sandbox --hostname "sandbox.hortonworks.com" --privileged -d \
-p 3000:3000 \
-p 6080:6080 \
-p 9090:9090 \
-p 9000:9000 \
-p 8000:8000 \
-p 8020:8020 \
-p 42111:42111 \
-p 10500:10500 \
-p 16030:16030 \
-p 8042:8042 \
-p 8040:8040 \
-p 2100:2100 \
-p 4200:4200 \
-p 4040:4040 \
-p 8050:8050 \
-p 9996:9996 \
-p 9995:9995 \
-p 8080:8080 \
-p 8088:8088 \
-p 8886:8886 \
-p 8889:8889 \
-p 8443:8443 \
-p 8744:8744 \
-p 8888:8888 \
-p 8188:8188 \
-p 8983:8983 \
-p 1000:1000 \
-p 1100:1100 \
-p 11000:11000 \
-p 10001:10001 \
-p 15000:15000 \
-p 10000:10000 \
-p 8993:8993 \
-p 1988:1988 \
-p 5007:5007 \
-p 50070:50070 \
-p 19888:19888 \
-p 16010:16010 \
-p 50111:50111 \
-p 50075:50075 \
-p 50095:50095 \
-p 18080:18080 \
-p 60000:60000 \
-p 8090:8090 \
-p 8091:8091 \
-p 8005:8005 \
-p 8086:8086 \
-p 8082:8082 \
-p 60080:60080 \
-p 8765:8765 \
-p 5011:5011 \
-p 6001:6001 \
-p 6003:6003 \
-p 6008:6008 \
-p 1220:1220 \
-p 21000:21000 \
-p 6188:6188 \
-p 61888:61888 \
-p 2181:2181 \
-p 2222:22 \
sandbox /usr/sbin/sshd -D
# ssh -p 2222 root@localhost
# /etc/init.d/startup_script start
  • http://<ipaddress>:8888 にアクセスし、スタートページを表示

    ADVANCED HDPのQUICK LINKをクリックすると各サービスへのアドレスが表示されます。

  • http://<ipaddress>:8080 にアクセスし、Ambariを表示


以上

  • 今後の課題(試された方がいらっしゃれば教えていただければと思います。)
    • Bluemix Infrastructureで、ポータブルIPアドレスをオーダーして、CoreOSをマルチホームホスト化し、Sandboxを複数起動
    • PortainerのApp TemplateにHDP Sandboxを登録