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.
KubeVirt 101
日本仮想化技術株式会社


遠山洋平
1
前提知識
•
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
V
i
r
t
の概要
3
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
がプロジェクトをスタート


•
...
K
u
b
e
V
i
r
t
の利点
• コンテナ化が難しいワークロード移行パスを提供


• 技術的な理由(古い
O
S
/
カーネルが必要
/
アプリの改造不可)


• ビジネス上の理由(市場投入までの時間、変換のコスト)


• その...
K
u
b
e
V
i
r
t
で何ができるか
6
K
u
b
e
V
i
r
t
で何ができるか
7
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
...
ざっくり説明すると
•
K
u
b
e
V
i
r
t
のおかげで
V
M
とコンテナーをうまく使い分けてアプリ
ケーションを構成できる


• コンテナーと
V
M
は同じネットワークに接続可能


•
V
M
にハードウェアを割り当て可能
...
どんな使い方を想定しているか
• アプリケーションの開発環境


• コンテナ化不可(もしくは難しい)アプリケーションのサポート


• 例えばアプライアンス


• 仮想ネットワーク機能(
V
N
F
)およびその他仮想アプライアンスの
サポ...
K
u
b
e
V
i
r
t
はどうやって動いているか
1
1
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...
V
i
r
t
-
l
a
u
n
c
h
e
r
にアクセスしてみる
1
3
K
u
b
e
r
n
e
t
e
s
クラスタへの


K
u
b
e
V
i
r
t
の追加
1
4
動かしてみるには
• 公式サイト(
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...
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
のインストール
...
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
...
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
のインス...
K
u
b
e
V
i
r
t
の利用
1
9
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
...
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
を起動...
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
C
D
I
とは
•
V
M
イメージをイメージボリュームに変換するもの


•
O
p
e
n
S
t
a
c
k
のイメージボリュームと概念的には似ている?


•
V
M
イメージはクラウド用に提供されている(
c
l
o
u
d
-
i...
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
...
C
D
I
でイメージボリュームを作成
• 次のような
Y
A
M
L
を用意してイメージ作成
2
5
C
D
I
で作ったイメージで
V
M
を作成
•
m
e
t
a
d
a
t
a
のところに書いた名前で
V
M
を作成


• 細かいことは仮想化ブログなどに書いているので、そちらを参照


•
h
t
t
p
s
:
/
/
t
e
c
...
C
D
I
イメージで
V
M
を起動
2
7
C
D
I
イメージで
V
M
を起動
2
8
C
D
I
イメージで
V
M
を起動
•
W
i
n
d
o
w
s
の場合
2
9
今後
•
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
3
1
参考スライド
スライド作成にあたり、参考にした文献などのまとめ
3
2
3
3
• GitHub https://github.com/kubevirt
• KubeVirt Intro: Virtual Machine Management on
Kubernete
s

• Stephen Gordon - @...
3
4
• RUNNING VIRTUAL MACHINES ON KUBERNETE
S

• Roman Mohr & Fabian Deutsch @Red Ha
t

• THE FOUL SIDE OF OPEN SOURCE NET...
3
5
Upcoming SlideShare
Loading in …5
×

KubeVirt 101

KuberVirtの概要、インストール、使いかた

Related Books

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

  • Be the first to like this

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

×