LoginSignup
4
4

More than 5 years have passed since last update.

Rancher が提供する機能と実装予定の機能

Last updated at Posted at 2015-03-26

はじめに

今回は,Rancher が提供する機能や提供予定の機能についてまとめてみます.
この記事で書く機能は,Rancher のWeb ページ(http://rancher.com/rancher-io/) やGithub ページ (https://github.com/rancherio/rancher) に書かれているもの,Rancher v0.3 のデモ動画 (https://vimeo.com/116803858) で紹介されているものです.

提供している機能(実装済みの機能)

オーバレイネットワーク

Rancher が管理するホストは,Rancher が構築するオーバレイネットワークを介して通信できます.
このため,分散したホスト上にあるコンテナでも,同一ネットワーク上のあるかのように扱うことができます.
デモ動画(https://vimeo.com/116803858)では,異なるホスト上のコンテナ間でリンクする例を紹介しています.
この例を動画のスクリーンショットと共に見てみます.

異なるホスト間でのコンテナのリンク

デモ動画では,AWS上にCoreOSを,SoftLayer 上にUbuntuを,VULTR 上にCentOS 7を起動し,それぞれをDockerのホストとしてRancher の管理サーバーに登録しています.
以下の画像の左から順にAWS, SoftLayer, VULTR のマシンです.
rancher-features01.png

ここで,AWS にあるホストで "mysql" という名前の MySQL サーバーのコンテナを作成しました.
MySQL のコンテナが作成されたと同時に,"Network Agent" という名前のコンテナが作成されました.
この "Network Agent" というコンテナが,オーバレイネットワークを実現しています.
rancher-features02.png

次に,SoftLayer にあるホストで WordPress のコンテナを作成します.
rancher-features021.png

WordPress のコンテナを作成する時に,AWS 上にある "mysql" コンテナにリンクしています.
リンクの操作は,プルダウンメニューからコンテナを指定し,エイリアスを指定するだけです.
rancher-features040.png

コンテナの作成が完了しました.
ここで,コンテナのIP アドレスを見ると,"10.42.xx.xx" となっています.
このネットワークはRancher が構築するオーバレイネットワークです.
rancher-features050.png

WordPress のコンテナのポートをホストの80番ポートにバインドして,
rancher-features060.png

ブラウザでホストのIPアドレスへアクセスすると
rancher-features070.png

ちゃんとWordPressが動作しています.
rancher-features080.png

このように,Rancher ではホストの違いを意識することなくコンテナ同士をリンクできます.
これは,Rancher が構築するオーバレイネットワークにより,異なるホスト上にあるコンテナ同士も同一ネットワーク上に接続しているように扱えるためです.

オーバレイネットワーク外にコンテナを作る

Rancher ではオーバレイネットワークに接続しないコンテナも作成できます.
コンテナ作成時,"The Basics" の "Network" の部分を "Unmanaged Network" に変更することで,オーバレイネットワークに接続しないコンテナを作成できます.
rancher-features260.png

"Unmanaged Network" と設定して作成したコンテナ(画像右端の"ubuntu") は172.17.xx.xx であり,オーバレイネットワークのIP アドレスである"10.42.xx.xx" とは異なります.
rancher-features280.png

ボリューム管理

Rancher ではコンテナのボリューム管理の機能も提供しています.
コンテナ作成時,特に指定がなければそのコンテナ用のボリュームが自動で生成されます.
このコンテナは,コンテナを停止したり削除した後も残ります.
また,複数のコンテナからボリュームを共有する設定もできます.

デモ動画では,最初に作成した MySQL のコンテナのボリュームを,新たに作成した別の MySQL サーバーと共有するデモがあります.
このデモを動画のスクリーンショットと共の見てみます.

ボリューム共有のデモ

デモの開始時には,"mysql" という MySQL サーバーとそれにリンクして動作している "wordpress" というWordPress サーバーのコンテナがあります.
ここで,"mysql" コンテナを停止し,"mysql-2" というコンテナを新たに作成します.
"mysql-2" コンテナは "mysql" コンテナのボリュームを共有して利用します.
この状態で,"wordpress" コンテナを "mysql-2" にリンクし直し,動作確認します.

では,順を追って見ていきます.
まず,"mysql" コンテナを停止します.
rancher-features090.png

コンテナを停止したら,新たに別の MySQL コンテナを起動します.
rancher-features100.png

コンテナの名前とイメージを指定します.
このコンテナには,"mysql-2" という名前をつけています.
rancher-features110.png

作成時に,利用するボリュームを指定します.
ここでは,先ほど停止した "mysql" コンテナが利用していたボリュームを指定します.
rancher-features130.png

上記の設定で作成した "mysql-2" コンテナの詳細です.
ボリューム "1v8" が "mysql" と共有されていることがわかります.
rancher-features160.png

ボリュームの一覧です.
先ほどの "1v8" というボリュームの "Containers" が 2 になっています.
これは,"mysql" と "mysql-2" の2つのコンテナから共有されているためです.
rancher-features200.png

この時点で,"wordpress" のコンテナは "mysql" コンテナとリンクしています.
しかし,"mysql" コンテナは現在止まっています.
このままでは,"wordpress" が動作しないので,"wordpress" コンテナを "mysql-2" コンテナにリンクし直します.
"wordpress" コンテナのEdit をクリックし,編集画面を表示します.
rancher-features210.png

"Links" の部分を編集します.
現在は,"mysql" コンテナにリンクしています.
rancher-features220.png

これを,"mysql-2" に変更します.
rancher-features230.png

これで設定を保存し,再度ブラウザで WordPress のコンテナへアクセスすると,問題なく動作していることがわかります.
rancher-features250.png

コンソール

WebUI からコンテナのシェルを起動することができます.
コンテナのメニューから "Execute Shell" をクリックします.
rancher-features290.png

すると,以下のようなコンソール画面が表示され,シェルを操作できます.
rancher-features300.png

rancher-features310.png

リソースモニタリング

Web UI からホストやコンテナのリソース使用の状況を確認できます.
ホスト名の部分をクリックします.
rancher-features320.png

クリックすると,以下の画像のように,リソースの使用状況が確認できます.
"CPU Utilization", "Memory Utilization" にはそれぞれ,CPU の使用量,Memory の使用量を示す
グラフが表示されます.
また,グラフの下にある "Storage" には,ストレージデバイスの使用状況が表示されます.
rancher-features340.png

また,コンテナ名をクリックすると,以下の画像のようにコンテナのリソース使用状況が確認できます.
"Volume Mounts" には,コンテナが利用しているボリュームの一覧が表示されます.
"CPU Utilization", "Memory Utilization" にはそれぞれ,CPU の使用量,Memory の使用量を示すグラフが表示されます.
rancher-features370.png

API

Rancher は,WebUI だけでなく,API も用意しています.
API のページから,API キーを発行できます.
以下はv1.1 のスクリーンショットです.
rancher-features380.png

残念ながら現在はAPI のドキュメントが公開されていません.
今後公開する予定のようです.

WebUI のアクセス制限

ここからは,最近(v0.9以降) に追加された機能になります.

現在,WebUI へのアクセス制限はGithub アカウントによってのみ可能です.
Web UI からアクセス制限の設定をすると,Rancher の管理者が予め登録したGithub アカウントの持ち主以外はログイン出来ないようになります.
アクセス制限の設定後,Web UI をブラウザで開くと以下のようなログイン画面になります.
rancher-features390.png

"Authenticate with Github" をクリックすると,Github のログイン画面がでます.
アクセスが許可されている Github のアカウントでログインすると,WebUI を表示できます.
rancher-features400.png

この機能は,v0.9.0 で追加された機能です.
https://github.com/rancherio/rancher/releases/tag/v0.9.0

プロジェクト管理

Rancher では複数のプロジェクトを管理できます.
プロジェクトはホストマシンやコンテナ,後述するプライベートリポリトリをひとまとめにしたものになります.

以下では,Rancher v0.11 でプロジェクトを切り替えて表示する例を説明します.
下の画像では,"Default" プロジェクトの画面です.
"Default" プロジェクトではホストを2つ,コンテナを計6つ動作しています.
rancher-features420.png

ここで,プロジェクトを "test-project" に切り替えてみます.
rancher-features430.png

こちらのプロジェクトには,ホストはまだ何も登録していません(実は作ったばかりのプロジェクトです).
rancher-features440.png

このように,複数のプロジェクトを1つの管理サーバーで管理することができます.
この機能は,v0.9 で実装されました(https://github.com/rancherio/rancher/releases/tag/v0.9.0).

コンテナ作成するホストの自動振り分け

v0.10 から "Containers" という プロジェクト内のコンテナを一覧表示するページが追加されました.
このページにある "Add Container" からコンテナを作成すると,Rancher コンテナを作成するホストを自動で決定します.

ここでは,2つのホスト "yarai-rancher002" と "yarai-rancher003" があるプロジェクトで,"Containers" の"Add Container" からコンテナを5つ作る例を見てみます.

以下の画像のように,"Containers" のページの右上に "Add Container" のボタンがあります.
このボタンから ubuntu001〜ubuntu005 の5つのコンテナを作ってみます.
rancher-features450.png

コンテナを1つ作ったところです.
コンテナは "yarai-rancher003" に作成されました.
rancher-features460.png

同様に5つのコンテナを作成しました.
"yarai-rancher002" に2つのコンテナ,"yarai-rancher003" に3つのコンテナが作成されました.
rancher-features470.png

ホストの振り分け方法を設定する機能は今のところありません.
また,どのようにホストを振り分けているのかは,僕の方ではよくわかっていません.

プライベートレジストリ

docker のイメージをアップロードできるプライベートリポジトリを作成できます.
rancher-features410.png

この機能は,v0.11 で実装されたようです.

実装予定の機能

以下ではこれから実装する予定の機能について紹介します.

ボリュームに関する機能

ボリューム関連の機能として,以下の機能を実装する予定のようです.

  • ボリュームのスナップショットの取得する機能
  • スナップショットをS3のようなオブジェクトストレージへバックアップする機能
  • スナップショットからボリュームを作成する機能

ネットワークに関する機能

ネットワーク関連の機能として,以下の機能を実装する予定のようです.

  • セキュリティグループ
  • ロード・バランシング

おわりに

今回は,Rancher が提供する機能について,まとめてみました.
Rancher は現在絶賛開発中という状況であり,これから新しい機能がどんどん実装されるだろうと思います.
また,開発途上故に,実装している機能の中でも挙動が怪しいものも多いのが現状です.

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4