[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
SlideShare a Scribd company logo
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
r
n
e
t
e
s
オブジェクトモデルの中で最小の単位
であるという原則の理解が必要です
2
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
がプロジェクトをスタート


•
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
K
u
b
e
V
i
r
t
の利点
• コンテナ化が難しいワークロード移行パスを提供


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


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


• その他の
K
u
b
e
V
i
r
t
のメリット


• (筆者的には)
V
M
で分離度を高めることでアプリケーションの
セキュリティを向上させるメリットもあると考える
5
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
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
ざっくり説明すると
•
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
どんな使い方を想定しているか
• アプリケーションの開発環境


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


• 例えばアプライアンス


• 仮想ネットワーク機能(
V
N
F
)およびその他仮想アプライアンスの
サポート


• 現状の
V
N
F
はコンテナ化が困難
1
0
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
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
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
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
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問題は気にしなくても良い
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でも(設定追加すれば)動作可
能だが、余計なところではまりそう
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
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
:
/
/
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
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
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
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
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
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
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
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 - @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
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
3
5

More Related Content

KubeVirt 101