プライベート
カタログと
Compose
自己紹介
• m-daichang と申します
• しがないフリーランスです
インフラメインで仕事してます
• 一昨年まで金融系のガチインフラ屋さんでした
のでソーシャル系サービスには非常に疎く
・twitter : ROM専用
・Facebook : ミバレコワイ
・GitHub : m-daichang
最近ようやく取得
・Qiita : 同上
• 最近のなやみ : フリーランスの名刺を作ってなくて
(SIer経由で仕事してると使わない)
こういう時に困ってます。。。
皆さん、Rancherは使ってますか?
dockerコンテナの管理ツールとして便利ですよね〜
この画面ばかり
見てませんか?
。。。もしかしてHosts画面をメインに使用されてますか?
もったいない!!
Rancherの真骨頂はStackとCatalogと言って
も過言ではないのです!
コッチ!
Stack?Catalog?何それおいしいの?
イマイチよく分からないし。。。
⇨目的に合わせて複数のコンテナをまとめたのがStack、
そのStackを作成するための設計書がCatalogです。
※最近docker 1.13でもstackの概念が取り入れられました。
Stack
Service
Container
Container
Service
Container
Container
Catalog
Rancher
Stack?Catalog?何それおいしいの?
例えばサービス丸ごとStackとしてCatalogにしておけば
環境のデプロイがすごい簡単にできる、ということです。
(本番・開発でもA/Bテストでも)
Stack A
フロント
エンド
バック
エンド
DBKVS
Stack B
フロント
エンド
バック
エンド
DBKVS
Stack?Catalog?何それおいしいの?
⇨Catalog、自分で作れますよ?
それが
プライベートカタログ
です
便利そうだけど、
欲しい機能がCatalogに
ないし〜
必要なもの • Rancherサーバ(当たり前)
• GitHubなどの git clone できる環境
(今回はGitHubを使用します)
たったこれだけ!
ファイル
構
成
https://docs.rancher.com/rancher/v1.4/en/catalog/private-catalog/
templates
Stack名
2つで1セット
バージョン毎にフォルダ分け
実は数字じゃなくてもいいです
catalogIcon-<Stack名>.svg
svgじゃなくもいいです
config.yml
rancher-compose.yml 新しいバージョン作る時に
変更し忘れ注意
あんまり意味はないです
まずは scale : 1 で
docker-compose.yml
基本 docker-compose v2 と同じです。
肝は labels ですがとりあえずは下の1行だけで良いです。
とりあえずこれだけ書きましょう
プライベートカタログ設定
ADMIN -> Settings -> Catalog -> Add Catalog
① ②
プライベートカタログ設定
③
適当でいいです
④
gitの情報※⑤
※GitLabなどのユーザー認証が必要なものの場合は
https://<user>:<pass>@<URL>
ちょっとセキュリティ的にどうか、という気も。。。
※自己証明書の場合はhttpに変更、もしくはRancherサーバコンテナに入り、
「 git config --global http.sslVerify false 」を打つ必要があります
プライベートカタログ設定
CATALOGに
プライベートカタログが登場し
ます!
ここまで表示されていれば成
功です
プライベートカタログ設定
あとは⇦こうして
⇩こうして
プライベートカタログ設定
はい!出来上がり!
ね?簡単でしょ?
ただ、Stack作成時に
パラメータ渡したいですよね?
rancher-compose.ymlにquestionという
項目をつけるとStack作成時にパラ
メータをつけることができます。
rancher-compose.yml 〜questions〜
変数名
必須かどうか
trueにするとlabelに *
がつきます
入力タイプ
⇨次のページ
rancher-compose.yml 〜type: int〜
portなどの数値を入力するのに使用します。
portが被りやすいdocker環境においてよく使うものになります。
rancher-compose.yml 〜type: string〜
文字列を入力するのに使用します。
rancher-compose.yml 〜type: multiline〜
文字列(複数行)を入力するのに使用します。
json形式などで設定情報を流し込む際に使用します。
rancher-compose.yml 〜type: password〜
パスワードを入力するのに使用します。
Stack作成後にYaml情報見るとそのまま載ってくるので意味はあまりない。。。
rancher-compose.yml 〜type: enum〜
ドロップダウンリストを選択させる場合に使用します。
rancher-compose.yml 〜type: service〜
起動しているStack上のサービスを選択できます。
他のStackとの連携をするのに重要なtypeです。
使い方 (docker-compose.yml)
こんな感じでゴリゴリ
・rancher-compose.yml
・docker-compose.yml
を書いていくと。。。
こんなことも可能になります
もっと詳しく学びたい方は
Rancherのcommunity-catalogを
参考にされても良いかもです
https://github.com/rancher/community-catalog
みなさんも、プライベートカタログで
楽しいRancher生活を
次回予告
• A/Bテストも楽勝?
内部LBの魅力
• Master/Slave系のサービスもコン
テナで可能?
Sidekickを使いこなせ!
まあ、本当にやるかは未定ですが。。。
ご静聴ありがとうございました

Rancher プライベートカタログとCompose