docker swarm 触ってみた #dockerlt

docker swarm 触ってみた #dockerlt

2015-10-14 Docker実践LT 於 groovesさん

# docker swarm触ってみた

hoshinotsuyoshi 2015/10/14

------

# 私

rails エンジニア的な

------

# 問題意識

------

```
[おれ@とあるサーバ] $ crontab -l | wc -l
200
```

------
![200%](https://i.gyazo.com/8daddd3068d1688e080f68601170f016.png)

# SPOF(単一障害点)

------

# docker swarmとは

------

# swarmとは
* docker謹製クラスタ管理ツール
* 俺「コンテナの気持ちをわかってそう、よさ気!」
* と思った

------

![original 200%](https://i.gyazo.com/70a06437932916dd24d7be072685735a.png)

------

# swarmとは
* 良い日本語情報
http://www.slideshare.net/zembutsu/introduction-to-docker-swarm

------

# swarmとは

ブログ書いた(手前味噌)
http://hoppie.hatenablog.com/entry/2015/09/30/194106

------

# 今回

------

![original 100%](https://i.gyazo.com/00361a32f96165f81c685dc3c5a39e22.png)

------

```
AMI: ami-f2338ff2 CoreOS-stable-723.3.0-hvm
CoreOS: 723.3.0
docker: 1.6.2
etcd: 2.0.12
docker swarm: 0.4.0
```

------

# docker toolboxつかわない

------

# cloud-config

https://gist.github.com/hoshinotsuyoshi/dce5e957aa9ebfec816c

* 80行程度

------

# swarm join

```
ExecStart=/usr/bin/docker run
--name=swarm-join
swarm join
--advertise=$private_ipv4:2375
etcd://$private_ipv4:2379/swarm
```

------

# swarm manage

```
ExecStart=/usr/bin/docker run
--net=host
--name=swarm-manage
swarm manage
-H :4000
--replication
--strategy=binpack
--advertise $private_ipv4:4000
etcd://$private_ipv4:2379/swarm
```

------
# デモ

## swarmのリーダー
$ etcdctl get /swarm/docker/swarm/leader

## ふつうのdocker info
docker info

------
# デモ

## tcp越しのdocker info (swarm)
$ docker -H :4000 info

## managerのdocker info
$ docker -H $(etcdctl get /swarm/docker/swarm/leader) info

------

# (時間あれば binpackストラテジーのdemoとか)

------

おわり

B122e77de860c4307034f0a041dabc8e?s=128

hoshino tsuyoshi

October 14, 2015
Tweet

Transcript

  1. docker'swarm৮ͬͯΈͨ hoshinotsuyoshi)2015/10/14

  2. ࢲ rails&ΤϯδχΞతͳ

  3. ໰୊ҙࣝ

  4. [͓Ε@ͱ͋Δαʔό] $ crontab -l | wc -l 200

  5. SPOF(୯Ұো֐఺)

  6. docker'swarmͱ͸

  7. swarmͱ͸ • dockerۘ੡Ϋϥελ؅ཧπʔϧ • Զʮίϯςφͷؾ࣋ͪΛΘ͔ͬͯͦ͏ɺΑ͞ؾ!ʯ • ͱࢥͬͨ

  8. None
  9. swarmͱ͸ • ྑ͍೔ຊޠ৘ใ h#p:/ /www.slideshare.net/zembutsu/introduc8on9to9docker9 swarm

  10. swarmͱ͸ ϒϩάॻ͍ͨ(खલຯḩ) h$p:/ /hoppie.hatenablog.com/entry/2015/09/30/194106

  11. ࠓճ

  12. None
  13. AMI: ami-f2338ff2 CoreOS-stable-723.3.0-hvm CoreOS: 723.3.0 docker: 1.6.2 etcd: 2.0.12 docker

    swarm: 0.4.0
  14. docker'toolbox͔ͭΘͳ͍

  15. cloud&config h"ps:/ /gist.github.com/hoshinotsuyoshi/dce5e957aa9ebfec816c • 80ߦఔ౓

  16. swarm&join ExecStart=/usr/bin/docker run --name=swarm-join swarm join --advertise=$private_ipv4:2375 etcd://$private_ipv4:2379/swarm

  17. swarm&manage ExecStart=/usr/bin/docker run --net=host --name=swarm-manage swarm manage -H :4000 --replication

    --strategy=binpack --advertise $private_ipv4:4000 etcd://$private_ipv4:2379/swarm
  18. σϞ swarmͷϦʔμʔ $"etcdctl"get"/swarm/docker/swarm/leader ;ͭ͏ͷdocker'info docker'info

  19. σϞ tcpӽ͠ͷdocker)info)(swarm) $"docker")H":4000"info managerͷdocker+info $"docker")H"$(etcdctl"get"/swarm/docker/swarm/leader)"info

  20. (࣌ؒ͋Ε͹"binpackετϥςδʔͷ demoͱ͔)

  21. ͓ΘΓ