はじめに
- エンタープライズ向けコンテナアプリケーション・プラットフォームである「Red Hat OpenShift Container Platform」の標準機能である「OpenShift Virtualization (OCPv)」では、コンテナのみならずRHELやWindowsのVirutalMachineをホスティングする事ができます
- 今回はAWSのManaged Service板OpenShiftである「Red Hat OpenShift Service on AWS (通称ROSA)」を使って、その機能を試します
- なお、ROSAにおける「OpenShift Virtualization」のセットアップについては以下の記事をご参照ください。
やること
- 今回はRed Hatが提供しているRHELのKVM Guset Imageを使って、明示的にGuest OSのVerを指定してVMを建てます
- Red HatのKVM仮想化製品(Red Hat Virtualization, OpenStack Platform, そしてOpenShift Virtualization)上でGuestOSとしてのRHELをVMとして建てる場合に使っても良いOS ImageがInternetに公開されています
- 今回はRHEL7.9(Red Hat Enterprise Linux 7.9 Update KVM Guest Image (20220222))を使わせてもらいましょう。
- 具体的なImageのURLは「今すぐダウンロードする」ボタンを右クリックしてURLをコピーすればOK。
- YamlファイルをApplyする方法でVMを建ててみます。
下準備
- ROSAでOCPvが使えるようにしておく。
- NameSpace
virtual-machine
を作っておく。
YAMLファイルを用意
- テンプレートはこちらを参考にしました。
- 今回使うものを以下に示します。
rhel79-20220222.yaml
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
labels: #管理しやすい名前をつけましょう!
app: rhel79-20220222
name: rhel79-20220222
spec:
dataVolumeTemplates:
- apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
name: rhel79-20220222
spec:
source:
http: #先程コピーしたKVM Guest ImageのURLを貼ります。
url: https://access.cdn.redhat.com/content/origin/files/sha256/46/46ed32cbe8183930f2488972a6d13bae2053e23c2f8ab8afa4d6e6757e9a7130/rhel-server-7.9-update-12-x86_64-kvm.qcow2?user=fe5140068751d08a0afda5a8f472365e&_auth_=1714104535_5e34e2ddfde1452e0ff9a5bdb8d4ddd9
storage:
resources:
requests: #永続ストレージの容量を指定します
storage: 30Gi
running: true
template:
metadata:
labels:
kubevirt.io/domain: rhel79-20220222
spec:
architecture: amd64
domain:
cpu: #1ソケットあたりのCore数, ソケット数, スレッド数を指定します
cores: 1
sockets: 2
threads: 1
devices:
disks:
- disk:
bus: virtio
name: rootdisk
- disk:
bus: virtio
name: cloudinitdisk
resources:
requests: #メモリ容量です
memory: 8Gi
evictionStrategy: LiveMigrate
volumes:
- dataVolume:
name: rhel79-20220222
name: rootdisk
- cloudInitNoCloud: # RHELのuser/passwordを指定してます。お好きなものをどうぞ。
userData: |-
#cloud-config
user: cloud-user
password: 'cloud-password'
chpasswd: { expire: False }
name: cloudinitdisk
YAMLをApplyする
- NameSpace(Project)を指定して、上記のYAMLを以下コマンドで適用します。
oc project virtual-machine
oc apply -f rhel79-20220222.yaml
- もしくは、OpenShiftのコンソール画面からもYAMLのApplyが可能です。
- 作成をクリック。
VMが起動する
- 2分くらい待てば起動しました!
- 今回はRWXでProvisionしたPVを使っていないため、
Not migratable
ってなってます。- Live Migrationしたい場合は、OpenShift Data Foudation (ODF) 等のSDSを用いて、RWXでPVをProvisioningできるStorageClassが使える様にしてください。
- なお、ROSAにおけるODFの利用は現在サポート対象外です。ご注意ください。
VMにログインしてみる
- 先ほど設定したuser/passwordを使ってログインできるかやってみましょう。
- user: cloud-user
- password: cloud-password
- できました。
おわりに
- RHELをマイナーバージョンレベルで指定して、YAMLファイルから超簡単にVMを建ててみました。
- コンテナの世界におけるDeployent.yamlのApplyと同じ様な雰囲気で、VMをDeployできる感じがおわかり頂けたかと思います。