最近のKubernetesと
Docker Machine / Swarmの話
Kazuto Kusama
@jacopen
Tokyo was captured by Enlightened
Kubernetesの話
進化速い
進化速い
9月 10月 11月 12月
v0.2
v0.3
v0.4
v0.5
v0.6
v0.7
.1 .2 .3 .4
.1 .2 .3 .4 .5 .6
.2
前回 今回
前回の発表以降、入った機能
kubectl
新しいコマンド
従来のkubecfg.shも、今の所使えるが・・・
Persistence Disk
GCEの永続ディスクをPodにマウントできる。

Cloud StorageではなくてGCEの永続ディスク
Namespace
Pod/Replication Controller/Serviceなどを分離出来る
development, productionみたいなNSを作るイメージ
Services v2
ServiceがIPアドレスを持つようになった
Services v2
内部的にはiptablesのREDIRECT
Git Based Volumes
VolumesにGitRepoを指定することで、
コンテナ起動時に指定場所にcloneされる?(未確認)
Heapster
コンテナのリソース利用状況を収集する
Heapster
コンテナ 収集 保存 可視化
Logging(Fluentd & ES)
k8sの標準ログコレクタにFluentdが採用された
ENABLE_NODE_LOGGING=true
LOGGING_DESTINATION=elasticsearch
コンテナに環境変数を設定することで有効化
コンテナのLog取得
kubectl log <pod名> で、コンテナのログが取れる
Fluentdとかelasticsearch関係なく、直接取ってるっぽい
今後出てきそうな機能
• RoadmapやIssueを読んで、今後出てきそうな機能を

ピックアップ
• 全て網羅しているわけでなく、気になったものだけを抜粋
• 単に英語力不足で見落としているものも・・・あるかも
負荷に応じたスケジューリング
• 現在のスケジューリングは単にラウンドロビンするだけで、
賢くない
• cAdvisorの情報を参考に、負荷やリソース利用状況に応じ
たスケジューリングができるようになる
リソース制限
• コンテナやPodに対してリソース制限をかけられるように
する
• コンテナはdockerがcgroupsによる制限を提供している
• じゃあPodはどうする・・・?
• Googleのlmctfyを参考に実装していってるぽい
• その先にはQoS Tierという構想があるっぽい
Replication ControllerとPod Templateの分離
• Replication Controllerは、自身のコンフィグ内にある
PodTemplate定義を元にPodを複製していく。
• このPodTemplateは独立した概念とするべきではないか、
という話
• PodTemplateが独立したリソースになれば、Replication
Controller以外 (例えばCron jobとか、何かのフックとか)
で活用できるよね、という考え方
ラベルの強化
• ラベルはセレクタとして使われている。たとえばService
は、指定されたラベルのPodにトラフィックを転送してい
る
• このセレクタ機能が強化される
• key is in [“nginx”, “apache”]  みたいな感じで、複数ラベ
ルを付けられるようになる
• key is not in [“development”, “qa”] みたいな感じで、除
外するラベルを指定できるようになる
k8s on k8s
• 既にk8sは、それ自身(API serverなど)をk8s上でホストで
きるようになっているが、これがもっと推し進められるら
しい?(あんま追ってない)
来年、Productionリリース
Docker Machine / Swarmの話
12月4日
Dockerがマルチホストのコンテナ

環境構築/管理を行うツールを発表
Docker Machine
Docker Swarm
Docker Compose
Dockerが使える環境を一発で作ってくれる
https://github.com/docker/machine
DockerのClusterを組んでくれる
https://github.com/docker/swarm
よーわからんちん
Docker Machine
• 対応している IaaS
• EC2
• DigitalOcean
• Azure
• Vagrant
DEMO
Docker Swarm
• DockerのClusterを組んでくれる
DEMO
manager
node
node
node
token, etcd, etc…
swarm
swarm
swarm
node側のswarmは、自身の
docker endpointをadvertise
swarm
manager側のswarmは、
docker互換のAPIを提供。
各nodeにリクエストを分配
clientからは、普通の
dockerに見える
Docker Swarm
• 今の所、スケジューリングは単なるランダム
• 複数インスタンスを管理するような機能は無し
• k8sのServicesのような概念も無し
• ホストがダウンした時に、他ホストに

フェイルオーバーするような仕組みも無し
Composeと組み合わせたときに本領を発揮する?
参考情報
Kubernetes
https://github.com/GoogleCloudPlatform/kubernetes/
Kubernetes Advent Calendar
Docker Swarm
https://github.com/docker/swarm
Docker Machine
https://github.com/docker/machine
http://qiita.com/advent-calendar/2014/kubernetes
まだ空き枠あるよ!

最近のKubernetesとDocker Machine/Swarmの話