7.3. 仮想マシンコンソールへの接続
次のコンソールに接続して、実行中の仮想マシンにアクセスできます。
7.3.1. VNC コンソールへの接続
OpenShift Container Platform Web コンソールまたは virtctl
コマンドラインツールを使用して、仮想マシンの VNC コンソールに接続できます。
7.3.1.1. Web コンソールを使用した VNC コンソールへの接続
OpenShift Container Platform Web コンソールを使用して、仮想マシンの VNC コンソールに接続できます。
vGPU が仲介デバイスとして割り当てられている Windows 仮想マシンに接続すると、デフォルトの表示と vGPU 表示を切り替えることができます。
手順
-
Virtualization
VirtualMachines ページで仮想マシンをクリックして、VirtualMachine details ページを開きます。 - Console タブをクリックします。VNC コンソールセッションが自動的に開始します。
オプション: Windows 仮想マシンの vGPU 表示に切り替えるには、Send key リストから Ctl + Alt + 2 を選択します。
- デフォルトの表示に戻すには、Send key リストから Ctl + Alt + 1 を選択します。
- コンソールセッションを終了するには、コンソールペインの外側をクリックし、Disconnect をクリックします。
7.3.1.2. virtctl を使用した VNC コンソールへの接続
virtctl
コマンドラインツールを使用して、実行中の仮想マシンの VNC コンソールに接続できます。
SSH 接続経由でリモートマシン上で virtctl vnc
コマンドを実行する場合は、-X
フラグまたは -Y
フラグを指定して ssh
コマンドを実行して、X セッションをローカルマシンに転送する必要があります。
前提条件
-
virt-viewer
パッケージをインストールする必要があります。
手順
次のコマンドを実行して、コンソールセッションを開始します。
$ virtctl vnc <vm_name>
接続に失敗した場合は、次のコマンドを実行してトラブルシューティング情報を収集します。
$ virtctl vnc <vm_name> -v 4
7.3.1.3. VNC コンソールの一時トークンの生成
Kubernetes API が仮想マシン (VM) の VNC にアクセスするための一時的な認証ベアラートークンを生成します。
Kubernetes は、curl コマンドを変更することで、ベアラートークンの代わりにクライアント証明書を使用した認証もサポートします。
前提条件
-
OpenShift Virtualization 4.14 以降および
ssp-Operator
4.14 以降を搭載した仮想マシンが稼働している。
手順
HyperConverged (
HCO
) カスタムリソース (CR) の機能ゲートを有効にします。$ oc patch hyperconverged kubevirt-hyperconverged -n openshift-cnv --type json -p '[{"op": "replace", "path": "/spec/featureGates/deployVmConsoleProxy", "value": true}]'
次のコマンドを入力してトークンを生成します。
$ curl --header "Authorization: Bearer ${TOKEN}" \ "https://api.<cluster_fqdn>/apis/token.kubevirt.io/v1alpha1/namespaces/<namespace>/virtualmachines/<vm_name>/vnc?duration=<duration>"
<duration>
パラメーターは時間と分で設定でき、最小期間は 10 分です。たとえば、5h30m
です。このパラメーターが設定されていない場合、トークンはデフォルトで 10 分間有効です。出力サンプル
{ "token": "eyJhb..." }
オプション: 出力で提供されたトークンを使用して変数を作成します。
$ export VNC_TOKEN="<token>"
これで、トークンを使用して、仮想マシンの VNC コンソールにアクセスできるようになります。
検証
次のコマンドを入力してクラスターにログインします。
$ oc login --token ${VNC_TOKEN}
virtctl
コマンドを使用して、仮想マシンの VNC コンソールへのアクセスをテストします。$ virtctl vnc <vm_name> -n <namespace>
現在、特定のトークンを取り消すことはできません。
トークンを取り消すには、トークンの作成に使用したサービスアカウントを削除する必要があります。ただし、これにより、サービスアカウントを使用して作成された他のすべてのトークンも取り消されます。次のコマンドは注意して使用してください。
$ virtctl delete serviceaccount --namespace "<namespace>" "<vm_name>-vnc-access"
7.3.1.3.1. クラスターロールを使用して VNC コンソールにトークン生成権限を付与する
クラスター管理者は、クラスターロールをインストールし、それをユーザーまたはサービスアカウントにバインドして、VNC コンソールのトークンを生成するエンドポイントへのアクセスを許可できます。
手順
クラスターロールをユーザーまたはサービスアカウントにバインドすることを選択します。
クラスターロールをユーザーにバインドするには、次のコマンドを実行します。
$ kubectl create rolebinding "${ROLE_BINDING_NAME}" --clusterrole="token.kubevirt.io:generate" --user="${USER_NAME}"
以下のコマンドを実行してクラスターロールをサービスアカウントにバインドします。
$ kubectl create rolebinding "${ROLE_BINDING_NAME}" --clusterrole="token.kubevirt.io:generate" --serviceaccount="${SERVICE_ACCOUNT_NAME}"
7.3.2. シリアルコンソールへの接続
OpenShift Container Platform Web コンソールまたは virtctl
コマンドラインツールを使用して、仮想マシンのシリアルコンソールに接続できます。
単一の仮想マシンに対する同時 VNC 接続の実行は、現在サポートされていません。
7.3.2.1. Web コンソールを使用したシリアルコンソールへの接続
OpenShift Container Platform Web コンソールを使用して、仮想マシンのシリアルコンソールに接続できます。
手順
-
Virtualization
VirtualMachines ページで仮想マシンをクリックして、VirtualMachine details ページを開きます。 - Console タブをクリックします。VNC コンソールセッションが自動的に開始します。
- Disconnect をクリックして、VNC コンソールセッションを終了します。それ以外の場合、VNC コンソールセッションは引き続きバックグラウンドで実行されます。
- コンソールリストから Serial console を選択します。
- コンソールセッションを終了するには、コンソールペインの外側をクリックし、Disconnect をクリックします。
7.3.2.2. virtctl を使用したシリアルコンソールへの接続
virtctl
コマンドラインツールを使用して、実行中の仮想マシンのシリアルコンソールに接続できます。
手順
次のコマンドを実行して、コンソールセッションを開始します。
$ virtctl console <vm_name>
-
Ctrl+]
を押してコンソールセッションを終了します。
7.3.3. デスクトップビューアーに接続する
デスクトップビューアーとリモートデスクトッププロトコル (RDP) を使用して、Windows 仮想マシンに接続できます。
7.3.3.1. Web コンソールを使用したデスクトップビューアーへの接続
OpenShift Container Platform Web コンソールを使用して、Windows 仮想マシンのデスクトップビューアーに接続できます。
前提条件
- QEMU ゲストエージェントが Windows 仮想マシンにインストールされている。
- RDP クライアントがインストールされている。
手順
-
Virtualization
VirtualMachines ページで仮想マシンをクリックして、VirtualMachine details ページを開きます。 - Console タブをクリックします。VNC コンソールセッションが自動的に開始します。
- Disconnect をクリックして、VNC コンソールセッションを終了します。それ以外の場合、VNC コンソールセッションは引き続きバックグラウンドで実行されます。
- コンソールのリストから Desktop viewer を選択します。
- RDP サービスの作成 をクリックして、RDP サービス ダイアログを開きます。
- Expose RDP Service を選択し、Save をクリックしてノードポートサービスを作成します。
-
Launch Remote Desktop をクリックして
.rdp
ファイルをダウンロードし、デスクトップビューアーを起動します。