IDCFクラウド上に構築したSalt+Docker環境にRancher.ioをデプロイします。Rancher.ioは管理サービスもDockerコンテナとしてデプロイするので、インストールがとても簡単です。salt-masterにManagement Serverを、salt-minionにDocker Nodesをデプロイします。
Saltクラスタの確認
minionの仮想マシンは以下の2台です。salt.cs3d0idcfcloud.internalの仮想マシンはsalt-masterとsalt-minionを兼用しています。
$ salt-key |
Management Serverのインストール
salt-masterの仮想マシン(salt.cs3d0idcfcloud.internal)にログインします。Dockerイメージをpullして起動するだけです。
$ sudo docker pull rancher/server |
Docker Nodesのインストール
salt-minionの仮想マシン(minion1.cs3d0idcfcloud.internal)にログインします。こちらもDockerイメージをpullして起動するだけですが、いくつか引数を渡します。
$ sudo docker pull rancher/agent |
CATTLE_AGENT_IP
まず、環境変数のCATTLE_AGENT_IP
はDocker Nodes
の仮想マシンにスタティックNATしたパブリックIPアドレスを指定します。IDCFクラウドの場合アカウントのVLANとインターネットの間にVirtual Routerがあります。仮想マシンのプライベートIPアドレスは直接インターネットの外部から接続できません。あらかじめポータル画面からパブリックIPアドレスの1つをminion1の仮想マシンに対してスタティックNATしておく必要があります。CATTLE_AGENT_IP
にはこのスタティックNATを指定して、外部から接続できるIPアドレスを割り当てます。このIPアドレスはRancher.ioのUI(管理画面)にHost
のIPアドレスに表示されます。ブラウザからWebSocketを使ったコンソール接続や、cAdvisorを使ったメトリクスの収集に直接使用されます。
Management ServerのIPアドレス
上記ではhttp://10.3.0.165:8080
がManagement Server
のIPアドレスになります。Docker Nodes
からの接続になるためアカウントVLAN内のプライベートIPアドレスで指定します。
UI (Rancher.ioの管理画面)
Docker Nodes
のコンテナをsalt-minionで起動してしばらくするとUIにHostとして表示されます。
Ghostイメージのデプロイ
サンプルとしてdockerfile/ghost/を使います。通常のdocker run
コマンドの場合は以下に相当します。
$ docker run -d -p 80:2368 dockerfile/ghost |
Create Containerダイアログ
HostのNo container yet.
の下のプラスボタンを押してCreate Container
ダイアログを表示します。
The BasicタブにDocker Hub Registryから取得するイメージ情報など基本情報を入力します。
Portタブに、Dockerホストにマップするポートを入力します。
CommandタブのAs User
は必須項目になっています。ブランクだとコンテナが作成できないため参考値のroot
を指定します。
cAdvisorのリアルタイムグラフ
cAdvisorのメトリクスをブラウザからWebSocketでCattle Agent経由で取得します。Docker Nodes
のホストと、コンテナのメトリクスがそれぞれリアルタイムで表示されます。
Hostのグラフです。
コンテナのグラフです。
コンテナのシェル操作
各Containerページの右上、Execute Shell
アイコンをクリックするとWebSocket経由でコンテナのシェルを実行することができます。
コンテナのコンソールはlibvirtのVNC WebSocketサポートを使っているようです。