SlideShare une entreprise Scribd logo
1  sur  42
1. Docker社にキーノートで褒
められた話
2. kubernetesでGPUクラスタ
管理したい
SIC 大嶋
Docker社にキーノートで
褒められた話
ソロモンに褒められた!
何をしたのか
• Infrakitのメンテナ
• Infrakitのkubernetesプラグインを導入した
Infrakit?
• One of moby project
• Toolkit for Cluster infrastructure orchestration
何をしてくれるのか
• デプロイ後も面倒を見てくれるTerraform
• デーモンとして動き続けて、最初に定義した構成を維持しよう
とする
Infrakit Architecture
Default
Group 2
AWS EC2
GCP GCE
Docker
Swarm
Kubernetes
Instance
FlavorGroup
RPC
RPC
API
Group : Default
Instance : AWS
Flavor : Docker Swarm
master 2
worker 4
Infrakit Architecture
Default
Group 2
AWS EC2
GCP GCE
Docker
Swarm
Kubernetes
Instance
FlavorGroup
Group : Default
Instance : AWS
Flavor : Docker Swarm
master 2
worker 4
Infrakit Architecture
Default
Group 2
AWS EC2
GCP GCE
Docker
Swarm
Kubernetes
Instance
FlavorGroup
RPC
RPC
Group : Default
Instance : AWS
Flavor : Docker Swarm
master 2
worker 4
そんなものはない!
いまインスタンス
どんな感じ?
Infrakit Architecture
Default
Group 2
AWS EC2
GCP GCE
Docker
Swarm
Kubernetes
Instance
FlavorGroup
RPC
RPC
API
Group : Default
Instance : AWS
Flavor : Docker Swarm
master 2
worker 4
Docker swarm,
2マスタ 4ワーカでよろしく
Infrakit Architecture
Default
Group 2
AWS EC2
GCP GCE
Docker
Swarm
Kubernetes
Instance
FlavorGroup
RPC
RPC
API
Group : Default
Instance : AWS
Flavor : Docker Swarm
master 2
worker 4
Infrakit Architecture
Default
Group 2
AWS EC2
GCP GCE
Docker
Swarm
Kubernetes
Instance
FlavorGroup
Group : Default
Instance : AWS
Flavor : Docker Swarm
master 2
worker 4
Infrakit Architecture
Default
Group 2
AWS EC2
GCP GCE
Docker
Swarm
Kubernetes
Instance
FlavorGroup
RPC
RPC
API
Group : Default
Instance : AWS
Flavor : Docker Swarm
master 2
worker 4
どんな感じ?
Infrakit Architecture
Default
Group 2
AWS EC2
GCP GCE
Docker
Swarm
Kubernetes
Instance
FlavorGroup
RPC
RPC
API
Group : Default
Instance : AWS
Flavor : Docker Swarm
master 2
worker 4
あかんやん! 2マスタ 3ワーカ
Infrakit Architecture
Default
Group 2
AWS EC2
GCP GCE
Docker
Swarm
Kubernetes
Instance
FlavorGroup
RPC
RPC
API
Group : Default
Instance : AWS
Flavor : Docker Swarm
master 2
worker 4
1ワーカ追加ね
Infrakitの特徴
• プラグインモデル
• Infrakitの設定(必要なプラグイン、その設定)とクラスタの期
待状態をファイルに記述して再現可能にする
• プラグインを変えれば簡単に別のクラウドに移行することがで
きるようにしたい
• 将来的にはLBの設定とかも管理できるようになりたい
仲のいいプロジェクト
linuxkit?
• ディストリビューション・アズ・ア・コード
• dockerホストとなるサーバに必要なミドルウェア、設定を記述
できる
• isoファイルやAWS, GCPなどのクラウドのイメージ、VMWareの
VMイメージを作れる
つまり何が目的なのか
Dockerfile
-----------
-----------
-----------
DockerはInfrastructure as code!
つまり何が目的なのか
Dockerfile
-----------
-----------
-----------
Docker Daemonのバージョン
Linuxディストリビューション
Linuxカーネルバージョン
ホストのミドルウェア
ネットワーク クラスタの構築
DockerはInfrastructure as code?
もっとインフラアズアコードにしたい
• Linuxkitでdockerホストを動かすイメージを作って
• Infrakitでクラウド/オンプレにデプロイ、クラスタの構築・運用
• クラウド間、オンプレ間の移動を簡単に
kubernetes対応とは?
• Linuxkit: kubernetesノードとして必要なコンポーネントを入れら
れるようになった
• Infrakit: kubernetesクラスタを構築、管理できるようにした
ということ
ちなみに
• DockerCon EUではDockerのInfrakitメンテナにkubernetes対応これ
からどうすすめるべきかめっちゃ聞かれました
kubernetesでGPUクラスタ
管理したい
モチベーション
• 分散学習タスクの場合にいちいちノードにログインしたくない
• 複数のタスクを並列で走らせたい
• コンテナ単位で管理できればデプロイも楽
なぜkubernetesなのか
• コンテナオーケストレータの覇者であることがほぼ確定
• スケジューラなどが拡張しやすい
• アルファ版だがGPUサポートが有る
秀逸な資料:
GPU Container as a Serviceを実現するための最新OSS徹底比較
https://www.slideshare.net/td-nttcom/gpu-container-as-a-service-oss
GPUマネージメントのドキュメント
まあ読めばなんとかなる
kubernetesでGPU管理の構成
Node
GPU
DLフレームワーク
Nvidiaライブラリ
Nvidiaドライバ
Nvidia dockerでも基本的には同じ
spec:
template:
metadata:
labels:
app: mxd-worker1
spec:
volumes:
- name: nvidialib
hostPath:
path: /usr/lib/nvidia-375
containers:
- name: mxd-worker1
image: mxnet/python:gpu
volumeMounts:
- mountPath: /usr/local/nvidia
name: nvidialib
readOnly: true
resources:
requests:
alpha.kubernetes.io/nvidia-gpu: 4
limits:
alpha.kubernetes.io/nvidia-gpu: 4
これで大丈夫
ドキュメントにもそう書いてある
Nvidia-dockerなら動いたのに・・・
Nvidia-dockerはどうやってるか
謎の力で必要なライブラリを
/var/lib/nvidia-docker/volumes/nvidia_driver/{バージョン}
に集めてくれる
で、それをマウントしてる
解決策
kubernetesクラスタ構築前にnv-dockerをインストールしてライブラリ
だけ集めた後
/var/lib/nvidia-docker/volumes/nvidia_driver/{バージョン}
をマウント
結果:動いた!
不満点1:マウントパスに各ノードのcudaのバージョンが必要
不満点2:nvdockerが最新のdockerだと動かない
不満点3:自分でライブラリを全部指定するとvolume多すぎ
nvidia-container-runtime
• nvidiaが最近始めたプロジェクト
• OCIランタイムスペックに準拠したGPUを利用するためのコンテ
ナランタイム
• ホスト側のCUDAのバージョンを自動的に認識してなんとかして
くれる
• 最新版のdockerにも対応してる
問題点
何故かdockerのデフォルトランタイムに設定してもk8sからだと
無視された
k8s+containerd+nv-runtime
アルファ版とアルファ版とアルファ版の組み合わせ
ろくなドキュメントはない
Node
GPU
CRI-containerd
nv-runtime
動くけど。。
• 不安定
• 怖すぎる
• nv-runtimeが環境変数でGPUの数の管理などを行うのでk8s側で
制御できなくなる
nv-docker, nv-runtime, k8sの関係
k8sはdocker, cri-containerdに対して
deviceオプションでGPUデバイスを、-vでライブラリを入れる
デバイスオプション
このpodにはGPU 2つ
ライブラリのマウントはユーザの責任
nv-docker, nv-runtime, k8sの関係
nv-dockerも一緒
デバイスオプション
このコンテナにはGPU 2つ
ライブラリのマウントも自動
nv-docker, nv-runtime, k8sの関係
nv-runtimeは違う
環境変数でGPU数指定 このコンテナにはGPU 2つ
デバイス・ライブラリのマウント
nv-docker, nv-runtime, k8sの関係
k8sとnv-runtimeの組み合わせだと
このpodにはGPUはない
環境変数でGPU数指定
このコンテナにはGPU 2つ
デバイス・ライブラリのマウント
結論
• しばらくはk8s+docker1.13でnvdockerが作るディレクトリを使っ
ていこう
• もしくは丁寧に必要なライブラリの場所を洗い出そう
• ノードごとのバージョン問題はノードにラベルを貼るしか(今
のところ)解がない
• ちなみにk8sのGPU管理は雑(/devをスキャンしてnvidiaデバイ
スをマウントしてDBに登録するだけ)

