狠狠撸
Submit Search
Docker 1.12 の衝撃
?
Download as PPTX, PDF
?
77 likes
?
21,133 views
Yoshinori Teraoka
new features of docker 1.12
Read less
Read more
1 of 26
Download now
Downloaded 53 times
More Related Content
Docker 1.12 の衝撃
1.
Docker 1.12 の衝撃 M3
Tech Talk 2016/6/28 (@yteraoka)
2.
Docker 1.11 の
Swarm クラスタ を Production 環境に投入すべく、 ほぼほぼ構成が出来上がったとこ ろでそれはやって来ました
3.
导入予定の构成
5.
● 各サーバーがTLS通信(サーバー、クライアントの証明書も確認) するための証明書発行機能 ● Swarm
Cluster を構成するための Swarm Manager(3台 or 5台) + Key / Value ストア(Consul) ● コンテナを実行する Docker サーバーとその各サーバー上の Swarm Agent ● Docker の Overlay network を構成するための Key-Value ストア (Consul) (別々のDockerサーバー上のコンテナが同一ネットワークとして稼働) ● 外部からコンテナにアクセスするための Reverse Proxy / Load Balancer としての nginx または HAProxy ● nginx / HAProxy の設定をコンテナの起動停止に合わせて更新するための Consul-Template(Consul も必要) ● Consul-Template のために Docker Engine のイベントを監視してサービ スを登録、削除する Registrator ● 様々な用途で使われる Consul は単一のクラスタ
6.
これがなんと!
7.
たったのこれだけ
8.
● 分散Key-Valueストア ● それを必要としていたOverlay
Network ● TLS証明書発行機能 ● 外部からのアクセス用Proxy 全部取り込まれました!!
9.
# 1台目 $ docker
swarm init --listen-addr 192.168.99.121:2377 # 2台目 $ docker swarm join --manager ? --listen-addr 192.168.99.122:2377 192.168.99.121:2377 # 3台目 $ docker swarm join --manager ? --listen-addr 192.168.99.123:2377 192.168.99.121:2377 # 知らない node が join してくると困るので leader node で # accept する $ docker node accept <node name>
10.
マネージャは3台あれば冗長構成となるので、Docker の実行ノードがもっと 欲しい場合は $ docker
swarm join ? --listen-addr 192.168.99.124:2377 192.168.99.121:2377 $ docker swarm join ? --listen-addr 192.168.99.125:2377 192.168.99.121:2377 と、どんどん追加ですればOK 減らすのも簡単、稼働中のコンテナは別 node に移してくれる
11.
コマンドもたったのこれだけ あの構成にどれだけの...
12.
が
13.
これだけではない!
14.
さらに、これまでの Swarm には無かった Service
という概念、機能が加わりました これは Kubernetes などに存在し、これまで の Swarm には無い辛いところでした
15.
$ docker service
create ? --replicas 3 -p 3000 ? --name myapp myapp:1.0
16.
$ docker service
create ? --replicas 3 -p 3000 ? --name myapp myapp:1.0 これで myapp コンテナを3つ起動してくれます、不意に落ちて も3つをキープするように起動してくれます。実行していた Docker node が H/W 障害などで停止しても別の node で実行 してくれます https://docs.docker.com/engine/swarm/swarm-tutorial/deploy-service/
17.
$ docker service
scale myapp=5
18.
$ docker service
scale myapp=5 これでさらに2つのコンテナを追加して5つのコンテナの実行を 維持してくれます ピークを過ぎたら減らせばOK https://docs.docker.com/engine/swarm/swarm-tutorial/scale-service/
19.
Rolling update
20.
$ docker service
update ? --image myapp:1.1 myapp
21.
$ docker service
update ? --image myapp:1.1 myapp これで myapp の実行イメージを順番に切り替えてくれます 同時にいくつ切り替えるのか、間隔をどれだけ開けるのかは create / update で指定する --update-parallelism, --update- delay で調整可能 https://docs.docker.com/engine/swarm/swarm-tutorial/rolling-update/
22.
Load Balancing
23.
3000/tcp myapp 3000/tcp myapp 3000/tcp myapp 32767/tcp 32767/tcp 32767/tcp Docker外 サービスのポートはどの
node でも同 じ番号に map され、各 node に振り 分けられる(ラウンドロビン) この図ではおまかせ設定のポート番号 だが、任意の番号を指定可能 こういうわけなので Consul- Template と組み合わせた nginx / HAProxy というものは必須ではなく なります Consul いなくなっちゃったし
24.
bundle / stack https://github.com/docker/docker/blob/master/experimental/docker-stacks-and-bundles.md
25.
bundle は複数のコンテナをまとめた定義 ファイル(アプリとRedisのセットなど) (Kubernetes の
Pod とは違いそう) stack は bundle から起動されたコンテナ の集合
26.
Docker 1.12 正式リリースが待ち遠しい
Download