第7章 仮想マシン
7.1. Red Hat イメージからの仮想マシンの作成 リンクのコピーリンクがクリップボードにコピーされました!
7.1.1. Red Hat イメージからの仮想マシン作成の概要 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat イメージは ゴールデンイメージ です。これらは、セキュアなレジストリー内のコンテナーディスクとして公開されます。Containerized Data Importer (CDI) は、コンテナーディスクをポーリングしてクラスターにインポートし、スナップショットまたは永続ボリュームクレーム (PVC) として openshift-virtualization-os-images プロジェクトに保存します。
Red Hat イメージは自動的に更新されます。これらのイメージの自動更新を無効にして再度有効にすることができます。Red Hat ブートソースの更新の管理 を参照してください。
クラスター管理者は、OpenShift Virtualization Web コンソール で Red Hat Enterprise Linux (RHEL) 仮想マシンの自動サブスクリプションを有効にできるようになりました。
次のいずれかの方法を使用して、Red Hat が提供するオペレーティングシステムイメージから仮想マシンを作成できます。
デフォルトの openshift-* namespace に仮想マシンを作成しないでください。代わりに、openshift 接頭辞なしの新規 namespace を作成するか、既存 namespace を使用します。
7.1.1.1. ゴールデンイメージについて リンクのコピーリンクがクリップボードにコピーされました!
ゴールデンイメージは、新しい仮想マシンをデプロイメントするためのリソースとして使用できる、仮想マシンの事前設定されたスナップショットです。たとえば、ゴールデンイメージを使用すると、同じシステム環境を一貫してプロビジョニングし、システムをより迅速かつ効率的にデプロイメントできます。
7.1.1.1.1. ゴールデンイメージはどのように機能しますか? リンクのコピーリンクがクリップボードにコピーされました!
ゴールデンイメージは、リファレンスマシンまたは仮想マシンにオペレーティングシステムとソフトウェアアプリケーションをインストールして設定することによって作成されます。これには、システムのセットアップ、必要なドライバーのインストール、パッチと更新の適用、特定のオプションと設定の指定が含まれます。
ゴールデンイメージは、作成後、複数のクラスターに複製してデプロイできるテンプレートまたはイメージファイルとして保存されます。ゴールデンイメージは、メンテナーによって定期的に更新されて、必要なソフトウェア更新とパッチが組み込まれるため、イメージが最新かつセキュアな状態に保たれ、新しく作成された仮想マシンはこの更新されたイメージに基づいています。
7.1.1.1.2. Red Hat のゴールデンイメージの実装 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat は、Red Hat Enterprise Linux (RHEL) のバージョンのレジストリー内のコンテナーディスクとしてゴールデンイメージを公開します。コンテナーディスクは、コンテナーイメージレジストリーにコンテナーイメージとして保存される仮想マシンイメージです。公開されたイメージは、OpenShift Virtualization のインストール後に、接続されたクラスターで自動的に使用できるようになります。イメージがクラスター内で使用可能になると、仮想マシンの作成に使用できるようになります。
7.1.1.2. 仮想マシンブートソースについて リンクのコピーリンクがクリップボードにコピーされました!
仮想マシンは、仮想マシン定義と、データボリュームによってバックアップされる 1 つ以上のディスクで構成されます。仮想マシンテンプレートを使用すると、事前定義された仕様を使用して仮想マシンを作成できます。
すべてのテンプレートにはブートソースが必要です。ブートソースは、設定されたドライバーを含む完全に設定されたディスクイメージです。各テンプレートには、ブートソースへのポインターを含む仮想マシン定義が含まれています。各ブートソースには、事前に定義された名前および namespace があります。オペレーティングシステムによっては、ブートソースは自動的に提供されます。これが提供されない場合、管理者はカスタムブートソースを準備する必要があります。
提供されたブートソースは、オペレーティングシステムの最新バージョンに自動的に更新されます。自動更新されるブートソースの場合、永続ボリュームクレーム (PVC) とボリュームスナップショットはクラスターのデフォルトストレージクラスで作成されます。設定後に別のデフォルトストレージクラスを選択した場合は、以前のデフォルトストレージクラスで設定されたクラスター namespace 内の既存のブートソースを削除する必要があります。
7.1.2. テンプレートからの仮想マシンの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用して、Red Hat テンプレートから仮想マシン (VM) を作成できます。
7.1.2.1. 仮想マシンテンプレートについて リンクのコピーリンクがクリップボードにコピーされました!
仮想マシンテンプレートを使用すると、仮想マシンを簡単に作成できます。
- ブートソースを使用して作成を迅速化する
使用可能なブートソースが設定されているテンプレートを使用すると、仮想マシンの作成を効率化できます。ブートソースのあるテンプレートには、カスタムラベルがない場合、Available boot source ラベルが付けられます。
ブートソースのないテンプレートには、Boot source required というラベルが付けられます。詳細は、ブートソースの自動更新の管理 を参照してください。
- 仮想マシンを起動する前にカスタマイズする
仮想マシンを起動する前に、ディスクソースと仮想マシンパラメーターをカスタマイズできます。
注記すべてのラベルとアノテーションとともに仮想マシンテンプレートをコピーすると、新しいバージョンの Scheduling、Scale、and Performance (SSP) Operator がデプロイされたときに、そのバージョンのテンプレートが非推奨に指定されます。この指定は削除できます。Web コンソールを使用した仮想マシンテンプレートのカスタマイズ 参照してください。
- シングルノード OpenShift
-
ストレージの動作の違いにより、一部のテンプレートはシングルノード OpenShift と互換性がありません。互換性を確保するには、データボリュームまたはストレージプロファイルを使用するテンプレートまたは仮想マシンに
evictionStrategyフィールドを設定しないでください。
7.1.2.2. テンプレートから仮想マシンを作成する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用して、使用可能なブートソースを持つテンプレートから仮想マシンを作成できます。
オプション: 仮想マシンを起動する前に、データソース、cloud-init、SSH キーなどのテンプレートまたは仮想マシンパラメーターをカスタマイズできます。
手順
-
Web コンソールで Virtualization
Catalog に移動します。 利用可能なブートソース をクリックして、テンプレートをブートソースでフィルタリングします。
カタログにはデフォルトのテンプレートが表示されます。All Items をクリックして、フィルターに使用できるすべてのテンプレートを表示します。
- テンプレートタイルをクリックして詳細を表示します。
仮想マシンの Quick create VirtualMachine をクリックして、テンプレートから VM を作成します。
オプション: テンプレートまたは仮想マシンパラメーターをカスタマイズします。
- Customize VirtualMachine をクリックします。
- Storage または Optional parameters をデプロイメントして、データソース設定を編集します。
VirtualMachine パラメーターのカスタマイズ をクリックします。
Customize and create VirtualMachine ペインには、Overview、YAML、Scheduling、Environment、Network interfaces、Disks、Scripts、および Metadata タブが表示されます。
- 仮想マシンの起動前に設定する必要があるパラメーター (cloud-init や静的 SSH キーなど) を編集します。
Create VirtualMachine をクリックします。
VirtualMachine details ページには、プロビジョニングステータスが表示されます。
7.1.2.3. Web コンソールを使用した仮想マシンテンプレートのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
仮想マシンを起動する前に、データソース、cloud-init、SSH キーなど、仮想マシンまたはテンプレートのパラメーターを変更することで、既存の仮想マシン (VM) テンプレートをカスタマイズできます。テンプレートをコピーし、すべてのラベルとアノテーションを含めてテンプレートをカスタマイズすると、新しいバージョンの Scheduling、Scale、and Performance (SSP) Operator がデプロイされたときに、カスタマイズしたテンプレートが非推奨に指定されます。
この非推奨の指定は、カスタマイズしたテンプレートから削除できます。
手順
-
Web コンソールで Virtualization
Templates に移動します。 - 仮想マシンテンプレートのリストから、非推奨とマークされているテンプレートをクリックします。
- Labels の近くにある鉛筆アイコンの横にある Edit をクリックします。
次の 2 つのラベルを削除します。
-
template.kubevirt.io/type: "base" -
template.kubevirt.io/version: "version"
-
- Save をクリックします。
- 既存の Annotations の数の横にある鉛筆アイコンをクリックします。
次のアノテーションを削除します。
-
template.kubevirt.io/deprecated
-
- Save をクリックします。
7.1.2.4. Web コンソールでのカスタム仮想マシンテンプレートの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールで YAML ファイルの例を編集して、仮想マシンテンプレートを作成します。
手順
-
Web コンソールのサイドメニューで、Virtualization
Templates をクリックします。 -
オプション: Project ドロップダウンメニューを使用して、新しいテンプレートに関連付けられたプロジェクトを変更します。すべてのテンプレートは、デフォルトで
openshiftプロジェクトに保存されます。 - Create Template をクリックします。
- YAML ファイルを編集して、テンプレートパラメーターを指定します。
Create をクリックします。
テンプレートが Templates ページに表示されます。
- オプション: Download をクリックして、YAML ファイルをダウンロードして保存します。
7.1.2.5. カスタム namespace へのテンプレートの追加 リンクのコピーリンクがクリップボードにコピーされました!
Scheduling, Scale, and Performance (SSP) Operator は、デフォルトで仮想マシンテンプレートを openshift namespace にデプロイします。これらのテンプレートをカスタム namespace でも公開するには、HyperConverged カスタムリソース (CR) の commonTemplatesNamespace フィールドを設定します。テンプレートがカスタム namespace に同期されたら、そこでテンプレートを変更または削除できます。
openshift namespace 内のテンプレートは編集しないでください。この namespace は SSP Operator によってリコンサイルされ、変更が上書きされます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 - cluster-admin 権限を持つユーザーとしてログインしている。
手順
オプション: カスタム namespace がまだ存在しない場合は作成します。
oc create namespace <custom_namespace>
$ oc create namespace <custom_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション:
openshiftnamespace 内のテンプレートのリストを表示します。oc get templates -n openshift
$ oc get templates -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、デフォルトのエディターで
HyperConvergedCR を開きます。oc edit hco -n openshift-cnv kubevirt-hyperconverged
$ oc edit hco -n openshift-cnv kubevirt-hyperconvergedCopy to Clipboard Copied! Toggle word wrap Toggle overflow commonTemplatesNamespaceフィールドを追加し、ターゲット namespace を設定します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存して終了します。SSP Operator により、カスタム namespace 内でテンプレートが作成または更新されます。
カスタム namespace 内のテンプレートを検証します。
oc get templates -n <custom_namespace>
$ oc get templates -n <custom_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.2.6. カスタム namespace からのテンプレートの削除 リンクのコピーリンクがクリップボードにコピーされました!
カスタム namespace から仮想マシンテンプレートを削除するには、HyperConverged カスタムリソース (CR) から commonTemplateNamespace 属性を削除し、そのカスタム namespace から各テンプレートを削除します。
手順
以下のコマンドを実行して、デフォルトエディターで
HyperConvergedCR を編集します。oc edit hco -n openshift-cnv kubevirt-hyperconverged
$ oc edit hco -n openshift-cnv kubevirt-hyperconvergedCopy to Clipboard Copied! Toggle word wrap Toggle overflow commonTemplateNamespace属性を削除します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow HyperConvergedCR から削除したカスタム namespace から、特定のテンプレートを削除します。oc delete templates -n <custom_namespace> <template_name>
$ oc delete templates -n <custom_namespace> <template_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
テンプレートがカスタム namespace から削除されたことを確認します。
oc get templates -n <custom_namespace>
$ oc get templates -n <custom_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.3. インスタンスタイプからの仮想マシンの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用して、インスタンスタイプから仮想マシン (VM) を作成できます。
インスタンスタイプからの仮想マシンの作成は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
7.1.3.1. インスタンスタイプからの仮想マシンの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用して、インスタンスタイプから仮想マシンを作成できます。
手順
-
Web コンソールで、Virtualization
Catalog に移動し、InstanceTypes タブをクリックします。 起動可能なボリュームを選択します。
注記ボリュームテーブルには、
instancetype.kubevirt.io/default-preferenceラベルを持つopenshift-virtualization-os-imagesnamespace 内のボリュームのみがリストされます。- インスタンスタイプのタイルをクリックし、ワークロードに適した設定を選択します。
- 公開 SSH キーをまだプロジェクトに追加していない場合は、VirtualMachine details セクションの Authorized SSH key の横にある編集アイコンをクリックします。
以下のオプションのいずれかを選択します。
- Use existing: シークレットリストからシークレットを選択します。
Add new:
- 公開 SSH キーファイルを参照するか、ファイルをキーフィールドに貼り付けます。
- シークレット名を入力します。
- オプション: Automatically apply this key to any new VirtualMachine you create in this project を選択します。
- Save をクリックします。
- オプション: View YAML & CLI をクリックして YAML ファイルを表示します。CLI をクリックして CLI コマンドを表示します。YAML ファイルの内容または CLI コマンドをダウンロードまたはコピーすることもできます。
- Create VirtualMachine をクリックします。
仮想マシンの作成後、VirtualMachine details ページでステータスを監視できます。
7.1.4. コマンドラインからの仮想マシンの作成 リンクのコピーリンクがクリップボードにコピーされました!
VirtualMachine マニフェストを編集または作成することで、コマンドラインから仮想マシン (VM) を作成できます。
7.1.4.1. VirtualMachine マニフェストからの仮想マシンの作成 リンクのコピーリンクがクリップボードにコピーされました!
VirtualMachine マニフェストから仮想マシンを作成できます。
手順
仮想マシンの
VirtualMachineマニフェストを編集します。次の例では、Red Hat Enterprise Linux (RHEL) 仮想マシンを設定します。マニフェストファイルを使用して仮想マシンを作成します。
oc create -f <vm_manifest_file>.yaml
$ oc create -f <vm_manifest_file>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 仮想マシンを起動します。
virtctl start <vm_name> -n <namespace>
$ virtctl start <vm_name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow