RancherでSSL設定、プライベートカタログ設定を行う

前回はRancherを使ったコンテナサービスのデプロイ方法について説明しました。

今回は、WebサイトへのSSL設定方法とプライベートカタログの設定方法について説明します。

 

 

■SSL設定

RancherではSSL証明書を使う際は、通常コンテナ本体にインストールせずに、ロードバランサにSSL証明書を設定し簡単にWebサイトをSSL化することが出来ます。

 

図1_構成イメージ

 

 

 

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

図2_「Certificates」をクリック

 

 

Certificates画面が表示されます。

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

図3_Certificates画面

 

図4_Certificates画面の項目説明

<Add Certificate画面の項目説明>

・Name

ドメイン名を記載します。

・Private Key

秘密鍵を貼り付けます。

・Certificate

証明書を貼り付けます。

・Chain Certs

中間証明書を貼り付けます。

 

 

図5_中間証明書を貼り付け

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

 

一覧画面が表示され、証明書が追加されていることがわかります。

図6_一覧画面が表示

 

最初にデプロイしたWordpressにロードバランサを追加します。

図7_「Add Service」ボタンをクリック

「Add Service」ボタンをクリックし「Add LoadBalancer」をクリックします。

図8_「Add LoadBalancer」ボタンをクリック

 

 

次のような「Add Load Balancer」画面が表示されます。

図9_「Add Load Balancer」画面

<Add Load Balancer画面の各項目説明>

・Scale

ロードバランサのコンテナ数と指定するか、各ホストで1つロードバランサを立ち上げるか選択します。

今回は各ホストで1つロードバランサを立ち上げます。

 

・Name

ロードバランサの名前を記載します。

今回はWP1-LBと命名します。

 

・Port Rules

ロードバランサがコンテナへ通信を中継する際のルールを指定します。

今回は外部からのhttps(443ポート)通信についてWordpressコンテナへ中継する設定を入れます。

 

ロードバランサ側

・Access Publicを指定

・Protocol HTTPSを指定

・Request Host blog.arena.ne.jp

・Port 443 (SSL通信を中継します)

・Path (今回は指定しません)

 

コンテナ側

・Target Stack:Wordpres  コンテナ:Wordpress

・Port 80

 

・SSL Termination

Certificate blog.arena.ne.jpを指定

 

 

図10_「Create」ボタンをクリック

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

 

ロードバランサがデプロイされます。

図11_ロードバランサがデプロイされる

 

 

デプロイが完了するとActiveと表示されます。各ホストに配置されることから2コンテナあります。

図12_Active表示

 

Stackの「Compose YAML」画面を確認するとrancher-compose.ymlが変更されていることが解る。

図13_「Compose YAML」画面

 

 

rancher-compose.yml

赤文字部分が追加されたところ

 

version: '2'
services:
 wordpress:
  scale: 1
  start_on_create: true
 WP1-LB:
  start_on_create: true
  lb_config:
   certs: []
   default_cert: blog.arena.ne.jp
   port_rules:
   - hostname: blog.arena.ne.jp
    priority: 1
    protocol: https
    service: wordpress
    source_port: 443
    target_port: 80
  health_check:
   response_timeout: 2000
   healthy_threshold: 2
   port: 42
   unhealthy_threshold: 3
   interval: 2000
 db:
  scale: 1
  start_on_create: true

 

「INFRASTRACTURE」→「Hosts」画面を開くと次のようになっています。

各ホストでロードバランサが立ち上がっていることがわかります。

図14_「Hosts」画面

 

今回試しに自分のパソコン端末のhostsファイルに以下を記載し、httpsでアクセスしてみます。

 

192.244.98.108 blog.arena.ne.jp

ブラウザによっては再起動が必用となります。

 

ブラウザでhttps://blog.arena.ne.jpにアクセスすると、次の画面が表示されます。

図15_SSL通信に成功

SSL通信に成功しました。

画面左上の鍵ボタンをクリックし証明書の詳細を表示してみて下さい。

内容を確認すると、WebサイトにSSL証明書が正しく設定されていることが解ります。

 

 

■プライベートカタログ設定

Rancherにユーザが作成しカスタマイズしたプライベートカタログを登録することが出来ます。

独自のDockerイメージ利用や設定を行いたい場合は、前回説明したStack(スタック)画面の「Add Stack」からdocker-compose.ymlrancher-compose.ymlを使ってデプロイすることが出来ますが、プライベートカタログを使ってデプロイすることも出来ます。

カタログを使うと利用出来るユーザの幅が広がるメリットもあります。

 

Rancherのマニュアルが参考になります。必用に応じて確認して下さい。

http://rancher.com/docs/rancher/v1.4/en/catalog/private-catalog/

今回も前提はCattleです。(オーケストレーションソフトによって設定が違うので注意が必用です。)

カタログの元となるファイルはGithubに保存されている前提です。

 

Githubリポジトリ内の構成は以下のようになります。

 

Templates/(リポジトリ名)

└──wordpress(カタログ名)

   ├──0(バージョン)

      ├──docker-compose.yml

      └──rancher-compose.yml

   ├──catalogIcon-wp1.svg
   
   ├──config.yml

   └──README.md

アイコンファイルは先頭からcatalogIcon-で始まる名称でないといけません。

 

 

図16_メニューから「ADMIN」をクリック

メニューから「ADMIN」をクリックし「Setting」を選択します。

 

次のような画面が表示されます。画面中断にCatalogの設定欄があります。

図17_Setting画面の項目説明

<Settling画面のCatalog欄の各項目説明>

・Rancher Certified Library/Community Contributed

Rancher承認済み又は、コミュニティのカタログを有効にするかどうか、設定します。

ユーザに使わせたく無いときはDisabledにしましょう。

 

・Custom

ここでカスタムカタログを追加設定することが出来ます。

各項目には以下の内容を記載します。

 

・Name

カタログ欄に出てくる名称を記載します。

今回はmy-catalog

 

・URL

GithubのリポジトリURLを記載します。

例)https://github.com/Yoshiyuki-Tominaga/rancher.git

 

・Branch

Githubのブランチを記載します

今回はmaster

 

 

「Save」ボタンをクリックすると「Catalog」メニューに「my-catalog」が出てきます。

これをクリックすると、プライベートカタログが表示されます。

図18_my-catalogの表示

 

プライベートカタログを作ることが出来ました。

 

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

オススメ記事