Successfully reported this slideshow.

KubeVirt 101

0

Share

Loading in …3
×
1 of 35
1 of 35

More Related Content

More from VirtualTech Japan Inc.

Related Books

Free with a 30 day trial from Scribd

See all

KubeVirt 101

  1. 1. KubeVirt 101 日本仮想化技術株式会社 遠山洋平 1
  2. 2. 前提知識 • K u b e V i r t を利用するには、少なくとも K u b e r n e t e s の( C L I など の)操作に慣れている必要があります • P o d は K u b e r n e t e s アプリケーションの基本的な実行単位であ り、作成する K u b e r n e t e s オブジェクトモデルの中で最小の単位 であるという原則の理解が必要です 2
  3. 3. K u b e V i r t の概要 3
  4. 4. K u b e V i r t プロジェクトの始まり • K u b e r n e t e s を仮想マシンとコンテナのオーケストレータにする のを目的 • 2 0 1 6 年に R e d H a t がプロジェクトをスタート • 2 0 1 7 年 1 月にオープンソース化 • 2 0 1 9 年に C N C F S a n d b o x として受け入れられた • A p a c h e 2 . 0 ライセンスで開発 4
  5. 5. K u b e V i r t の利点 • コンテナ化が難しいワークロード移行パスを提供 • 技術的な理由(古い O S / カーネルが必要 / アプリの改造不可) • ビジネス上の理由(市場投入までの時間、変換のコスト) • その他の K u b e V i r t のメリット • (筆者的には) V M で分離度を高めることでアプリケーションの セキュリティを向上させるメリットもあると考える 5
  6. 6. K u b e V i r t で何ができるか 6
  7. 7. K u b e V i r t で何ができるか 7
  8. 8. K u b e V i r t の特徴 • K u b e r n e t e s で仮想マシンを実行するための A P I を実装 • K u b e r n e t e s ネイティブな仮想化へのアプローチ • C u s t o m R e s o u r c e D e f i n i t i o n s を利用 • クラスターレベルの機能との統合 • ストレージ、ネットワーク、サービス e t c . . • ノードレベルの機能との統合 • C P U M a n a g e r 、マルチネットワーク、 H u g e P a g e s 、 G P U e t c . . . 8
  9. 9. ざっくり説明すると • K u b e V i r t のおかげで V M とコンテナーをうまく使い分けてアプリ ケーションを構成できる • コンテナーと V M は同じネットワークに接続可能 • V M にハードウェアを割り当て可能 • G P U , v G P U , M u l t i - N I C , S R - I O V , D P D K e t c . . . • K u b e V i r t の提供する V M 環境は L i n u x K V M の V M • そんなに学習コストは高くない 9
  10. 10. どんな使い方を想定しているか • アプリケーションの開発環境 • コンテナ化不可(もしくは難しい)アプリケーションのサポート • 例えばアプライアンス • 仮想ネットワーク機能( V N F )およびその他仮想アプライアンスの サポート • 現状の V N F はコンテナ化が困難 1 0
  11. 11. K u b e V i r t はどうやって動いているか 1 1
  12. 12. K u b e V i r t のコンポーネント • M a s t e r • V i r t C o n t r o l l e r • V i r t A P I S e r v e r • W o r k e r ( d a e m o n ) • V i r t H a n d l e r • P o d • V i r t L a u n c h e r • L i b v i r t d 1 2
  13. 13. V i r t - l a u n c h e r にアクセスしてみる 1 3
  14. 14. K u b e r n e t e s クラスタへの K u b e V i r t の追加 1 4
  15. 15. 動かしてみるには • 公式サイト( K u b e V i r t . i o )にアクセスすると、 Q u i c k s t a r t のため のリンクがある 1 . K a t a c o d a 2 . M i n i k u b e 3 . K i n d 4 . C l o u d P r o v i d e r s • k u b e a d m で作ったクラスタで動かす場合もこの手順で O K 1 5
  16. 16. K i n d を使う • k i n d c r e a t e c l u s t e r • K u b e V i r t O p e r a t o r のデプロイ • v i r t c t l C L I のインストール • 詳細 • h t t p s : / / k i n d . s i g s . k 8 s . i o / • h t t p s : / / k u b e v i r t . i o / q u i c k s t a r t _ k i n d / 1 6 LinuxホストにDockerとkind CLIがインス トールされている環境があれば動くの で、この方法がファーストステップとして はおすすめ 例のdockershim問題は気にしなくても良い
  17. 17. M i n i k u b e の場合 • m i n i k u b e s t a r t • m i n i k u b e a d d o n s e n a b l e k u b e v i r t • v i r t c t l C L I のインストール • 詳細 • h t t p s : / / m i n i k u b e . s i g s . k 8 s . i o / d o c s / s t a r t / • h t t p s : / / k u b e v i r t . i o / q u i c k s t a r t _ m i n i k u b e / 1 7 ベアメタルLinuxホストにminikubeを入れて 動かすのが前提 Nested VMでも(設定追加すれば)動作可 能だが、余計なところではまりそう
  18. 18. k u b e a d m で構築したクラスターで利用 • k u b e a d m i n i t • K u b e V i r t O p e r a t o r のデプロイ • v i r t c t l C L I のインストール • 詳細 • h t t p s : / / k u b e v i r t . i o / q u i c k s t a r t _ c l o u d / 1 8
  19. 19. K u b e V i r t の利用 1 9
  20. 20. K u b e V i r t を使った V M の作成 • Y A M L を書いて k u b e c t l c r e a t e する • サンプル Y A M L を使ってみよう 1 . w g e t h t t p s : / / r a w . g i t h u b u s e r c o n t e n t . c o m / k u b e v i r t / k u b e v i r t . g i t h u b . i o / m a s t e r / l a b s / m a n i f e s t s / v m . y a m l 2 . c a t v m . y a m l 3 . k u b e c t l c r e a t e - f v m . y a m l • 詳細 • h t t p s : / / k u b e v i r t . i o / l a b s / k u b e r n e t e s / l a b 1 . h t m l 2 0
  21. 21. V M の取り扱いについて • サンプルの v m . y a m l は V M 作成時に起動するように設定されていない ので起動しない • 「 v i r t c t l s t a r t t e s t v m 」で V M を起動 • V M 名やステータスは「 k u b e c t l g e t v m i 」で確認 • V M へのアクセスはいずれかの方法で 1 . v i r t c t l c o n s o l e h o g e . . . シリアル接続( V M イメージ次第) 2 . v i r t c t l v n c h o g e . . . V i r t - v i e w e r もしくは V N C クライアントでアクセス 3 . S S H でアクセス 2 1
  22. 22. C o n t a i n e r i z e d D a t a I m p o r t e r ( C D I ) 2 2
  23. 23. C D I とは • V M イメージをイメージボリュームに変換するもの • O p e n S t a c k のイメージボリュームと概念的には似ている? • V M イメージはクラウド用に提供されている( c l o u d - i n i t がインス トール済みの) Q C O W 2 イメージなどを使えば良い • e x . U b u n t u なら . . . h t t p s : / / c l o u d - i m a g e s . u b u n t u . c o m / • F e d o r a なら . . . h t t p s : / / a l t . f e d o r a p r o j e c t . o r g / c l o u d / • K 8 s クラスターに事前にストレージとストレージクラスが必要 2 3
  24. 24. C D I のインストール • C D I O p e r a t o r のセットアップ • k u b e c t l c r e a t e - f c d i - o p e r a t o r . y a m l • k u b e c t l c r e a t e - f c d i - c r . y a m l • 詳細 • h t t p s : / / k u b e v i r t . i o / l a b s / k u b e r n e t e s / l a b 2 . h t m l 2 4
  25. 25. C D I でイメージボリュームを作成 • 次のような Y A M L を用意してイメージ作成 2 5
  26. 26. C D I で作ったイメージで V M を作成 • m e t a d a t a のところに書いた名前で V M を作成 • 細かいことは仮想化ブログなどに書いているので、そちらを参照 • h t t p s : / / t e c h . v i r t u a l t e c h . j p / a r c h i v e / c a t e g o r y / K u b e V i r t • h t t p s : / / g i t h u b . c o m / y t o o y a m a / k u b e v i r t - d e m o 2 6
  27. 27. C D I イメージで V M を起動 2 7
  28. 28. C D I イメージで V M を起動 2 8
  29. 29. C D I イメージで V M を起動 • W i n d o w s の場合 2 9
  30. 30. 今後 • K u b e V i r t 2 0 1 では N V I D I A G P U の利用、 K u b e V i r t 3 0 1 では M u l t u s C N I との連携について取り上げる予定 3 0
  31. 31. 3 1
  32. 32. 参考スライド スライド作成にあたり、参考にした文献などのまとめ 3 2
  33. 33. 3 3 • GitHub https://github.com/kubevirt • KubeVirt Intro: Virtual Machine Management on Kubernete s • Stephen Gordon - @xsgordon Chandrakanth Jakkid i • Fast Packet Processing with KubeVir t • Petr Horáček @Red Hat / David Vossel @Red Ha t • Virtualized GPU workloads on KubeVir t • David Vossel @Red Ha t • Vishesh Tanksale @NVIDI A • Using KubeVirt in Telco s • Abhinivesh Jain
  34. 34. 3 4 • RUNNING VIRTUAL MACHINES ON KUBERNETE S • Roman Mohr & Fabian Deutsch @Red Ha t • THE FOUL SIDE OF OPEN SOURCE NETWORKIN G • Thomas D. Nadeau @Red Ha t • Convergence of VM and containers orchestration using KubeVir t • Chunfu Wen @Red Hat
  35. 35. 3 5

×