Slide 1

Slide 1 text

KubeVirt動かしてみた ネットワークプログラマビリティ勉強会 #19 サイバーエージェント 山本 孔明 @komei_0321

Slide 2

Slide 2 text

❏ 山本 孔明@komei_0321 サイバーエージェント AI事業本部のインフラ組織(SIA)所 属のネットワークエンジニア 兼 責任者 主な業務 ● オンプレとパブリックのネットワーク(物理/仮想) ● OpenStack / CircleCI Enterprise ● Aritifactory ...etc ● チームマネジメント 自己紹介

Slide 3

Slide 3 text

今日の内容

Slide 4

Slide 4 text

こんな話 https://komeiy.hatenablog.com/entry/2019/08/13/090000 ネットワークエンジニアも気にして おかないといけないんじゃない?

Slide 5

Slide 5 text

Kubevirt について ● kubernetesで仮想マシンを管理できる夢のあ るプロジェクト ● Kubernetesで管理できるということで、スケ ジューリングやセルフヒーリング、ロードバンラ ンサなどのサービスが利用できるなど期待が 高かまっている ● まだ商用での実運用事例などは聞かない ● 「キューブバート」と読むらしい ● 現状は、CNCFではSandboxという位置付け https://landscape.cncf.io/

Slide 6

Slide 6 text

Kubevirt について https://landscape.cncf.io/

Slide 7

Slide 7 text

● 昨年の夏に、AI事業本部エンジニアが誰でも使える開発環境としてリリース。「 v0.19」を利用 ● v0.20.0 ○ SR-IOV対応 ● v0.21.0 ○ k8s 1.14 対応、virtctl で migrate できるようになった ● v0.22.0 ○ Nvidia の GPU に対応 ● v0.23.0 ○ ゲストOSの情報を VMI status で取れるようになった ● v0.24.0 ○ k8s 1.15, 1.16 対応、libvirt 5.6.0 ● v0.25.0 ○ k8s 1.17 対応 ○ virtctl restart --force 実装 Kubevirt のリリース状況

Slide 8

Slide 8 text

Kubevirt の中身 VMを起動させるための podを作 成します。VMオブジェクトの操作 がAPIServerに来ると呼び出され ます daemonset。podができた後に、 VMの仕様をみて libvirtdを介して ドメイン情報を作成 namespaceとcgroupsを提供。実 際のVMをlibvirt経由で作成しま す。

Slide 9

Slide 9 text

Kubevirt 環境の作り方 $ kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${KVIRT_VER}/kubevirt-operator.yaml namespace/kubevirt created customresourcedefinition.apiextensions.k8s.io/kubevirts.kubevirt.io created clusterrole.rbac.authorization.k8s.io/kubevirt.io:operator created serviceaccount/kubevirt-operator created clusterrole.rbac.authorization.k8s.io/kubevirt-operator created clusterrolebinding.rbac.authorization.k8s.io/kubevirt-operator created deployment.apps/virt-operator created $ kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${KVIRT_VER}/kubevirt-cr.yaml $ kubectl get deployment -n kubevirt NAME READY UP-TO-DATE AVAILABLE AGE virt-api 2/2 2 2 3m16s virt-controller 2/2 2 2 2m49s virt-operator 2/2 2 2 32m

Slide 10

Slide 10 text

[参考] kubernetes 環境は bot でデプロイ

Slide 11

Slide 11 text

実際にVMを立ててみる 1. VM の作り方 ● KubeVirt 用の annotation つけた PVC 作 る。(ちょっと待つ) ● VirtualMachine リソースで VM を作る $ kubectl create -f pvc_cirros.yml $ kubectl create -f vm1_cirros.yml 2. virtctl をインストール $ curl -L -o virtctl \ https://github.com/kubevirt/kubevirt/releases/d ownload/v0.19.0/virtctl-v0.19.0-darwin-amd64 $ chmod +x virtctl 現地のみ動画あり

Slide 12

Slide 12 text

Kubernetes のネットワークをおさらい https://cloud.google.com/kubernetes-engine/docs/concepts/network-overview?hl=ja

Slide 13

Slide 13 text

VM = Pod つまりただの Kubernetes のネットワーク

Slide 14

Slide 14 text


 インフラエンジニアを募集しています

Slide 15

Slide 15 text

ご清聴ありがとうございました