LoginSignup
25
24

More than 5 years have passed since last update.

CTOからの年末年始の宿題:Rancherでdocker管理体験

Last updated at Posted at 2015-12-28

CTOからの年末年始の宿題Rancherでdocker管理体験(30分)

前回の記事でrancherのvagrantのboxをダウンロードしてrancherを簡単に動かしてみるというとこはやりましたが、本格的にrancherを使ってみるために、vagrantにubuntu14.04からVMを作り、rancherを動かしてみましょうというネタを共有したいと思います。

docker_rancher.png

自分の手元の開発環境ではこのようにvagrantとdockerを上手く使い分けをしています。
時間もそれほどかからないので、年末年始の宿題にはもってこい。

アプリばっか書いてて、インフラ少し弱いわって人、dockerを触るチャンスですよ〜

※図では1コンテナに複数サービス書いちゃってますが、1コンテナ1サービスが鉄板構成です。ここについてはまたどっかで記事にあげようと思います。

vagrantに元になるubuntuを構築する

docker管理の基盤にはubuntuをベースに構築していきます。

vagrantでdocker入りのubuntuのboxをダウンロードする

ubuntuにdockerを自分で入れるのもいいのですが、簡略化のためにdocker入りを使用することにします。以下のコマンドでboxを追加しましょう。

box追加

$ vagrant box add ubuntu14_04_docker https://github.com/jose-lpa/packer-ubuntu_14.04/releases/download/v2.0/ubuntu-14.04.box

box確認

$ vagrant box list
ubuntu14_04_docker  (virtualbox, 0)

vagrantでVMホストを構築

今回は「Vagrantfile」でマルチホスト構成としてみたいと思います。Vagrantfileのあるフォルダを都度移動する手間も省けるので自分はいつもプロジェクトごとにVafrantfileのマルチホスト構成を作るようにしています。

Vagrantfile作成

vagrantのVM同士で通信可能という形で構築します。
メモリは1024MBでIPは以下の通りを想定してVagrantfileを作っています。

  • docker-rancher
    • IP:192.168.50.201
  • docker-host1
    • IP:192.168.50.202

※必要に応じ変更するようにしてください。

$ mkdir docker_dev
$ cd docker_dev
$ vi Vagrantfile
Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.define "docker_rancher" do |v|
    v.vm.box = "ubuntu14_04_docker"
    v.vm.network :forwarded_port, host: 9201, guest: 80
    v.vm.network "private_network", ip: "192.168.50.201",virtualbox_inet:"test_local"

    if Vagrant.has_plugin?("vagrant-cachier")
       config.cache.scope = :box
    end
  end

  config.vm.define "docker_host1" do |v|
    v.vm.box = "ubuntu14_04_docker"
    v.vm.network :forwarded_port, host: 9202, guest: 80
    v.vm.network "private_network", ip: "192.168.50.202",virtualbox_inet:"test_local"

    if Vagrant.has_plugin?("vagrant-cachier")
       config.cache.scope = :box
    end
  end

  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "1024", "--cpus", "2", "--ioapic", "on"]
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
  end
end

vagrant VM起動

「vagrant up マシン名」で起動させましょう。

※Vagrantfileをマルチ構成で設定している場合には「vagrant up」を実行すると、マルチホスト構成の記載のマシンを一気に起動できます。

$ vagrant up docker_rancher
$ vagrant up docker_host1

image

ubuntu最新化(docker-host1とdocker-rancherで作業)

docker-host1とdocker-rancherの2台のVMで作業が必要です。

$ sudo apt-get update
$ sudo apt-get install wget

dockerの最新化(docker-host1とdocker-rancherで作業)

dockerも最新としておきましょう。

$ wget -qO- https://get.docker.com/ | sh

rancher設定(docker-rancherのみ作業)

dockerを管理するオープンソースのrancherをdocker-rancher側のみ構築します。

docker_rancher1.png

docker-rancherにSSHログイン

$ vagrant ssh docker_rancher

rancherインストール

dockerコンテナを走らせるだけですが。以下のコマンドを実行するとpullされます。

sudo docker run -d -p 8080:8080 rancher/server

docker_rancher_install.gif

rancherブラウザアクセス

この手順通りだと
http://192.168.50.201:8080/」にアクセスすると管理画面にアクセス出来ます。

rancherアクセス権限設定

管理画面にアクセスすると画面上部に赤い帯の「Access Control」というリンクをクリックしましょう。取り急ぎGitHub連携しておけば問題ないと思います。Githubを選択している状態で「click here」をクリックしましょう。Githubにログイン済みであればApplicationを登録する画面が表示されていると思うのでRancherに記載されているものをコピペしていきましょう。

rancher-compressor.gif

docker hostの追加

Rancher管理画面からAdd Hosts

  1. 上部のInfrastructureからHostsに入る
  2. Add Hostsを押下
  3. Customを選択
  4. エージェントインストールのコマンドをコピペ

rancher-agentインストール

次にdocker-host1側にrancher-agentをインストールしましょう。

docker_host1.png

$ vagrant ssh docker_host1

コピペしたコマンドを実行しましょう。

rancher_add_host_new-compressor.gif

追加したホストの確認

docker_host1側でエージェントのインストールが終わった後に、管理画面上からHOSTSにアクセスすると追加したDocker ホストが追加されていることが確認出来ます。

rancher_add_host_check-compressor.gif

Dockerコンテナの追加

Rancher管理画面からdockerホストが追加されたことが確認出来たので管理画面からコンテナを追加してみましょう。

Rancher_add.png

docker_host1でしばらくするとdockerコンテナが追加されます。

container_check-compressor.gif

まとめ

独自のDocker基盤をIaasとして持つなんてことが簡単に出来るようになりました。RancherはAPIもあるので、自社インフラに組み込んで運用することも出来たりするのでおすすめです。年末年始のおもちゃにどうぞ!

おまけ

Dockerホストを登録した後であれば、APPLICATIONSのCATALOGというメニューからポチっとおせば、予め用意されているテンプレートからすぐに環境をデプロイ出来たりします。jenkins-ciやkibana、Elasticsearchなどもあったりするので暇があればポチってみてください。数分ですぐに環境が出来上がっちゃいます。

jenkins-compressor.gif

Launchってポチるだけで数分後にはdockerホストにStack(コンテナのセット)が以下のように作られます。

image

手順通り進んだ場合は「http://192.168.50.202:8080/」にアクセスするとjenkinsおじさんとご対面です。

image

25
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
24