12.5. 仮想マシンの downward metrics の公開
管理者は、まず downwardMetrics
フィーチャーゲートを有効にし、次に downwardMetrics
デバイスを設定することで、ホストおよび仮想マシン (VM) メトリクスの限定セットをゲスト仮想マシンに公開できます。
ユーザーは、コマンドラインまたは 仮想マシン -dump- メトリクスツール
を使用してメトリクスの結果を表示できます。
Red Hat Enterprise Linux (RHEL) 9 では、コマンドラインを使用して downward metrics を表示します。コマンドラインを使用した downward metrics の表示 を参照してください。
vm-dump-metrics ツールは、Red Hat Enterprise Linux (RHEL) 9 プラットフォームではサポートされていません。
12.5.1. downwardMetrics フィーチャーゲートの有効化または無効化
次のいずれかのアクションを実行することにより、downwardMetrics
フィーチャーゲートを有効または無効にできます。
- デフォルトのエディターで HyperConverged カスタムリソース (CR) を編集する
- コマンドラインを使用する
12.5.1.1. YAML ファイルでの downward metrics フィーチャーゲートの有効化または無効化
ホスト仮想マシンの downward metrics を公開するには、YAML ファイルを編集して downwardMetrics
フィーチャーゲートを有効にします。
前提条件
- 機能ゲートを有効にするには、管理者権限が必要です。
手順
次のコマンドを実行して、デフォルトのエディターで HyperConverged カスタムリソース (CR) を開きます。
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
次のように、downwardMetrics フィーチャーゲートを有効または無効にすることを選択します。
downwardMetrics
フィーチャーゲートを有効にするには、spec.featureGates.downwardMetrics
を追加してからtrue
に設定します。以下に例を示します。apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: openshift-cnv spec: featureGates: downwardMetrics: true # ...
downwardMetrics
フィーチャーゲートを無効にするには、spec.featureGates.downwardMetrics
をfalse
に設定します。以下に例を示します。apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: openshift-cnv spec: featureGates: downwardMetrics: false # ...
12.5.1.2. コマンドラインからの downward metrics フィーチャーゲートの有効化または無効化
ホスト仮想マシンの downward metrics を公開するには、コマンドラインを使用して、downwardMetrics
フィーチャーゲートを有効にします。
前提条件
- 機能ゲートを有効にするには、管理者権限が必要です。
手順
以下のように
downwardMetrics
フィーチャーゲートを有効または無効にするか選択します。次の例に示すコマンドを実行して、
downwardMetrics
フィーチャーゲートを有効にします。$ oc patch hco kubevirt-hyperconverged -n openshift-cnv \ --type json -p '[{"op": "replace", "path": \ "/spec/featureGates/downwardMetrics" \ "value": true}]'
次の例に示すコマンドを実行して、
downwardMetrics
フィーチャーゲートを無効にします。$ oc patch hco kubevirt-hyperconverged -n openshift-cnv \ --type json -p '[{"op": "replace", "path": \ "/spec/featureGates/downwardMetrics" \ "value": false}]'
12.5.2. downward metrics デバイスの設定
ホスト仮想マシンの downward metrics のキャプチャーを有効にするには、downwardMetrics
デバイスを含む設定ファイルを作成します。このデバイスを追加すると、メトリクスが virtio-serial
ポートを通じて公開されるようになります。
前提条件
-
最初に
downwardMetrics
フィーチャーゲートを有効にする必要があります。
手順
次の例に示すように、
downwardMetrics
デバイスを含む YAML ファイルを編集または作成します。downwardMetrics 設定ファイルの例
apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: fedora namespace: default spec: dataVolumeTemplates: - metadata: name: fedora-volume spec: sourceRef: kind: DataSource name: fedora namespace: openshift-virtualization-os-images storage: resources: {} storageClassName: hostpath-csi-basic instancetype: name: u1.medium preference: name: fedora running: true template: metadata: labels: app.kubernetes.io/name: headless spec: domain: devices: downwardMetrics: {} 1 subdomain: headless volumes: - dataVolume: name: fedora-volume name: rootdisk - cloudInitNoCloud: userData: | #cloud-config chpasswd: expire: false password: '<password>' 2 user: fedora name: cloudinitdisk
12.5.3. downward metrics の表示
以下のオプションのいずれかを使用して、downward metrics を表示できます。
- コマンドラインインターフェイス (CLI)
-
vm-dump-metrics
ツール
Red Hat Enterprise Linux (RHEL) 9 では、コマンドラインを使用して downward metrics を表示します。vm-dump-metrics ツールは、Red Hat Enterprise Linux (RHEL) 9 プラットフォームではサポートされていません。
12.5.3.1. コマンドラインを使用した downward metrics の表示
ゲスト仮想マシン (VM) 内からコマンドを入力すると、downward metrics を表示できます。
手順
以下のコマンドを実行します。
$ sudo sh -c 'printf "GET /metrics/XML\n\n" > /dev/virtio-ports/org.github.vhostmd.1'
$ sudo cat /dev/virtio-ports/org.github.vhostmd.1
12.5.3.2. vm-dump-metrics ツールを使用した downward metrics の表示
downward metrics を表示するには、vm-dump-metrics
ツールをインストールし、そのツールを使用してメトリクスの結果を公開します。
Red Hat Enterprise Linux (RHEL) 9 では、コマンドラインを使用して downward metrics を表示します。vm-dump-metrics ツールは、Red Hat Enterprise Linux (RHEL) 9 プラットフォームではサポートされていません。
手順
以下のコマンドを実行して
vm-dump-metrics
ツールをインストールします。$ sudo dnf install -y vm-dump-metrics
次のコマンドを実行して、メトリクス結果を取得します。
$ sudo vm-dump-metrics
出力例
<metrics> <metric type="string" context="host"> <name>HostName</name> <value>node01</value> [...] <metric type="int64" context="host" unit="s"> <name>Time</name> <value>1619008605</value> </metric> <metric type="string" context="host"> <name>VirtualizationVendor</name> <value>kubevirt.io</value> </metric> </metrics>