Contenu connexe

Tendances

Kubernetes雑にまとめてみた 2019年12月版
Kubernetes雑にまとめてみた 2019年12月版Kubernetes雑にまとめてみた 2019年12月版
Kubernetes雑にまとめてみた 2019年12月版VirtualTech Japan Inc.
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Uemura Yuichi
 
Introduction of skippbox
Introduction of skippboxIntroduction of skippbox
Introduction of skippboxGo Chiba
 
DockerとKubernetesが作る未来
DockerとKubernetesが作る未来DockerとKubernetesが作る未来
DockerとKubernetesが作る未来Kazuto Kusama
 
知って欲しいPaaSの話
知って欲しいPaaSの話知って欲しいPaaSの話
知って欲しいPaaSの話Kazuto Kusama
 
Dockerの利用事例
Dockerの利用事例Dockerの利用事例
Dockerの利用事例maebashi
 
Docker & Kubernetes基礎
Docker & Kubernetes基礎Docker & Kubernetes基礎
Docker & Kubernetes基礎Daisuke Hiraoka
 
Kubernetes introduction
Kubernetes introductionKubernetes introduction
Kubernetes introductionDAEBUM LEE
 
コンテナ運用基盤 with OpenShift
コンテナ運用基盤 with OpenShiftコンテナ運用基盤 with OpenShift
コンテナ運用基盤 with OpenShiftY K
 
