最近のKubernetesと Docker Machine / Swarmの話
リソース制限
• コンテナや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”] みたいな感じで、除外するラベルを指定できるようになる
Docker Machine
Docker Swarm
Docker Compose
Dockerが使える環境を一発で作ってくれる
https://github.com/docker/machine
DockerのClusterを組んでくれる
https://github.com/docker/swarm
よーわからんちん
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と組み合わせたときに本領を発揮する?
参考情報
Kuberneteshttps://github.com/GoogleCloudPlatform/kubernetes/
Kubernetes Advent Calendar
Docker Swarmhttps://github.com/docker/swarm
Docker Machinehttps://github.com/docker/machine
http://qiita.com/advent-calendar/2014/kubernetes
まだ空き枠あるよ!