Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Juju/MAASで作る Kubernetes + GPU

191 views

Published on

Slideshare上のプレビューでは文字かけ、文字化けが発生します。ダウンロードしてご覧ください。

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Juju/MAASで作る Kubernetes + GPU

  1. 1. Juju/MAASで作る Kubernets + GPU ⽇本仮想化技術 遠⼭洋平 2018年5⽉9⽇ rev.0 1
  2. 2. Kubernetesとは • Googleが開発 • オープンソースで公開 • コンテナーのオーケストレーションツール • 複数ホスト間のコンテナーの展開 • 冗長構成を意識したコンテナーの展開と管理 • YAML形式のファイルを使ったデプロイメント • アプリケーションの展開 • 機能の追加 • ステータスの確認 • 削除 2 % kubectl create -f deploy.yml % kubectl get -f deploy.yml % kubectl delete -f deploy.yml コマンドの一例
  3. 3. Jujuとは • アプリケーションの構成管理と簡易監視ツール • マルチクラウド(AWS,Azure,GCE,OpenStack etc...) • MAAS,LXC,vSphere • Ubuntu,CentOS,Windows,macOSクライアントが存在 • OSSで開発 3 OS SSH App Config OS SSH App Config Juju Ansible
  4. 4. MAASとは • Metal As A Serviceを提供 • ノード資源の管理 • 物理サーバー • Cisco UCS , HPE Moonshot , Intel RSD... • 仮想サーバー(KVM + Libvirt) • ネットワークの管理 • IPアドレスなど • デプロイメント/リリース • Ubuntu,CentOS(x86-64bitのみ),Windows... • 多アーキティチャー(x86,ARM32,ARM64,PPC64...) • BIOS/UEFI 4
  5. 5. MAASの概要 5 ※公式サイトから引用 • 電源の管理はIPMIを利用 • OSSで構成されている • DNS • DHCP • PXE • IPMI
  6. 6. CanonicalとKubernetes • Kubernetesのエンタープライズサポートを表明 • JujuのCharmやBundleが用意されている 6 ※公式サイトから引用 LONDON, U.K, Aug 23rd, 2017, Canonical today announced two consulting packages for enterprise Kubernetes deployments, and expanded enterprise support to include serverless infrastructure from Galactic Fog, container management workflows from Rancher, and Weave Cloud from Weaveworks.
  7. 7. インストール方法 7
  8. 8. MAASのセットアップ • MAASを公式の手順でセットアップ • イメージのインポート • MAAS DHCPサーバー • SSHキーペア • サーバー設置 • サーバーの電源投入 • Enlist • Commission • ノードにタグを設定 8
  9. 9. MAASでデプロイするまで 1. Enlist処理 ※ • IPMIツールでmaasユーザーを登録 • BMCの情報を取得してノードを登録 2. Commission処理 ※ • ハードウェア情報などを取得 3. Ready • IPアドレスやNICの設定 4. デプロイ ※ノードを起動し、ミニOSがメモリーに読み込まれて各処理 9
  10. 10. Jujuのセットアップ • Jujuを公式の手順でインストール • sudo snap install juju --classic (Ubuntuの場合) • Jujuクライアントと「Cloud」との関連づけ • Juju Modelの作成と切替え • Juju bootstrapの実行 10 MAAS Cloud
  11. 11. Kubernetesのデプロイ • juju deploy bundle.yaml • machinesでMAASノードのタグなど識別 • charmでチャームのリビジョン • num_unitsでユニット数 (2以上にするとHA) • VIP IPを指定するとLB • toでデプロイ先 (0...物理 ,lxd:0...コンテナ) 11
  12. 12. KubernetesのGPU活用 • Schedule GPUsを参考にセットアップするとGPUを利用可能 • JujuではNVIDIA GPUを実装していれば、ここまで自動化可 1. Ubuntuのデプロイと初期設定 2. Kubernetesのセットアップ 3. Docker CEの導入 4. NVIDIA-Docker2の導入 5. NVIDIA GPU Device Pluginの導入 6. CUDAのセットアップ 12
  13. 13. KubernetesでPodの作成 • Podの作成 • kubectl create -f firstpod.yml • Podの状態確認 • kubectl get -w -f firstpod.yml • kubectl describe -f firstpod.yml • シェルにログイン • kubectl exec -it testpod bash • コマンドを実行 • kubectl exec -it testpod command 13 apiVersion: v1 kind: Pod metadata: name: testpod spec: restartPolicy: OnFailure containers: - name: testpod image: ubuntu:latest tty: true #以下はGPU利⽤する場合に指定 resources: limits: nvidia.com/gpu: 1 YAMLの例
  14. 14. 画像解析MNISTによる比較 • CPUは3分30秒かかる • GPU利用すれば30秒で解析可能 14
  15. 15. 現在検証中のこと • Rook • 永続ストレージのオーケ ストレーター • 超簡単! 15フンデデキタ! • MetalLB • 簡易LB • 「K8sでPublic IPを使いた い」を簡単に叶えてくれる • どれくらいの負荷に耐え られるか? 15 • Kubernetes Helm • テンプレートベースのアプ リケーション展開 • 監視 • Prometheus • Grafana
  16. 16. 今後検証予定のこと • Ubuntu 18.04ベースでKubernetes • Docker CE対応待ち • Ubuntu 18.04.1以降を予定 • Spinnaker • gVisor • Cilium • Kubeflow • Kubernetes + Calico 16

×