”30分”ぐらいでわかる「Kubernetes」について
”30分”ぐらいでわかる「Kubernetes」について”30分”ぐらいでわかる「Kubernetes」について
”30分”ぐらいでわかる「Kubernetes」についてYuya Ohara
 
DevStackで始めるCloud FoundryとBOSH
DevStackで始めるCloud FoundryとBOSHDevStackで始めるCloud FoundryとBOSH
DevStackで始めるCloud FoundryとBOSHi_yudai
 
Cloud Foundry Container-to-Container Networking
Cloud Foundry Container-to-Container NetworkingCloud Foundry Container-to-Container Networking
Cloud Foundry Container-to-Container NetworkingKazuto Kusama
 
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...whywaita
 
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...さくらインターネット株式会社
 
OpenShift 3で、DockerのPaaSを作る話
OpenShift 3で、DockerのPaaSを作る話OpenShift 3で、DockerのPaaSを作る話
OpenShift 3で、DockerのPaaSを作る話Kazuto Kusama
 
DockerでJupyter使おうぜ
DockerでJupyter使おうぜDockerでJupyter使おうぜ
DockerでJupyter使おうぜSatoshi Yazawa
 
KubernetesとOpenShiftの話
KubernetesとOpenShiftの話KubernetesとOpenShiftの話
KubernetesとOpenShiftの話Kazuto Kusama
 
Kubernetes ときどき Serverless -- cndjp第1回勉強会
Kubernetes ときどき Serverless -- cndjp第1回勉強会Kubernetes ときどき Serverless -- cndjp第1回勉強会
Kubernetes ときどき Serverless -- cndjp第1回勉強会Hiroshi Hayakawa
 

Tendances (20)

Lattice深掘り話
Lattice深掘り話Lattice深掘り話
Lattice深掘り話
 
Kubernetes雑にまとめてみた 2019年12月版
Kubernetes雑にまとめてみた 2019年12月版Kubernetes雑にまとめてみた 2019年12月版
Kubernetes雑にまとめてみた 2019年12月版
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
 
Introduction of skippbox
Introduction of skippboxIntroduction of skippbox
Introduction of skippbox
 
