5. 仮想マシンをどのように管理すべきか?
5
これまでの仮想マシン管理
HW HW HW
HyperVisor
VM VM VM VM VM
Container Orchestration
コンテナ基盤
仮想化
基盤
以前は仮想化基盤とコンテナ基盤を別々のプラットフォームとし
て管理する必要があった
Cloud Nativeな仮想マシン管理
HW HW HW
Container Orchestration
Cloud Nativeな仮想化ではコンテナ基盤の中で仮想マシンも
管理することが可能に => 管理の一元化
VM VM
コンテナ基盤
6. OpenShift Virtualization
6
● OpenShift が標準で提供するサーバー仮想化機能
○ Linux 仮想化機能KVM に基づくサーバー仮想化
○ コンテナ内で実行、コンテナで管理
○ Linux, Windows 仮想マシンをサポート
● Kubernetes の作法で VM を作成
○ ポリシーに基づくスケジューリング
○ 宣言的なデプロイ
● OpenShift のリソース/サービスとの統合
○ コンピュート: Pod, Project
■ CPU / メモリの割当、名前空間
○ ネットワーク: Service, Route
■ クラスタ内部の仮想ネットワーク、外部ネットワーク接続
○ ストレージ: Persistent Volume, Storage Class
■ 永続ボリューム
○ 運用管理系/開発系サービス
■ メトリクス監視 / ログ管理、発報、バックアップ / リストア、アプリ死活監視 (Probe)
■ CI/CD パイプライン、GitOps
Virtual Machine
Red Hat OpenShift
OpenShift Virtualization
7. KubeVirt
7
Kubernetes上で仮想マシンを動かすことを目的としたオープンソースプロジェクト
● 2016年にRed Hatがプロジェクトを
スタート
● 2017年初にOSSとして公開
● 2019年にCNCFプロジェクトの一部に
● 2023年7月にversion1.0をリリース
The v1.0 release signifies the incredible growth that the community has
gone through in the past six years from an idea to a production-ready
Virtual Machine Management solution. The next stage with v1.0 is the
additional focus on maintaining APIs while continuing to grow the
project. This has led KubeVirt to adopt community practices from
Kubernetes in key parts of the project.
v1.0のリリースは、過去6年間にコミュニティがアイデアから
本番稼動可能な仮想マシン管理ソリューションまで、信じられないほどの成
長を遂げたことを意味します。
v1.0の次の段階は、APIを維持しながらプロジェクトを継続的に成長させる
ことにさらに重点を置くことです。
KubeVirtはプロジェクトの鍵となる箇所に
おいて、Kubernetesのコミュニティ・プラクティスを採用していきます。
What does v1.0 mean to the community?
KubeVirtのコミュニティブログより
8. Linux User Land
KVM : Kernel-based Virtual Machine
8
● Linux カーネルが持つ仮想化機能
○ Kernel Land で稼働するカーネルモジュール
● KVM + QEMU + libvirt のスタックで仮想化
○ QEMU
■ 仮想マシンのハードウェアエミュレーションを提供
■ User Land で Linux プロセス (qemu-kvm) として稼働
○ libvirt
■ 仮想マシンの管理レイヤーを提供
■ User Land で Linux プロセス (libvirtd) として稼働
● Red Hat Enterprise Linux Kernel のコアコンポーネント
○ 10 年以上にわたって本番利用されている実績
■ Red Hat Enterprise Linux
■ Red Hat Virtualization
■ Red Hat OpenStack Platform
の全てで KVM + QEMU + libvirt を使用
Hardware
Linux Kernel Land
KVM
QEMU
libvirt
VM
QEMU
libvirt
VM
QEMU
libvirt
VM
9. OpenShift
OpenShift Virtualization での実装
9
Hardware
RHCOS Kernel Land
KVM
QEMU
libvirt
VM
Project
(Namespace)
QEMU
libvirt
VM
QEMU
libvirt
VM
● KVM は RHCOS の Kernel Land で実行し、OpenShift 上の仮想マ
シンで共有される。
● QEMU + libvirt は OpenShift の Project 内でコンテナ(Pod) の形
で実行される
○ virt-launcher Pod
■ qemu-kvm と libvirtd が一つのコンテナに同梱
■ 1 つの VM に対して 1 つの virt-launcher Pod が対応
■ “コンテナ化された仮想マシン”
○ virt-laucher Pod に CPU/RAM、ネットワーク、ストレージなどのリソー
スを割り当てる
○ Project 内に複数の VM を作ることも可能
● “Virtual Machine” カスタムリソースでVM を作成する
○ virt-launcher Pod を作るのではない
16. VM の管理 - Configuration
16
● VM の構成変更
○ NIC の追加 / 編集 / 削除
○ 仮想ディスクの追加 / 編集 / 削除
○ スケジュールポリシー
○ 環境情報 (Secret, ConfigMap など)
● VM 無停止の変更反映(Hot-plug) は今後サポート予定
17. VM の管理 - Metrics
17
● VM ごとのメトリクス情報
○ CPU / メモリ 使用量
○ ネットワーク In / Out スループット
○ ストレージ IOPS / スループット, Read / Write
○ ライブマイグレーション
18. 詳細なメトリクス
18
● VM のメトリクスはOpenShift 標準のメトリクスサービス
(OpenShift Monitoring) で収集
● VM 単位で収集/ 閲覧可能なメトリクスの例
○ Active memory
○ Active CPU time
○ Network in/out errors, packets, and bytes
○ Storage R/W IOPS, latency, and throughput
● カスタムのダッシュボードを作成可能
19. サポートするゲストOS
19
● Red Hat Certified ゲスト OS
○ Red Hat Enterprise Linux
■ RHEL 6, 7, 8, 9
○ Microsoft Windows
■ Windows 10, 11
■ Windows Server 2012R2, 2016, 2019, 2022
● その他のゲストOS についてはThird-Party Software Support
Policy に沿ってサポート提供
23. More information
23
● Documentation:
○ OpenShift Virtualization: https://docs.openshift.com
○ KubeVirt: https://kubevirt.io
● Demos and video resources:
https://www.youtube.com/playlist?list=PLaR6Rq6Z4IqeQeTosfoFzTyE_QmWZW6n_