10.8. 仮想マシンコンソールへのアクセス
OpenShift Virtualization は、異なる製品タスクを実現するために使用できる異なる仮想マシンコンソールを提供します。これらのコンソールには、OpenShift Container Platform Web コンソールから、また CLI コマンドを使用してアクセスできます。
単一の仮想マシンに対する同時 VNC 接続の実行は、現在サポートされていません。
10.8.1. OpenShift Container Platform Web コンソールでの仮想マシンコンソールへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールでシリアルコンソールまたは VNC コンソールを使用して、仮想マシンに接続できます。
OpenShift Container Platform Web コンソールで、RDP (リモートデスクトッププロトコル) を使用するデスクトップビューアーコンソールを使用して、Windows 仮想マシンに接続できます。
10.8.1.1. シリアルコンソールへの接続 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールの VirtualMachine details ページにある Console タブから、実行中の仮想マシンのシリアルコンソールに接続します。
手順
-
OpenShift Container Platform コンソールで、サイドメニューから Virtualization
VirtualMachines をクリックします。 - 仮想マシンを選択して、VirtualMachine details ページを開きます。
- Console タブをクリックします。VNC コンソールがデフォルトで開きます。
- 一度に 1 つのコンソール セッションのみが開かれるようにするには、Disconnect をクリックします。それ以外の場合、VNC コンソール セッションはバックグラウンドでアクティブなままになります。
- VNC Console ドロップダウンリストをクリックし、Serial Console を選択します。
- Disconnect をクリックして、コンソールセッションを終了します。
- オプション: Open Console in New Window をクリックして、別のウィンドウでシリアルコンソールを開きます。
10.8.1.2. VNC コンソールへの接続 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールの VirtualMachine details ページにある Console タブから、実行中の仮想マシンの VNC コンソールに接続します。
手順
-
OpenShift Container Platform コンソールで、サイドメニューから Virtualization
VirtualMachines をクリックします。 - 仮想マシンを選択して、VirtualMachine details ページを開きます。
- Console タブをクリックします。VNC コンソールがデフォルトで開きます。
- オプション: Open Console in New Window をクリックして、別のウィンドウで VNC コンソールを開きます。
- オプション: Send Key をクリックして、キーの組み合わせを仮想マシンに送信します。
- コンソールウィンドウの外側をクリックし、Disconnect をクリックしてセッションを終了します。
10.8.1.3. RDP を使用した Windows 仮想マシンへの接続 リンクのコピーリンクがクリップボードにコピーされました!
Remote Desktop Protocol (RDP) を使用する Desktop viewer コンソールは、Windows 仮想マシンに接続するためのより使いやすいコンソールを提供します。
RDP を使用して Windows 仮想マシンに接続するには、Web コンソールの VirtualMachine 詳細 ページの Console タブから仮想マシンの console.rdp ファイルをダウンロードし、優先する RDP クライアントに提供します。
前提条件
-
QEMU ゲストエージェントがインストールされた実行中の Windows 仮想マシン。
qemu-guest-agentは VirtIO ドライバーに含まれています。 - Windows 仮想マシンと同じネットワーク上のマシンにインストールされた RDP クライアント。
手順
-
OpenShift Container Platform コンソールで、サイドメニューから Virtualization
VirtualMachines をクリックします。 - Windows 仮想マシンをクリックして、VirtualMachine details ページを開きます。
- Console タブをクリックします。
- コンソールのリストから、Desktop viewer を選択します。
-
Launch Remote Desktop をクリックし、
console.rdpファイルをダウンロードします。 -
優先する RDP クライアントで
console.rdpファイルを参照して、Windows 仮想マシンに接続します。
10.8.1.4. 仮想マシンの表示の切り替え リンクのコピーリンクがクリップボードにコピーされました!
Windows 仮想マシン (VM) に vGPU が接続されている場合、Web コンソールを使用してデフォルトのディスプレイと vGPU ディスプレイを切り替えることができます。
前提条件
-
仲介されたデバイスは、
HyperConvergedカスタムリソースで設定され、仮想マシンに割り当てられます。 - 仮想マシンは実行中です。
手順
-
OpenShift Container Platform コンソールで、Virtualization
VirtualMachines をクリックします。 - Windows 仮想マシンを選択して Overview 画面を開きます。
- Console タブをクリックします。
- コンソールのリストから、VNC console を選択します。
Send Key リストから適切なキーの組み合わせを選択します。
-
デフォルトの仮想マシン表示にアクセスするには、
Ctl + Alt+ 1を選択します。 -
vGPU ディスプレイにアクセスするには、
Ctl + Alt + 2を選択します。
-
デフォルトの仮想マシン表示にアクセスするには、
10.8.1.5. Web コンソールを使用した SSH コマンドのコピー リンクのコピーリンクがクリップボードにコピーされました!
コマンドをコピーして、SSH 経由で仮想マシン (VM) ターミナルに接続します。
手順
-
OpenShift Container Platform コンソールで、サイドメニューから Virtualization
VirtualMachines をクリックします。 -
オプション メニューをクリック
仮想マシンの SSH コマンドのコピー を選択します。
- ターミナルに貼り付け、仮想マシンにアクセスします。
10.8.2. CLI コマンドの使用による仮想マシンコンソールへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
10.8.2.1. virtctl を使用して SSH 経由で仮想マシンにアクセスする リンクのコピーリンクがクリップボードにコピーされました!
virtctl ssh コマンドを使用して、ローカル SSH クライアントを使用して SSH トラフィックを仮想マシン (VM) に転送できます。仮想マシンで SSH キー認証を設定している場合は、手順 1 は必要ないため、手順 2 に進んでください。
コントロールプレーンの SSH トラフィックが多いと、API サーバーの速度が低下する可能性があります。定期的に多数の接続が必要な場合は、専用の Kubernetes Service オブジェクトを使用して仮想マシンにアクセスします。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
virtctlクライアントをインストールしました。 - アクセスする仮想マシンが実行されています。
- 仮想マシンと同じプロジェクトにいます。
手順
SSH キー認証を設定します。
ssh-keygenコマンドを使用して、SSH 公開鍵ペアを生成します。ssh-keygen -f <key_file>
$ ssh-keygen -f <key_file>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- キーを格納するファイルを指定します。
仮想マシンにアクセスするための SSH 公開鍵を含む SSH 認証シークレットを作成します。
oc create secret generic my-pub-key --from-file=key1=<key_file>.pub
$ oc create secret generic my-pub-key --from-file=key1=<key_file>.pubCopy to Clipboard Copied! Toggle word wrap Toggle overflow VirtualMachineマニフェストにシークレットへの参照を追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 仮想マシンを再起動して変更を適用します。
SSH 経由で仮想マシンに接続します。
次のコマンドを実行して、SSH 経由で仮想マシンにアクセスします。
virtctl ssh -i <key_file> <vm_username>@<vm_name>
$ virtctl ssh -i <key_file> <vm_username>@<vm_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 仮想マシンとの間でファイルを安全に転送するには、次のコマンドを使用します。
マシンから仮想マシンにファイルをコピーする
virtctl scp -i <key_file> <filename> <vm_username>@<vm_name>:
$ virtctl scp -i <key_file> <filename> <vm_username>@<vm_name>:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 仮想マシンからマシンにファイルをコピーする
virtctl scp -i <key_file> <vm_username@<vm_name>:<filename> .
$ virtctl scp -i <key_file> <vm_username@<vm_name>:<filename> .Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.8.2.2. OpenSSH および virtctl port-forward の使用 リンクのコピーリンクがクリップボードにコピーされました!
ローカルの OpenSSH クライアントと virtctl port-forward コマンドを使用して、実行中の仮想マシン (VM) に接続できます。Ansible でこの方法を使用すると、VM の設定を自動化できます。
ポート転送トラフィックはコントロールプレーン経由で送信されるため、この方法はトラフィックの少ないアプリケーションに推奨されます。ただし、API サーバーに負荷が大きいため、Rsync や Remote Desktop Protocol などのトラフィックの高いアプリケーションには推奨されません。
前提条件
-
virtctlクライアントをインストールしている。 - アクセスする仮想マシンが実行されている。
-
virtctlツールがインストールされている環境には、仮想マシンへのアクセスに必要なクラスターパーミッションがある。たとえば、oc loginを実行するか、KUBECONFIG環境変数を設定します。
手順
以下のテキストをクライアントマシンの
~/.ssh/configファイルに追加します。Host vm/* ProxyCommand virtctl port-forward --stdio=true %h %p
Host vm/* ProxyCommand virtctl port-forward --stdio=true %h %pCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、仮想マシンに接続します。
ssh <user>@vm/<vm_name>.<namespace>
$ ssh <user>@vm/<vm_name>.<namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.8.2.3. 仮想マシンインスタンスのシリアルコンソールへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
virtctl console コマンドは、指定された仮想マシンインスタンスへのシリアルコンソールを開きます。
前提条件
-
virt-viewerパッケージがインストールされていること。 - アクセスする仮想マシンインスタンスが実行中であること。
手順
virtctlでシリアルコンソールに接続します。virtctl console <VMI>
$ virtctl console <VMI>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.8.2.4. VNC を使用した仮想マシンインスタンスのグラフィカルコンソールへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
virtctl クライアントユーティリティーは remote-viewer 機能を使用し、実行中の仮想マシンインスタンスに対してグラフィカルコンソールを開くことができます。この機能は virt-viewer パッケージに組み込まれています。
前提条件
-
virt-viewerパッケージがインストールされていること。 - アクセスする仮想マシンインスタンスが実行中であること。
リモートマシンで SSH 経由で virtctl を使用する場合、X セッションをマシンに転送する必要があります。
手順
virtctlユーティリティーを使用してグラフィカルインターフェイスに接続します。virtctl vnc <VMI>
$ virtctl vnc <VMI>Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドが失敗した場合には、トラブルシューティング情報を収集するために
-vフラグの使用を試行します。virtctl vnc <VMI> -v 4
$ virtctl vnc <VMI> -v 4Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.8.2.5. RDP コンソールの使用による Windows 仮想マシンへの接続 リンクのコピーリンクがクリップボードにコピーされました!
ローカルのリモートデスクトッププロトコル (RDP) クライアントを使用して、Windows 仮想マシン (VM) に接続するための Kubernetes Service オブジェクトを作成します。
前提条件
-
QEMU ゲストエージェントがインストールされた実行中の Windows 仮想マシン。
qemu-guest-agentオブジェクトは VirtIO ドライバーに含まれています。 - ローカルマシンにインストールされた RDP クライアント。
手順
VirtualMachineマニフェストを編集して、サービス作成のラベルを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ラベル
special: keyをspec.template.metadata.labelsセクションに追加します。
注記仮想マシンのラベルは Pod に渡されます。
special: キーラベルは、Serviceマニフェストのspec.selector属性のラベルと一致する必要があります。-
VirtualMachineマニフェストファイルを保存して変更を適用します。 仮想マシンを公開するための
Serviceマニフェストを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
サービスマニフェストファイルを保存します。 以下のコマンドを実行してサービスを作成します。
oc create -f <service_name>.yaml
$ oc create -f <service_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 仮想マシンを起動します。仮想マシンがすでに実行中の場合は、再起動します。
Serviceオブジェクトをクエリーし、これが利用可能であることを確認します。oc get service -n example-namespace
$ oc get service -n example-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow NodePortサービスの出力例NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE rdpservice NodePort 172.30.232.73 <none> 3389:30000/TCP 5m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE rdpservice NodePort 172.30.232.73 <none> 3389:30000/TCP 5mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、ノードの IP アドレスを取得します。
oc get node <node_name> -o wide
$ oc get node <node_name> -o wideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP node01 Ready worker 6d22h v1.24.0 192.168.55.101 <none>
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP node01 Ready worker 6d22h v1.24.0 192.168.55.101 <none>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 優先する RDP クライアントでノード IP アドレスと割り当てられたポートを指定します。
- Windows 仮想マシンに接続するためのユーザー名とパスワードを入力します。