俺とKubernetes
俺とKubernetes俺とKubernetes
俺とKubernetes
 
DockerとKubernetesが作る未来
DockerとKubernetesが作る未来DockerとKubernetesが作る未来
DockerとKubernetesが作る未来
 
知って欲しいPaaSの話
知って欲しいPaaSの話知って欲しいPaaSの話
知って欲しいPaaSの話
 
Dockerの利用事例
Dockerの利用事例Dockerの利用事例
Dockerの利用事例
 
Docker & Kubernetes基礎
Docker & Kubernetes基礎Docker & Kubernetes基礎
Docker & Kubernetes基礎
 
Kubernetes introduction
Kubernetes introductionKubernetes introduction
Kubernetes introduction
 
コンテナ運用基盤 with OpenShift
コンテナ運用基盤 with OpenShiftコンテナ運用基盤 with OpenShift
コンテナ運用基盤 with OpenShift
 
”30分”ぐらいでわかる「Kubernetes」について
”30分”ぐらいでわかる「Kubernetes」について”30分”ぐらいでわかる「Kubernetes」について
”30分”ぐらいでわかる「Kubernetes」について
 
DevStackで始めるCloud FoundryとBOSH
DevStackで始めるCloud FoundryとBOSHDevStackで始めるCloud FoundryとBOSH
DevStackで始めるCloud FoundryとBOSH
 
Cloud Foundry Container-to-Container Networking
Cloud Foundry Container-to-Container NetworkingCloud Foundry Container-to-Container Networking
Cloud Foundry Container-to-Container Networking
 
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...
 
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
 
OpenShift 3で、DockerのPaaSを作る話
OpenShift 3で、DockerのPaaSを作る話OpenShift 3で、DockerのPaaSを作る話
OpenShift 3で、DockerのPaaSを作る話
 
DockerでJupyter使おうぜ
DockerでJupyter使おうぜDockerでJupyter使おうぜ
DockerでJupyter使おうぜ
 
KubernetesとOpenShiftの話
KubernetesとOpenShiftの話KubernetesとOpenShiftの話
KubernetesとOpenShiftの話
 
Kubernetes ときどき Serverless -- cndjp第1回勉強会
Kubernetes ときどき Serverless -- cndjp第1回勉強会Kubernetes ときどき Serverless -- cndjp第1回勉強会
Kubernetes ときどき Serverless -- cndjp第1回勉強会
 

Similaire à Infrakitの話とk8s+GPUの話

Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたKubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたAkihito Inoh
 
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話R S
 
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンドTakehara Ryo
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Masahiro Nagano
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活Kuninobu SaSaki
 
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsAKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsYoshio Terada
 
捕鯨!詳解docker
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker雄哉 吉田
 
Kubernetes etc.. & rancher2.0 technical preview
Kubernetes etc.. & rancher2.0 technical previewKubernetes etc.. & rancher2.0 technical preview
Kubernetes etc.. & rancher2.0 technical previewcyberblack28 Ichikawa
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門Kohei Tokunaga
 
近頃のDockerネットワーク
近頃のDockerネットワーク近頃のDockerネットワーク
近頃のDockerネットワークYuji Oshima
 
Kubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical previewKubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical previewcyberblack28 Ichikawa
 
kube-system落としてみました
kube-system落としてみましたkube-system落としてみました
kube-system落としてみましたShuntaro Saiba
 
Introduction of Kubernetes & Rancher
Introduction of Kubernetes & RancherIntroduction of Kubernetes & Rancher
Introduction of Kubernetes & Ranchercyberblack28 Ichikawa
 
Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版VirtualTech Japan Inc.
 
ビルドサーバで使うDocker
ビルドサーバで使うDockerビルドサーバで使うDocker
ビルドサーバで使うDockerMasashi Shinbara
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話JustSystems Corporation
 
make x dockerで作るAlpaca流開発環境
make x dockerで作るAlpaca流開発環境make x dockerで作るAlpaca流開発環境
make x dockerで作るAlpaca流開発環境Tomoya Kitayama
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 

Similaire à Infrakitの話とk8s+GPUの話 (20)

Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたKubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
 
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
 
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活
 
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsAKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
 
