Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

Kubernetesで作るIaaS基盤/KubeVirt Deep Dive

Kubernetesで作るIaaS基盤/KubeVirt Deep Dive

2024/06/05に行われた、OCHaCafe Season8 #5 - Kubernetesで作るIaaS基盤で用いた資料です。
commpass: https://ochacafe.connpass.com/event/316645/

oracle4engineer

June 05, 2024
Tweet

Video

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Kubernetesで作るIaaS基盤 Oracle Cloud Hangout Café – Season8 #5 Takuya Niita

    Principal Cloud Engineer Oracle Corporation Japan, Solution Architect Jun 5th , 2024 コンテナ管理もVM管理も、全てk8sに任せましょう!!
  2. 自己紹介 Takuya Niita Principal Cloud Engineer Oracle Corporation Japan 2

    Copyright © 2024, Oracle and/or its affiliates • 日本オラクル株式会社 ソリューション・アーキテクト部 • AppDev/Container/FaaS/(a little)ML… • Oracle Cloud Hangout Caféメンバー • Oracle Groundbreakers Advocate • 前職は某SIer • Oracle歴/Cloud Native歴:5年 • ジブリ大好き 今回もちゃんとネタあります…!! takuya_0301
  3. Copyright © 2024, Oracle and/or its affiliates 3 Agenda 1.

    そもそもVMって?? 2. KubeVirt 101 3. KubeVirt 201 4. DEMO 5. まとめ
  4. VM(仮想マシン)とは…?? ベアメタルサーバ(物理サーバ)のリソースを有効活用するための仕組み 5 Copyright © 2024, Oracle and/or its affiliates

    ホストOS ハイパーバイザー 依存関係 アプリA 依存関係 ゲストOS ゲストOS ハードウェア アプリB アプリC アプリケーション 依存関係 ホストOS ハードウェア ベアメタルサーバ 仮想マシン(ハイパーバイザー型)
  5. VM(仮想マシン)とは…?? ベアメタルサーバ(物理サーバ)のリソースを有効活用するための仕組み 6 Copyright © 2024, Oracle and/or its affiliates

    ホストOS ハイパーバイザー 依存関係 アプリA 依存関係 ゲストOS ゲストOS ハードウェア アプリB アプリC アプリケーション 依存関係 ホストOS ハードウェア ここって どうなってるの…?? ベアメタルサーバ 仮想マシン(ハイパーバイザー型)
  6. VMの仕組み(Linux KVMの場合) – QEMU – QEMU(キューエム、キューエミュ、ケム) • Fabrice Bellard(FFmpegの開発者でもある)が 中心となって開発しているオープンソースの

    エミュレーター(模倣する仕組み) • クロスプラットフォームで動作し、Linuxでも WindowsでもmacOSでも動作 • H/Wをエミュレーション(模倣)する”プロセス” • CPU, メモリ, I/Oデバイス(HDD, NW…)…な どが対象 • QEMU単体さえあれば、仮想マシンを構築でき るが、仮想マシンのパフォーマンスが低い傾 向がある • では、どうするかは後述 8 Copyright © 2024, Oracle and/or its affiliates
  7. 【参考】完全仮想化と準仮想化 – 仮想I/Oの高速化 – 完全仮想化 • ハイパーバイザー(今回はLinux KVM)上で動作 するゲストOSの中身に変更を加えずに動作さ せる方式

    • オーバヘッドが大きくなりやすい • ゲストOS<=>ホストOS (ハイパーバイザー) 間の命令変換が必要 • 可搬性は高い • ゲストOSに手を加えることはできないもの は完全仮想化を選択せざるを得ない 準仮想化 • ハイパーバイザー(今回はLinux KVM)上で動作 するゲストOSに変更を加えて性能向上を図っ た方式 • ハイパーバイザーが直接ゲストOSと連携 • 予めハイパーバイザーが静的にゲスト OS<=>ホストOS(ハイパーバイザー)間の命令 を変換しておく • パフォーマンスが高い 9 Copyright © 2024, Oracle and/or its affiliates ハイパーバイザー(Linux KVM) エミュレータ(QEMU) がI/Oデバイスを制御 =QEMUが命令を変換 QEMU ゲストOS QEMU エミュレータ(QEMU) がI/Oデバイスを制御 =命令を変換 所詮僕は仮想マシン… 僕は物理マシンだよ!! (という妄想) ハイパーバイザーが 直接I/Oデバイスを 制御するように変更 =事前に命令を変換 ゲストOS
  8. VMの仕組み(Linux KVMの場合) – virtio – virtio • 仮想マシン向けのI/Oフレームワーク • ホストOSとゲストOSで共有されたメモリ

    上にキューを構築し、キューを利用して データ入出力を実施 • 仮想マシンに対して準仮想化デバイスを提供 10 Copyright © 2024, Oracle and/or its affiliates
  9. VMの仕組み(Linux KVMの場合) – libvirt(d) – libvirt(d) • Red Hat社を中心としたオープンソースプロ ジェクト

    • 仮想化環境管理用の共通APIを提供するライブ ラリ • KVMだけではなく、Xenなどの他の仮想化 ソフトウェアの操作を統一的なAPIで処理 することが目的 • ハイパーバイザーに依存しない • libvirtdというデーモンが実行され、libvirt APIを介してVM(QEMU)を制御するための 窓口になる • libvirtdを経由すればリモートからでも制御 できる • QEMUはlibvirt経由で操作することが多い 11 Copyright © 2024, Oracle and/or its affiliates
  10. VMの仕組み(Linux KVMの場合) – ハイパーバイザー – パイパーバイザー(Linux KVM) • Kernel-based Virtual

    Machineの略 • Linuxに組み込まれているオープンソース の仮想化技術(ハイパーバイザー型) • Linuxそのものをハイパーバイザーとして 機能させることができる • QEMUが作成した仮想マシンを高速に動作させ るようにするためのアクセラレーター • KVMがQEMUと連携して、バックエンド機 能をサポートしたり、代替するイメージ • KVM自身が仮想マシンのエミュレーション をするわけではない • 物理HWと仮想HWの仲介を行う • あくまでもエミュレーションはQEMU のお仕事 12 Copyright © 2024, Oracle and/or its affiliates
  11. ここまでのまとめとKubeVirtの世界 ここまでのまとめ • QEMU: H/Wをエミュレーション(模倣)する(仮想マシンの実態) • virtio: 準仮想化を提供する仮想マシン向けのI/Oフレームワーク • libvirt:

    ハイパーバイザーに依存せず、仮想化環境管理用の共通APIを提供するライブラリ • ハイパーバイザー(Linux KVM): 仮想マシンを高速に動作させるようにするためのアクセラレーター KubeVirt • KVMはLinuxカーネルの機能だし・・・ • K8sはLinuxで動くことが多いし・・・ • ハイパーバイザーのレイヤーがK8sでもいいよね…!! 13 Copyright © 2024, Oracle and/or its affiliates
  12. KubeVirt 101 Oracle Cloud Hangout Café – Season8 #5 14

    Copyright © 2024, Oracle and/or its affiliates
  13. KubeVirt KubeVirt • https://github.com/kubevirt/kubevirt • 最新v1.2.1(2024/5現在) • GA(v1.0)到達は2023/7 • Kubernetes上で仮想マシン(VM)をコンテナとして操作するための仕組み(インタフェース)

    • Kubernetes Operatorを利用して実現 • コンテナ化が難しいVMワークロードもK8s上で管理できる • Red Hat社を中心に開発されているオープンソースソフトウェア(Apache License 2.0) • Red Hat OpenShift VirtualizationやAnthos for VM Runtimeなどで利用 • Oracle Linuxのパッケージ”Oracle Cloud Native Environment(OCNE)”のコンポーネントにも 15 Copyright © 2024, Oracle and/or its affiliates
  14. これだけは抑えたい!! カスタムリソース(CR) VirtualMachine(VM) • KubeVirtにおけるトップレベルのCR • KubernetesのコアリソースであるDeploymentに相当 • templateフィールドにVirtualMachineInstanceリソースを持つ •

    .metadata.nameで指定される名前がそのまま仮想マシン名になる VirtualMachineInstance(VMI) • KubernetesのコアリソースであるPodに相当 • VMに割り当てるCPUやメモリの指定、PVCの指定などの従来のPodで指定するようなフィールド を指定できる • VMで必要なパラメータや実態は本リソースで管理 • DeploymentとPodの関係性と同じ 16 Copyright © 2024, Oracle and/or its affiliates
  15. これだけは抑えたい!! カスタムリソース(CR) 17 Copyright © 2024, Oracle and/or its affiliates

    VirtualMachineInstance Podでの”.spec.containers.resources”に相当する設定値 VMに割り当てるCPUやメモリの要求値やリミットを設 定できる Podでの”.spec.containers[*].volumeMounts” と”.spec.volumes”に相当する設定値。 基本的には”.spec.volumes”にVMイメージを格納しておく PVCに任意のVMイメージを格納しておくData Volume(KubeVirt用のPV)を利用したVM起動ができる (Containerized Data Importer、後述)
  16. これだけは抑えたい!! KubeVirtのアーキテクチャ 20 Copyright © 2024, Oracle and/or its affiliates

    virt-controller • VirtualMachineInstance(VMI)の監視と関連するPodの管理を担当 • VMIリソースに関連づけられたPodのライフサイクルを管理 virt-api • 仮想化関連の操作のエントリーポイントとして機能するHTTP APIサーバ • KubeVirtでの操作のエントリーポイント • KubeVirtでのkube-apiserverのような存在 以前はvirt-controllerとして 1つのコンポーネントだった
  17. これだけは抑えたい!! KubeVirtのアーキテクチャ 22 Copyright © 2024, Oracle and/or its affiliates

    virt-handler • DaemonSetとして各Worker Nodeに配置されるコンポー ネント • VMIリソースを監視し、リソースが変更された場合に必要 な操作を実施 • virt-apiがkube-apiserverであれば、virt-handlerはkubelet のような存在 virt-launcher • VMIリソースにつき、1つのvirt-launcherを作成 • VMIが作成された際に関連する(VMに相当する) Podを起 動する役割を担う • libvirtdとqemuを制御 • VMIが利用するcgroupと(Linux) namespaceを提供するこ とが目的 • virt-launcherの制御はvirt-handlerによって実施
  18. これだけは抑えたい!! KubeVirtのアーキテクチャ 23 Copyright © 2024, Oracle and/or its affiliates

    virt-operator インストール&管理 インストール&管理 KubeVirtコンポーネントのライフサイクル 管理やインストールを担当
  19. これだけは抑えたい!! VM(Pod)が起動するまでの流れ 24 Copyright © 2024, Oracle and/or its affiliates

    VMの作成 リクエスト ① ② ③ VMの 起動状態を更新 ④ ② VMの起動状態 を連携 VMの起動を 指示 ⑤ ② Podの スケジューリングと起動 ⑥ libvirtのAPIを経由し QEMUを操作 ①~②までは従来のKubernetesの処理 ③以降がKubeVirt Operatorと関連コンポーネントによる処理
  20. これだけは抑えたい!! VMの操作コマンド virtctl(kubectl virt) • VMの起動/停止 • VMの一時停止/再開 25 Copyright

    © 2024, Oracle and/or its affiliates virtctl start <VM名> virtctl stop <VM名> virtctl pause vm <VM名> virtctl unpause vm <VM名> virtctl pause vmi <VMI名> or or virtctl unpause vmi <VMI名> VM or VMIリソースの作成後に利用できる
  21. KubeVirtをとりあえず触ってみよう https://kubevirt.io/labs/manifests/vm.yaml ↑こちらのデモ用Manifestを利用 • 中身はVMリソース • VMリソース名および仮想マシン名は”testvm” • 軽量なLinuxディストリビューションである”Cirros”イメージを利用 •

    デモ用のためデータの永続化等は含まれていない(永続化の方法は後述) • 手順 • VMリソースの作成 • VMの起動 • コンソール接続(ただし、一般的なVMイメージはパスワード認証をサポートしないため、あまり利用しない) 26 Copyright © 2024, Oracle and/or its affiliates kubectl apply -f https://kubevirt.io/labs/manifests/vm.yaml virtctl start testvm virtctl console testvm SSHやVNC接続は後述
  22. KubeVirt 201 Oracle Cloud Hangout Café – Season8 #5 27

    Copyright © 2024, Oracle and/or its affiliates
  23. 実践!!KubeVirt VM構築編 • VMの共通設定(テンプレート) • NetworkPolicy • ネットワーク • ストレージ

    • ヘルスチェック VM操作編 • VMへのアクセス – SSH, VNC – • cloud-init • Containerized Data Importer(CDI) • VMのクローン/エスクポート • ライブマイグレーション • ホットプラグ 28 Copyright © 2024, Oracle and/or its affiliates
  24. 実践!!KubeVirt VM構築編 • VMの共通設定(テンプレート) • NetworkPolicy • ネットワーク • ストレージ

    • ヘルスチェック VM操作編 • VMへのアクセス – SSH, VNC – • cloud-init • Containerized Data Importer(CDI) • VMのクローン/エスクポート • ライブマイグレーション • ホットプラグ 29 Copyright © 2024, Oracle and/or its affiliates
  25. VMの共通設定(テンプレート) VirtualMachineInstancetype • VMに割り当てるCPUやメモリなどのリソースを中心としたパラメータセット • “VirtualMachineInstancetype(VirtualMachineClusterInstancetypes)”で作成 • VMリソースから利用する場合はテンプレート名を”.spec.instancetype”で指定 • 以前はPreset(VirtualMachineInstancePreset)と呼ばれる仕組みも存在したが、

    v0.57.0からdeprecated VirtualMachinePreference • VMリソースで指定されないフィールドをカプセル化するためのパラメータセット • ≒ VMリソースで指定されないフィールドのデフォルト値を規定 • “VirtualMachinePreference(VirtualMachineClusterPreference)”で作成 • ユーザが値を指定することによってオーバーライドできる • VMリソースから利用する場合はテンプレート名を”.spec.preference”で指定 30 Copyright © 2024, Oracle and/or its affiliates KubeVirt公開済みのテンプレート https://github.com/kubevirt/common- instancetypes U/Oシリーズなどのスペック/ワークロード に応じたテンプレートを提供
  26. 【補足】 VirtualMachineInstancetype/VirtualMachinePreferenceを利用したVMリソース 31 Copyright © 2024, Oracle and/or its affiliates

    “.spec.domain.cpu(memory).guest”に割り当てられる値。 ”.spec.domain.resources.requests.cpu(memory)” 相当の設定。 ちなみに両方設定された場合は後者が優先
  27. NetworkPolicy KubeVirtで作成したVMへはコンテナと同様のNetworkPolicyを適用できる 32 Copyright © 2024, Oracle and/or its affiliates

    VMへのアクセスを全拒否するポリシー VMへのHTTP/HTTPSトラフィックのみを許可するポリシー VM(I)リソースのlabel を指定すればOK
  28. ネットワーク KubeVirtでは2つのインタフェースからネットワークが構築される 33 Copyright © 2024, Oracle and/or its affiliates

    VM Pod • VM側のネットワークインタフェース(.spec.domain.devices.interfaces) • いわゆるip(f)configなどで表示/操作されるもの • Kubernetes/Pod側のネットワークと紐付けることによってネットワークに接続 • ドキュメントでは、”フロントエンド”とも呼ばれている • 以下をサポート • bridge: Linux Bridgeを利用 • slirp(QEMUユーザネットワーキングモード) : QEMU提供のNWを利用 • sriov(SR-IOV PCIデバイスでのパススルー接続) : ホスト側のNWアダプタを利用 • masquerade: iptablesを利用したNAT接続 • Kubernetes/Pod側のネットワークインタフェース(.spec.networks) • いわゆるCNI(Container Network Interface)で管理されるもの • VM側のネットワークインタフェースに対して、どの論理/物理デバイスに接続している かを宣言 • ドキュメントでは、 ”バックエンド”とも呼ばれている • 以下をサポート • pod: デフォルトネットワーク • multus: Multus CNIを利用したセカンダリーネットワークの接続
  29. 【補足】ネットワークの設定例 34 Copyright © 2024, Oracle and/or its affiliates 対応させる

    VM側のネットワーク(フロントエンド) Kubernetes/Pod側のネットワーク(バックエンド)
  30. ストレージ KubeVirtでは2つのボリュームから永続ボリュームが構築される 35 Copyright © 2024, Oracle and/or its affiliates

    VM Pod • VM側のボリューム(.spec.domain.devices.disks) • 以下をサポート • lun(ホスト側のiSCSIターゲットに対してマッピングできる論理Volume) • disk(汎用ディスクとしての利用) • cdrom(CD–ROMドライブとしてストレージを利用、Read-Only) • filesystem(共有ファイルシステムとしての利用) • Kubernetes/Pod側のボリューム(.spec.volumes) • いわゆるCSI(Container Storage Interface)で管理されるもの • 以下をサポート • cloudInitNoCloud/cloudInitConfigDrive: cloud-initの設定 • pvc(PersistentVolumeClaim) • ephemeral: PVCと共に利用できるVM上のローカルRead-Only Volume • containerDisk: VMイメージ保存/配布用Volume(raw or qcow2形式) • emptyDisk: KubernetesのemptyDirと同様 • hostDisk: Worker Node上のVolumeを利用 • configMap/secret • serviceAccount • downwardMetrics: ホストのメトリクスを提供(vhostmd相当) PVCを利用する場合は VolumeSnapshotClass/VolumeSnapshot が必須 ホストに関する メトリクスを提 供するデーモン
  31. 【参考】VolumeSnapshotClass/VolumeSnapshot 36 Copyright © 2024, Oracle and/or its affiliates VolumeSnapshotClass

    • https://kubernetes.io/ja/docs/concepts/storage/volume-snapshot-classes/ • VolumeSnapshotContent(スナップショットの実体)をプロビジョニング(作成)する際のストレージ仕様 に関する情報を提供 • CSIドライバーのみ対応 • PersistentVolumeから見たStorageClassに相当するリソース VolumeSnapshot • https://kubernetes.io/ja/docs/concepts/storage/volume-snapshots/ • VolumeSnapshotClassを利用してVolumeSnapshotContentを作成するためのリクエスト • PersistentVolumeから見たPersistentVolumeClaim(PVC)に相当するリソース KubeVirtではVMのストレージ状態をキャプチャするために利用
  32. 【参考】ストレージの設定例 37 Copyright © 2024, Oracle and/or its affiliates 対応させる

    VM側のボリューム Kubernetes/Pod側のボリューム disk busの指定 virtioを利用する場合 Volumeは”/dev/vda”でマウントされる
  33. 【参考】watchdog 39 Copyright © 2024, Oracle and/or its affiliates VMのウォッチドックタイマー相当の設定。

    VMが応答しなくなった際のアクションを指定 できる ”poweroff”, ”shutdown”,”reset”が利用できる Watchdogのプログラムを実行するbusybox
  34. 実践!!KubeVirt VM構築編 • VMの共通設定(テンプレート) • NetworkPolicy • ネットワーク • ストレージ

    • ヘルスチェック VM操作編 • VMへのアクセス – SSH, VNC – • cloud-init • Containerized Data Importer(CDI) • VMのクローン/エスクポート • ライブマイグレーション • ホットプラグ 40 Copyright © 2024, Oracle and/or its affiliates
  35. VMへのアクセス – SSH, VNC – SSH • ServiceやIngressを利用したSSH接続ができる(virtctlで公開) • 従来のSSHアクセスで接続(公開鍵設定は後述するcloud-initで対応できる)

    • ローカルへのプロキシ(ProxyCommand利用時など) VNC • remote-viewerで実行する場合(VM側のremote-viewerのインストールも必要) • vnc-proxyのみを実行したい場合(任意のVNCクライアント利用時など) 41 Copyright © 2024, Oracle and/or its affiliates virtctl expose vmi vm1 --name=vm1-ssh --port=20222 --target-port=22 --type=NodePort ssh -i ~/.ssh/id_rsa [email protected] -p 20222 Serviceが作成される virtctl vnc testvm --port 5901 virtctl vnc --proxy-only --port 5901 testvm virtctl ssh -i ~/.ssh/id_rsa testvm -p 20222 scpも可 virtctl ssh -i ~/.ssh/id_rsa testvm -p 20222 --local-ssh testvm
  36. cloud-init cloud-initの他にWindows用Startup ScriptのSysPrepやContainer OS(旧CoreOS)用のIgnitionもサポート 42 Copyright © 2024, Oracle and/or

    its affiliates テキスト、base64エンコード文字列や Kubernetes Secretでの定義をする。 ”cloudinitConfigDrive”形式も利用できる。 この例では、公開鍵の登録を実施。 これにより、シームレスにSSH接続できる 対応させる
  37. Containerized Data Importer(CDI) Containerized Data Importer(CDI) • DataVolume(=PVCをVMディスクとして利用可能にしたCR)を利用してVMイメージをインポート • ユースケースは主に以下

    • ディスクイメージをWebサーバやコンテナレジストリからインポート • 既存のPVCをベースにVMクローンを作成 • ローカルディスクをDataVolumeにアップロード • CDIにはKubeVirtのコアコンポーネントとは別に別途OperatorとCRDのインストールが必要 43 Copyright © 2024, Oracle and/or its affiliates raw or qcow2形式
  38. 【補足】Containerized Data Importer(CDI)の利用 44 Copyright © 2024, Oracle and/or its

    affiliates 対応させる CDI=>定義はPVCと類似 Ubuntuイメージ
  39. VMのクローン/エスクポート クローン(Feature Gate有効化必須) VirtualMachineClone(CR)を利用した作成 エクスポート/Snapshot (Feature Gate化有効必須) ※VirtualMachineExport(CR)を利用した作成もOK 45 Copyright

    © 2024, Oracle and/or its affiliates virtctl vmexport create vm1-export –vm=vm1 virtctl vmexport create snap1-export --snapshot=snap1 virtctl vmexport create pvc1-export --pvc=pvc1 現状はVirtualMachineと VirtualMachineSnapshotのみサポート。 将来的には他のリソースもサポート予定
  40. ライブマイグレーション ライブマイグレーション=仮想マシンを稼働させたまま、別のホスト(Worker Node)に移動する ※VirtalMachineInstanceMigration(CR)を利用した作成も可 ※DataVolume(CDI)を利用する場合はStorageClass/PVCでReadWriteMany(RWX)のサポートが必須 サポートするライブマイグレーション戦略 1. (デフォルト) PreCopy =>

    B/Gデプロイのイメージ • ターゲットVMを作成後にソースVMを実行したまま状態をコピーし、完了後にソース元を削除 2. Post-Copy => カナリアリリースのイメージ • ターゲットVMとソースVMを両方稼働させながら、データが存在するVMにアクセス • ソースVMの全てのデータをコピー完了後にソースVMを削除 3. Auto-Converge • 移行アルゴリズムは変えずに、VMのCPUリソースをスロットリングすることで移行スピードを上げる 46 Copyright © 2024, Oracle and/or its affiliates virtctl migrate vmi-fedora virtctl migrate-cancel vmi-fedora 対象はVMI 最もシンプルかつ制御しやすい
  41. ホットプラグ ホットプラグ=VMをオンライン(in-place)の状態でデバイスやリソースを変更すること KubeVirtでは以下のリソースをホットプラグ(アンプラグ)できる • CPU/メモリ • ネットワーク • ストレージ ※今回はシンプルなCPU/メモリについて紹介

    • 以下のFeature Gateを有効化 • LiveMigrate • VMLiveUpdateFeatures • “kubectl patch”コマンドでVMの”.spec.template.spec.domain.cpu(memory)”を変更 47 Copyright © 2024, Oracle and/or its affiliates kubectl patch vm test-vm --type='json’ -p='[{"op": "replace", "path": "/spec/template/spec/domain/cpu/sockets", "value": 5}]' kubectl patch vm vm-cirros --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/domain/memory/guest", "value": "256Mi"}]'
  42. DEMO Oracle Cloud Hangout Café – Season8 #5 48 Copyright

    © 2024, Oracle and/or its affiliates
  43. 実践!!KubeVirt VM構築編 • VMの共通設定(テンプレート) • NetworkPolicy • ネットワーク • ストレージ

    • ヘルスチェック VM操作編 • VMへのアクセス – SSH, VNC – • cloud-init • Containerized Data Importer(CDI) • VMのクローン/エスクポート • ライブマイグレーション • ホットプラグ 49 Copyright © 2024, Oracle and/or its affiliates
  44. デモシナリオ 1. VMテンプレートを利用してVMリソースを作成(OKE) • 作成するVMはContainerized Data Importer(CDI)を利用してストレージ領域を作成し、ubuntuを プロビジョニング • 作成するVMはcloud-initにより、公開鍵情報を登録

    • LoadBalancer経由でSSHアクセス 2. ライブマイグレーションをやってみる(minikube) 50 Copyright © 2024, Oracle and/or its affiliates OKEだと うまくいかなかったので。。。
  45. まとめ KubeVirt • Kubernetes上でPodと同じようなインタフェースで制御できるVM管理の仕組みを提供 • VMのテンプレート機能、ホットプラグ/アンプラグやライブマイグレーションなどの従来のハイパー バイザーに劣らない機能を提供 • 従来のKVM/QEMUで出来ていたことは大体できそう(今後の開発も含めて) KubeVirtのユースケース

    • コンテナとVMを同じインタフェース、環境でデプロイできる • どうしてもコンテナ化できないワークロードを同じKubernetesクラスタで管理できる • スケジューリングやオートヒーリングなどのKubernetesのメリットを享受できる • (今日は紹介できなかったのですが)GitOpsなどのKubernetesエコシステムも享受できる KubeVirtを使えば、IaaS基盤を構築できることも夢じゃない…!? 52 Copyright © 2024, Oracle and/or its affiliates 昨今のPlatform Engineeringにも一役買うかも…!?
  46. 参考資料 KubeVirt公式レポジトリ&ドキュメント • https://kubevirt.io/ • https://github.com/kubevirt デモ • https://github.com/oracle-japan/ochacafe-kubevirt 書籍

    • https://learning.oreilly.com/library/view/what-is-kubevirt/9781098133429/ 参考記事 • https://blog.inductor.me/entry/2023/07/14/143631 @inductorさん • https://techblog.yahoo.co.jp/entry/2020122430052973 @LINEヤフーさんTech Blog • https://rheb.hatenablog.com/archive/category/Red%20Hat%20OpenShift%20Virtualization @Red Hatさん 53 Copyright © 2024, Oracle and/or its affiliates