Upgrade to Pro — share decks privately, control downloads, hide ads and more …

kubevirt動かしてみた_npstudy#19 / try_kubevirt_npstudy#19

komeinw
January 29, 2020

kubevirt動かしてみた_npstudy#19 / try_kubevirt_npstudy#19

komeinw

January 29, 2020
Tweet

More Decks by komeinw

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. 今日の内容

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  7. ● 昨年の夏に、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 のリリース状況

    View Slide

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

    View Slide

  9. 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

    View Slide

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

    View Slide

  11. 実際に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
    現地のみ動画あり

    View Slide

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

    View Slide

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

    View Slide


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

    View Slide

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


    View Slide