捕鯨!詳解docker
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker
 
Kubernetes etc.. & rancher2.0 technical preview
Kubernetes etc.. & rancher2.0 technical previewKubernetes etc.. & rancher2.0 technical preview
Kubernetes etc.. & rancher2.0 technical preview
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
近頃のDockerネットワーク
近頃のDockerネットワーク近頃のDockerネットワーク
近頃のDockerネットワーク
 
Kubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical previewKubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical preview
 
Jenkins 再入門
Jenkins 再入門Jenkins 再入門
Jenkins 再入門
 
kube-system落としてみました
kube-system落としてみましたkube-system落としてみました
kube-system落としてみました
 
Introduction of Kubernetes & Rancher
Introduction of Kubernetes & RancherIntroduction of Kubernetes & Rancher
Introduction of Kubernetes & Rancher
 
Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版
 
ビルドサーバで使うDocker
ビルドサーバで使うDockerビルドサーバで使うDocker
ビルドサーバで使うDocker
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
make x dockerで作るAlpaca流開発環境
make x dockerで作るAlpaca流開発環境make x dockerで作るAlpaca流開発環境
make x dockerで作るAlpaca流開発環境
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 

Plus de Yuji Oshima

MLCT#12 使われる機能目指して 測ったり試したり
MLCT#12 使われる機能目指して 測ったり試したりMLCT#12 使われる機能目指して 測ったり試したり
MLCT#12 使われる機能目指して 測ったり試したりYuji Oshima
 
KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話Yuji Oshima
 
KubeFlowでどこまでいける?
KubeFlowでどこまでいける?KubeFlowでどこまでいける?
KubeFlowでどこまでいける?Yuji Oshima
 
Docker1.12イングレスロードバランサ
Docker1.12イングレスロードバランサDocker1.12イングレスロードバランサ
Docker1.12イングレスロードバランサYuji Oshima
 

Plus de Yuji Oshima (7)

MLCT#12 使われる機能目指して 測ったり試したり
MLCT#12 使われる機能目指して 測ったり試したりMLCT#12 使われる機能目指して 測ったり試したり
MLCT#12 使われる機能目指して 測ったり試したり
 
KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話
 
KubeFlowでどこまでいける?
KubeFlowでどこまでいける?KubeFlowでどこまでいける?
KubeFlowでどこまでいける?
 
2018 07-23
2018 07-232018 07-23
2018 07-23
 
2018 07-19dist
2018 07-19dist2018 07-19dist
2018 07-19dist
 
Katib
KatibKatib
Katib
 
Docker1.12イングレスロードバランサ
Docker1.12イングレスロードバランサDocker1.12イングレスロードバランサ
Docker1.12イングレスロードバランサ
 

Infrakitの話とk8s+GPUの話

Notes de l'éditeur

  1. This is little more details about implementation. Each of plug-ins are running as go process and Infrakit discovers them through Unix socket. And plug-ins communicate each other with rpc.
  2. Now, I will talk about the flow of using Infrakit. First, you send a configuration of cluster to Infrakit and it will be sent to group plug-in. In this example, Using default group plug-in, aws instance plug-in and docker swarm flavor plug-in. And you define the desired state of your cluster. Now, it is 2 masters and 4 workers for docker swarm.
  3. Then the group plugin check the state of your cluster through flavor and instance plug-in. now, there are no instance.
  4. The group plugin send the required number of instances to instance and flaver plug-ins with rpc. It need to deploy 2 masters and 4 workers now.
  5. And then, Instance plug-in gather information that will be needed to deploy instance from flavor plug-in and deploy instances by cloud provider’s API.
  6. Now, some failure occurred in your cluster. One of your worker died unexpectedly.
  7. Group plug-in has been polling the state of your cluster. How many instances are running? Are all nodes healthy?
  8. So the Group plug-in can notice a node has gone down because the instance plug-in report number of only healthy nodes. In this case, instance plugin reports 2 master and only 3 workers are running.
  9. Then, the group plug-in will request to instance and flavor plug-ins to maintain your desired state. This is the basic behavior of provisioning and auto-healing of Infrakit.