RancherでDockerクラスタを構築する-① 準備編

  • 12
    いいね
  • 0
    コメント

Dockerクラスタを構築する場合、コンテナ間の連携を考慮する必要があります。 docker-composeでもある程度のことは出来ますが、複数ホストで運用したり、ロードバランサ等を含めた少し複雑な構成になってくると、途端にややこしくなります。

Web UI でDockerクラスタを管理出来るサービスといえば、Tutum改めDocker Cloudなどがありますが、私はRancherを使っています。

今後数回に渡って、Rancherを使ったDockerクラスタの構築方法をご紹介して行きたいと思います。

目次

  1. RancherでDockerクラスタを構築する-① 準備編
  2. RancherでDockerクラスタを構築する-② VultrにRancher Server を立ち上げる
  3. RancherでDockerクラスタを構築する-③ RancherからVULTR APIでDockerホストを追加する
  4. RancherでDockerクラスタを構築する-④ 【DockerHub編】Railsスタックを立ち上げる

Rancherのメリット

Rancherのメリットは、

  • オープンソース
  • docker run一発でRancherサーバを構築できる
  • ホストをRancher管理下に置くことで、例えば「このホストにはこのコンテナを上げない」等の細かな設定がスケーリングできる
  • 色々なクラウドプロバイダに対応している(Amazon EC2・Azure・DigitalOceanはもちろん、みんな大好きvultrにも対応している)

それ以外にもいろいろありますが、一番の理由はHerokuに載せるよりも遥かに安く、Heroku並に簡単にデプロイ出来るということでしょうか。

そうは言っても、本番で本当に使ってるの?

私のクライアントはエンタープライズCRM(しかもオンプレ・スクラッチ)が多いのですが、それ以外の小規模案件または特に指定がなかったときはHerokuや格安のクラウドプロバイダを使います。

Heroku上で10個ほどのプロダクトが動いています(しかも全部一人でDevOps orz)が、コスト削減のため、少しずつDocker on Rancherに移行しています。

Docker on Rancherで動いているプロダクトは現時点で5つほどあります。どのプロダクトも、特に問題なく稼働しています。

前提条件

今回ご紹介するサンプルの前提条件は

  • アプリは一般的な構成 ( Ruby on Rails / Postgresql )
  • クラウドプロバイダはvultr
  • DockerホストのOSはCoreOS
  • コンテナリポジトリは Amazon ECR1
  • Postgresのデータを定期的にS3にバックアップしたい!
  • Postgresデータのリストアも簡単にしたい!
  • github + CircleCIで自動デプロイ
  • PaperTrailでロギング

という感じです。

それでは、始めましょう

なにはともあれ、Rancherを立てるところからはじめます。

もっと良い方法がありましたら、ツッコミ大歓迎です。

あわせて読みたい

Rancherの記事は以下の記事でまとめてあります。こちらもあわせてどうぞ。

【Docker】RancherOSで本格的な自宅サーバーを構築しよう(1) ~ 要件と構成 ~

Rancherについて、非常にまとまって書かれています。私も大いに参考にさせていただきました。


  1. もちろん、DockerHubでもOK。どちらかというとDockerHubの方が普通に設定可能ですが、Amazon ECRは東京リージョンが使え、Rancher内で使うときにちょっとしたTipsがありますので、今回はAmazon ECRを使います DockerHubとAmazon ECR両方ご紹介します。