最近のKubernetesとDocker Machine/Swarmの話

38
最近のKubernetesDocker Machine / Swarmの話

Transcript of 最近のKubernetesとDocker Machine/Swarmの話

最近の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=trueLOGGING_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と組み合わせたときに本領を発揮する?

参考情報

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

まだ空き枠あるよ!