馬鹿になれ
馬鹿になれ とことん馬鹿になれ 恥をかけ とことん恥をかけ
かいてかいて恥かいて 裸になったら見えてくる
本当の自分が見えてくる
本当の自分も笑ってた それくらい 馬鹿になれ
- アントニオ猪木
前回と前々回で、なんとなくわかった気になったRancher。たしかに簡単だこれは。
でもちゃんと理解してないと運用なんてできるわけない。中途半端な理解でCloudstackを本番環境にブっこんで痛い目にあった俺だからわかる。(気になる方はコチラ見てください)
これは危ない。
猪木の言う通りだ。知ったかしないでちゃんと調べよう。
各用語の意味というか概念
この辺と管理画面のHELPを参考にしました。あとは管理画面の日本語版。画面下部から言語選択できる。ローカライズしてくれた人に感謝。
以下。用語は太字にしてます。
Environments
- リソースを複数のEnvironmentにグループ化できる。
- それぞれが自身のServiceやインフラリソースを持ち、一人、もしくは複数のユーザで所有できる。
- Rancherはいくつかのコンテナオーケストレーションプラットフォームをサポートしていて、それぞれをごっちゃに管理、作成するのではなくEnvironmentの単位で分離して管理、作成する。
要するに、いわゆる「本番環境」とか「開発環境」の単位でEnvironmentを作って、「開発環境」は誰でも触れるけど、「本番」は運用チームだけ触れるとかそういうことができて、Environmentはコンテナオーケストレーションプラットフォームに応じて作ることができる。
本番なんだけど、Swarmとkubernetesが入り乱れる環境とかは向かないのかな。そんな人いないだろうけど。
Cattle
で、環境作成時に選択肢として画面で出てくるのが、「Cattle」「Kuubernetes」「Mesos」「Swarm」「Windows」。
「Catlle」て何?他はググればいくらでも出てくる。直訳すると家畜の牛たち。
どうやらCatlleはRancherが初めてサポートしたオーケストレーションフレームワークのことらしい。特徴としては
- 最初からあるので熟成されている
- Dockerコマンドがベース
- docker-composeでアプリを定義
- アプリのデプロイはStacksという単位でまとめられる
- アプリはCatalogから作成するか、UIで直接指定して作成する。
- Catalogは自動的に提供されるdocker-compose.ymlと、rancher-compose.yml(ヘルスチェックとかサービスのスケール設定が入ってるらしい)で提供される。Catalog自体はrancher/community-catalogというgithubリポジトリで管理されている。
Stacks
Stacksの構成要素は以下の通り
- 主にDockerImageであるService
- スケールに関する情報、ヘルスチェック、サービスディスカバリなどの機能
- 構成可能なホスト
LoadBalance Serviceや外部サービス(物理DBサーバとか)を組み込むこともできる。
Services
上の方に書いちゃったけど、同一のDockerImageから構成されたグループのこと。
Serviceが同じStack内の別のサービスにリンクされると、DNSレコードに登録され、発見できるようになる。
APとDBとかの単位でサービス作れば、きっといい感じに負荷分散とかしてくれるんだろうね。
Rancher
「コンテナ管理ツールだろ?」て思ったでしょ。本来の意味は農場経営者です。
Immutable Infrastructureの流れもあり、サーバの扱い自体が愛情込めて大事に大事に扱うペットから、大勢を効率的に監視する家畜化してきている流れを汲んでるんでしょうね。だからCattle(牛さんの集まり)とかStack(干し草)という名前にしたのかもしれませんね。
ちょっとずつ分かってきた。あとはDockerの勉強もしないとなぁ