2 KubeVirtモジュールのインストール
この章では、KubeVirtモジュールをOracle Cloud Native Environmentにインストールする方法について説明します。
前提条件
この項では、KubeVirtモジュールをインストールするための前提条件について説明します。
永続ストレージの設定
リブートおよびライブ移行による状態を維持するために、KubeVirt仮想マシンのストレージを設定することをお薦めします。 StorageClassを使用して使用可能なCephFilesystemを使用できます。 CephFilesystemは、状態を維持するために必要なReadWriteManyファイル・システムです。 Rookモジュールは、CephFilesystemストレージを設定するために使用できます。 Rookモジュールを使用したCephFilesystemおよびStorageClassの設定の詳細は、「Rookモジュール」を参照してください。
コンテナ・レジストリの設定
KubeVirtは、コンテナ化された仮想マシン・イメージをコンテナ・レジストリからプルします。 Kubernetesノードは、適切に構成されたコンテナ・イメージを使用してコンテナ・レジストリにアクセスし、KubeVirtを使用して仮想マシンを作成する必要があります。
コンテナ・レジストリは、Podman、Oracle Container Runtime for Dockerまたはその他のコンテナ・レジストリ・ソフトウェアを使用して設定できます。 Podmanローカル・コンテナ・レジストリの作成の詳細は、「Oracle Linux: Podmanユーザーズ・ガイド」を参照してください。 Oracle Container Runtime for Dockerコンテナ・レジストリの作成の詳細は、「Oracle Linux: Oracle Container Runtime for Dockerユーザーズ・ガイド」を参照してください。
KubeVirt構成ファイルの作成
KubeVirtの拡張構成を実行するには、オプションでKubeVirt構成ファイルを指定できます。 これにより、KubeVirtモジュールをデプロイするときに、デバッグ・ロギングやエミュレーション・オプションなどのKubeVirt設定を設定またはオーバーライドできます。 オーバーライドできるKubeVirtオブジェクトは、アップストリームの「KubeVirtのドキュメント」にリストされます。
YAML形式のオペレータ・ノードにKubeVirt構成ファイルを指定します。 このファイルの上位レベルの構造は、次のようになります:
apiVersion: kubevirt.io/v1
kind: KubeVirt
metadata:
annotations: {}
labels: {}
name: {}
namespace: {}
spec: {}
Platform API Serverは、KubeVirtモジュールの作成時に構成ファイルに含まれる情報を使用します。 KubeVirtは、このファイルに指定した情報を使用して、KubeVirtのすべての設定および構成を実行します。
KubeVirtモジュールのデプロイ
単一のolcnectl module create
コマンドを使用して、KubeVirtの設定に必要なすべてのモジュールをデプロイできます。 このメソッドは、KubeVirtモジュールをKubernetesクラスタのデプロイと同時にデプロイする場合に便利です。
Kubernetesモジュールの既存のデプロイメントがある場合は、KubeVirtモジュールのデプロイ時にそのインスタンスを指定できます。
この項では、KubeVirtモジュールのデプロイに必要な各コンポーネントのインストールについて説明します。
モジュールの作成時に使用可能なプラットフォームCLIコマンド・オプションの完全なリストは、「プラットフォーム・コマンドライン・インタフェース」のolcnectl module create
コマンドを参照してください。
KubeVirtモジュールをデプロイするには:
-
環境をまだ設定していない場合は、モジュールをデプロイできる環境を作成します。 環境の設定方法の詳細は、スタート・ガイドを参照してください。 この例の環境の名前は、
myenvironment
です。 -
Kubernetesモジュールをまだ設定またはデプロイしていない場合は、設定します。 Kubernetesモジュールを環境に追加する方法の詳細は、「Kubernetesモジュール」を参照してください。 この例のKubernetesモジュールの名前は、
mycluster
です。 -
KubeVirtモジュールを作成し、
--kubevirt-kubernetes-module
オプションを使用してmycluster
という名前のKubernetesモジュールに関連付けます。 この例では、KubeVirtモジュールの名前はmykubevirt
です。olcnectl module create \ --environment-name myenvironment \ --module kubevirt \ --name mykubevirt \ --kubevirt-kubernetes-module mycluster
--module
オプションは、モジュール・タイプを作成(kubevirt
)に設定します。 KubeVirtモジュールの名前は、--name
オプション(この場合はmykubevirt
)を使用して定義します。--kubevirt-kubernetes-module
オプションは、Kubernetesモジュールの名前を設定します。モジュールの追加時に必要なオプションの一部が含まれていないと、そのオプションを指定するように求められます。
-
olcnectl module install
コマンドを使用して、KubeVirtモジュールをインストールします。 たとえば:olcnectl module install \ --environment-name myenvironment \ --name mykubevirt
KubeVirtモジュールは、Kubernetesクラスタにデプロイされます。
- オプションで、KubeVirt CLIツール
virtctl
およびvirt-viewer
をインストールできます。 これらのツールにより、KubeVirt仮想マシンを含む多くの操作の管理が容易になります。 これらのツールは、仮想マシン・コンソールおよびリモート・デスクトップにアクセスするときに役立ちます。 コントロール・プレーン・ノードで、次のツールをインストールします:sudo dnf install virtctl virt-viewer
KubeVirtモジュールのデプロイメントの検証
オペレータ・ノードでolcnectl module instances
コマンドを使用して、KubeVirtモジュールがデプロイされていることを確認できます。 たとえば:
olcnectl module instances \
--environment-name myenvironment
出力は次のようになります:
INSTANCE MODULE STATE
mycluster kubernetes installed
mykubevirt kubevirt installed
myrook rook installed
...
MODULE
列のkubevirt
のエントリは、installed
状態であることに注意してください。
また、olcnectl module report
コマンドを使用して、モジュールに関する情報を確認します。 たとえば、次のコマンドを使用して、myenvironment
のmykubevirt
という名前のKubeVirtモジュールを確認します:
olcnectl module report \
--environment-name myenvironment \
--name mykubevirt \
--children
olcnectl module report
コマンドの構文の詳細は、「プラットフォーム・コマンドライン・インタフェース」を参照してください。
コントロール・プレーン・ノードで、kubevirt
ネームスペースでvirt-*
デプロイメントが実行されていることを確認します:
kubectl get deployments --namespace kubevirt
出力は次のようになります:
NAME READY UP-TO-DATE AVAILABLE AGE
virt-api 2/2 2 2 117m
virt-controller 2/2 2 2 116m
virt-operator 2/2 2 2 117m