Rancherでコンテナサービスをデプロイしてみる

前回のブログでは、Rancherをインストールしてみました。

 

今回は、Rancherを使ったアプリケーションのデブロイについて紹介します。

コンテナのデブロイ方法はいくつかあります。(前提としてここではオーケストレーションツールとして「Cattle」を使います。)

 

 

■デプロイ方法1:Rancherカタログを使う

カタログに使いたいアプリケーションがあれば、これが一番簡単な方法です。

 

①メニューから「Stacks」をクリックします。

続いて「Add From Catalog」をクリックします。

図1_メニューからStacksをクリックします

※ここでは既にJenkinsをインストールしています。

 

②カタログ画面が表示されます。

図2_カタログ画面が表示

 

 

③今回は右上の検索欄に「Wordpress」と入力します。

WordPressカタログが表示されますので「View Details」をクリックします。

図3_View Detailsをクリック

 

 

 

図4_Detail画面の項目

 

<Wordpress Detail画面の項目説明>

・Template Version

Rancherテンプレートのバージョンを選びます。今回は「v0.1-educass1」となります。

 

・New Stack

Stack名を記述します。Rancher上ではマイクロサービスのまとまりをStack(スタック)として管理します。

 

・Configuration Options

ここではWordpressを公開する際のPublic側ポートを記載します。

既に別のサービスでポートが使われているとうまくデプロイ出来ません。要注意です。

④設定が終わったら「launch」ボタンをクリックします。

 

コンテナのデプロイが行われます。

図5_コンテナのデプロイ

↓この後、完了すると以下のような画面になります。

 

コンテナが全てActiveになっていますので正常にデプロイされたことが解ります。

図6_コンテナのデプロイが完了

 

 

今回使ったテンプレートではWordpressはWebサーバー、DBサーバーのコンテナが1台ずつデプロイされます。

Link Graph画面では構成は次のようになります。

図7_Link Graph画面

 

⑤メニューの「INFRASTRACTURE」→「Hosts」をクリックします。

次のような画面が表示されます。

 

図8_Hostsクリック後の画面

Stack(スタック)「Wordpress」についてはhost(ホスト)「Rancher01」にデプロイされていることが解ります。

 

ここではRancher01はグローバルIPアドレス「192.244.98.108」、

Rancher02はグローバルIPアドレス「192.244.98.208」となっています。

 

⑥Wordpressコンテナにアクセスする為にhost(ホスト)「Rancher01」のグローバルIPアドレス「192.244.98.108」(ポート80)にアクセスします。

http://192.244.98.108にアクセスすると、リダイレクトされてhttp://192.244.98.108/wp-admin/install.php初期設定用画面が表示されます。

 

図9_Wordpressインストール完了

これで正しくWordpressがインストールされたことが解ります。

 

 

■デプロイ方法2:スタックから追加する

カタログ登録が無いコンテナや、台数や構成をカスタマイズしてデプロイしたい場合はStack(スタック)画面の「Add Stack」ボタンをクリックしファイルからの設定でコンテナをデプロイすることが出来ます。

 

図10_スタックから追加する

 

次のような画面が表示されます。

図11_Add Stack画面の項目

 

<Add Stack画面の項目説明>

・Name

カタログを利用した際と同様にここでStack名を記述することが出来ます。

 

それぞれのファイルの役割は大まかに次の通りです。

・docker-compose.yml、rancher-compose.ymlファイルでコンテナデプロイ時のオプションや設定を指定することが出来ます。ファイルはアップロード出来ますし、画面へ貼り付けることも出来ます。

 

docker-compose.yml、rancher-compose.ymlそれぞれの役割は大まかに次の通りです。

・docker-compose.yml

docker runコマンドを実行する際に使うオプションを指定します。

・rancher-compose.yml

Stack(スタック)内におけるコンテナ間の関係について記載します。複数台のコンテナで構成する場合は必須となります。

 

参考に、先にカタログから作ったWordpressスタックの上記設定ファイルを表示します。

 

スタック画面の右上「Compose YAML」をクリックします。

図12_Compose YAMLをクリック

 

スタックの設定が書かれた「Compose YAML」画面が表示されます。

 

それぞれ、docker-compose.yml、rancher-compose.ymlが表示されますのでこれを編集してdocker-compose.yml、rancher-compose.ymlを作りたいと思います。

 

 

docker-compose.yml

<カタログとの変更点>

・Webサーバー名をwordpress2としました。(変更しなくても良いです)

・外部公開ポートを8000にしました。(他のコンテナと外部公開ポートの重複を避ける為、変更する必要があります。この際、ホスト側でポートが開放されているか確認することも必要です。)

 

変更部分を赤字表示しています。

version: '2'
services:
 wordpress2:
  image: wordpress
  links:
  - db:mysql
  ports:
  - 8000:80/tcp
 db:
  image: mariadb
  environment:
   MYSQL_ROOT_PASSWORD: ******

 

 

rancher-compose.yml

<カタログとの変更点>

・wordpress2と名づけたWebサーバーを2台構成としました。

 

変更部分を赤字表示しています。

version: '2'
services:
 wordpress2:
  scale: 2
  start_on_create: true
 db:
  scale: 1
  start_on_create: true

 

画面に貼り付けてみます。

Stack(スタック)名をwordpress2とする。

 

図14_Createボタンをクリック

「Create」ボタンをクリックします。

 

デプロイされます。

図15_デプロイが完了

デプロイが完了するとステータスがActiveになります。

図16_Wordpres2のステータスActive

wordpress2と名づけたWebサーバーの詳細を表示してみます。

 

Webサーバーが2台デプロイされていることが解ります。

図17_Webサーバーの詳細を表示

Scaleのところでコンテナの台数を増やしたり、減らしたり出来ます。

 

Link Graph画面でもWebサーバーのコンテナが2つになっていることが解ります。

図18_Link Graph画面(Webサーバーのコンテナが2つ)

 

「INFRASTRACTURE」→「Hosts」画面で確認すると

ホストサーバーRancher01,Rancher02に跨ってWordpressのWebサーバーがデプロイされていることを確認出来ます。

 

図19_Hostsクリック後の画面

 

 

もちろん、http://192.244.98.108:8000/http://192.244.98.208:8000/どちらにアクセスしてもWordpressの初期設定画面が表示されますので、インストールが成功していることが解ります。

図20_Wordpress初期設定画面

 

以上

Rancherを使った2つのコンテナのデプロイ方法について説明しました。

デプロイ方法についてはうまく使い分けて頂ければと思います。

 

 

 

とみなが
サービスクリエーション本部所属

オススメ記事