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.

Containers and Virtual Machines: Friends or Enemies?

775 views

Published on

CloudNative Days Fukuoka 2019での講演資料です。

マイクロサービスに基づくモダンなアプリケーションを実現するための手段としてコンテナが多く使われるようになってきていますが、今後、全てのアプリケーションはコンテナ化されていくのでしょうか? また、コンテナを管理するためのオーケストレーションツールとしてKubernetesが多くの支持を集めていますが、Kubernetesを実行するプラットフォームはベアメタルを採用すべきなのか、それともハイパーバイザーを使った仮想環境を使うべきなのでしょうか? 本セッションではベストプラクティスを紹介しながら、これらの点について解説を行います。

Published in: Technology
  • Be the first to comment

Containers and Virtual Machines: Friends or Enemies?

  1. 1. ©2019 VMware, Inc. コンテナと仮想マシン、 敵か味方か!? 最適な Kubernetes プラットフォームとは 進藤 資訓 (@motonori_shindo) ヴイエムウェア(株) CTO, North Asia 2019.04.16
  2. 2. ©2019 VMware, Inc. 2 コンピュートの抽象化の流れ コンテナ 仮想マシン ベアメタル ファンクション <Fn> <Fn> <Fn> <Fn> <Fn> <Fn> 抽 象 化 の 粒 度 インフラからの独立度 IaaS FaaS CaaS Hosting 今日のお話
  3. 3. ©2019 VMware, Inc. 3 物理 vs 仮想マシン vs コンテナ Hardware Host OS (Hypervisor) Guest OS Hardware Host OS (Linux) App Container Engine App App Guest OS Guest OS App App App 仮想マシン コンテナ ハードウェア を抽象化 OSを 抽象化 Lib Lib Lib Lib Lib Lib Hardware OS App App App 物理(仮想化なし) Lib
  4. 4. ©2019 VMware, Inc. 4 どちらがいいの? コンテナ仮想マシン VS
  5. 5. ©2019 VMware, Inc. 5 アプリケーション スタック アプリケーション オペレーティング システム ハードウェア
  6. 6. ©2019 VMware, Inc. 6 オペレーティングシステムはハードウェア依存性を持っている アプリケーション オペレーティング システム ハードウェア ハードウェア依存性 ドライバー: • NIC • ストレージ • エージェント • その他
  7. 7. ©2019 VMware, Inc. 7 仮想化でハードウェアに対する依存性を解決 アプリケーション オペレーティング システム ハードウェア 仮想マシン ハイパーバイザにより OS に入れなければ いけないドライバを削減
  8. 8. ©2019 VMware, Inc. 8 オペレーティングシステムはアプリケーション依存性も抱えている アプリケーション オペレーティング システム ハードウェア アプリケーション依存性 • コード • ランタイム • システムツール • システムライブラリ • 設定 仮想マシン
  9. 9. ©2019 VMware, Inc. 9 コンテナでアプリケーション依存性を解決 アプリケーション オペレーティング システム ハードウェア コンテナ コンテナはオペレーティング システムを仮想化し、 オペレーティングシステムに インストールしなければ いけない依存部分を削減 仮想マシン
  10. 10. ©2019 VMware, Inc. 10 仮想マシンとコンテナは別の目的を持った別のテクノロジー ハードウェアから OS を抽象化 OS から アプリケーションを抽象化 一つの OS の上で複数のアプリケーションを 動かすことが可能になった 一つのハードウェアで複数のOSを 動かすことが可能になった アプリケーション オペレーティング システム ハードウェア コンテナ vSphere 仮想マシン Docker
  11. 11. ©2019 VMware, Inc. 12
  12. 12. ©2019 VMware, Inc. 13 さまざまな議論があります
  13. 13. ©2019 VMware, Inc. 14 A 社の IT チームはインフラ、Linux/ミドル、開発チームでタテ割りになった組織(サイロ) 社内のシステムの約9 割は vSphere で仮想化されている デジタル変革(DX)を推進し、より顧客とフィードバックにフォーカスすることになった • アジャイルな開発が求められる それを実現するための技術としてコンテナと Kubernetes を採用することを決定! よくある話:とある A 社での出来事
  14. 14. ©2019 VMware, Inc. 15 A 社の Linux チームが Kubernetes をベアメタル上で使う方針を決定 Linux チームの主張: • クラウドネイティブなアプリケーションは HA や vMotion などの vSphere の機能はいらない • コンテナは VM より軽量 • Kubernetes がリソース管理や HA といったハイパーバイザーが持つ機能を提供している • 仮想化によるパフォーマンスの低下 • ハイパーバイザーをスタックから取り除くことにより複雑性とコストを削減できる • インフラチームがアジャイルでない(セルフサービスでやりたい) A 社のインフラチームが VMware に相談 ベアメタルでやるぞ!
  15. 15. ©2019 VMware, Inc. 16 Back to 2005 merchoid.com
  16. 16. ©2019 VMware, Inc. 17 データセンターの ハードウェア調達に 必要な時間の平均 86日
  17. 17. ©2019 VMware, Inc. 18 複数クラスタ vs シングルクラスタ 隔離の柔軟性 仮想インフラ上に異なったクラスタを混在させることが可能 Kubernetes のクラスタで隔離を行うとリソースが有効に活用できない • クラスタによる分割を行うと、多 くのハードウェアが必要となる、 リソースも有効に活用できない。 • リソースを有効に利用するために シングルクラスタになりがち。 • さまざまな動機(アプリ、部門、 サービス、など)で自由にクラス タ分離してもリソースが有効に利 用される。 K8S on vSphere K8S on ベアメタル
  18. 18. ©2019 VMware, Inc. 19 HA、アドミッションコントロール、優先順位 コントロールプレーンの信頼性 vSphere HA はリカバリプロセスを自動化。リソースは常に保証されている タイムアウト後に Pod は再作成されるが、 あらかじめ高い priority を設定しておく必要がある • ノード障害時にはタイムアウト (デフォルト5分)後に Pod は再作成される • 空いているリソースがなければ Pod は再作成されない。 • 他の Pod よりも高い priority を 設定しておく必要がある • K8S のコントローラコンポーネン トや複雑なステートフルアプリ ケーションは vSphere の HA の メリットを享受できる • vSphere の HA は常にリソースが 確保されている K8S on vSphere K8S on ベアメタル
  19. 19. ©2019 VMware, Inc. 20 マルチレベル スケジューリング vs 静的なスケジューリング ワークロードのバランシング • ワークロードの配置は Pod の デプロイ時に決まる。 • 新たな Pod をデプロイする際に、 既存の Pod が追い出される (preemption)場合はあるが、 他の契機でリバランシングが 行われることはない。 • DRS (Distributed Resource Scheduler) が継続的に ワークロードの配置を最適化。 K8S on vSphere K8S on ベアメタル DRS と組みわせて多段スケジューリングすることで継続的に最適化 配置は最初のデプロイ時に決まり、原則その後、変わることはない
  20. 20. ©2019 VMware, Inc. 21 A 社の Linux チームが Kubernetes をベアメタル上で使う方針を決定 Linux チームの主張: • クラウドネイティブなアプリケーションはHA や vMotion などの vSphere の機能はいらない • コンテナは VM より軽量 • Kubernetes がリソース管理や HA といったハイパーバイザーが持つ機能を提供している • 仮想化によるパフォーマンスの低下 • ハイパーバイザーをスタックから取り除くことにより複雑性とコストを削減できる • インフラチームがアジャイルでない(セルフサービスでやりたい) A 社のインフラチームが VMware に相談 ベアメタルでやるぞ!
  21. 21. ©2019 VMware, Inc. 22 CNCF Survey conducted in March and November 2018 実際ワークロードはどこで動いている? 引用: https://www.cncf.io/blog/2018/11/13/cncf-survey-china-november-2018/
  22. 22. ©2019 VMware, Inc. 23 最新の Kubernetes をどこでも! 23 オンプレ | ハイブリッド クラウド | パブリック クラウド パッケージ SaaS VMware PKS
  23. 23. ©2019 VMware, Inc. 24 最新の Kubernetes をどこでも! 24 オンプレ | ハイブリッド クラウド | パブリック クラウド パッケージ SaaS VMware Enterprise PKS ターンキー: SDDC への 投資を最大限に活かした統合 ソリューション VMware Essential PKS カスタム: 自由なデザイン とプロアクティブなサポート VMware Cloud PKS SaaS: マネージメント / メンテナンスフリーで クラスタを利用
  24. 24. ©2019 VMware, Inc. 25 コンテナ管理のターンキーソリューション VMware Enterprise PKS vSphere | Hybrid Cloud | Public Cloud アップストリーム版 Kubernetes 含まれるコンポーネント: 統合、検証され、セキュア ライフサイクル管理 [BOSH] レジストリ [Harbor] ネットワーク [NSX-T] 補完コンポーネント (一部) Pivotal Platform Dojo: CI/CD integration 推奨される追加サービス Training: Private, role-specific coursewareSupport: Troubleshoot, repair SDDC オープン モニタリング Wavefront Prometheus ストレージ vSAN 自動化 vRealize 適合性検査 Sonobuoy Ingress / LB NSX-T Contour サービスメッシュ NSX SM Istio バックアップ/移行 BBR Velero 含まれるサービス
  25. 25. ©2019 VMware, Inc. 26 カスタマイズ可能な Kubernetes 基本サービス VMware Essential PKS Bare Metal | vSphere | Public Cloud アップストリーム版 Kubernetes 必要なコンポーネント アーキテクト:接敵、デプロイ、開発 必要となる追加サービス トレーニング: 個別、ロール別コース ライフサイクル管理 [kubeadm, Cluster API] レジストリ [Harbor, Quay] ネットワーク [NSX-T, Flannel, Calico] サポート:アップグレード、パッチ、 メンテナンス 含まれるサービス 補完コンポーネント (一部) SDDC オープン モニタリング Wavefront Prometheus ストレージ vSAN 自動化 vRealize 適合性検査 Sonobuoy Ingress / LB NSX-T Contour バックアップ/移行 Velero 推奨される追加サービス
  26. 26. ©2019 VMware, Inc. 27 Kubernetes を SaaS で提供 VMware Cloud PKS AWS | VMC (coming) | Azure (coming) なし 必要となる追加サービス なしサポートとオペレーション: アップグレード、パッチ、ヘルス管理 含まれるサービス 補完コンポーネント(一部) CSP/VMware オープン モニタリング Wavefront Prometheus ストレージ AWS EBS 自動化 Cluster API 適合性検査 Sonobuoy Ingress/LB Contour Nginx バックアップ/移行 Velero 推奨される追加サービス ライフサイクル管理 レジストリ ネットワーク サービスメッシュ ポリシー アップストリーム版 Kubernetes 含まれるコンポーネント
  27. 27. ©2019 VMware, Inc. 28 仮想マシンとコンテナはそれぞれ別の目的を持ったテクノロジー。排他的なものではない。 Kubernetes 環境とハイパーバイザーは補完的な関係 • Kubernetes をベアメタル環境で使う場合は、ベアメタル環境に自動払い出し、管理・監視ツール、 エンジニアのスキルセットを用意すべし VMware は包括的な Kubernetes ソリューションを提供しており、どのようなニーズの お客様にも対応可能 Key Takeaway
  28. 28. Thank You ©2019 VMware, Inc.

×