8.7. 가상 머신 콘솔에 액세스
OpenShift Virtualization에서는 다양한 제품 작업을 수행할 수 있도록 여러 개의 가상 머신 콘솔을 제공합니다. OpenShift Container Platform 웹 콘솔과 CLI 명령을 사용하여 이러한 콘솔에 액세스할 수 있습니다.
8.7.1. OpenShift Container Platform 웹 콘솔에서 가상 머신 콘솔에 액세스
OpenShift Container Platform 웹 콘솔에서 직렬 콘솔 또는 VNC 콘솔을 사용하여 가상 머신에 연결할 수 있습니다.
OpenShift Container Platform 웹 콘솔에서 RDP(원격 데스크탑 프로토콜)를 사용하는 데스크탑 뷰어 콘솔을 사용하여 Windows 가상 머신에 연결할 수 있습니다.
8.7.1.1. 직렬 콘솔 연결
웹 콘솔의 가상 머신 개요 화면에 있는 콘솔 탭에서 실행 중인 가상 머신 의 직렬 콘솔에 연결합니다.
절차
-
OpenShift Virtualization 콘솔의 사이드 메뉴에서 워크로드
가상화를 클릭합니다. - 가상 머신 탭을 클릭합니다.
- 가상 머신을 선택하여 가상 머신 개요 페이지를 엽니다.
- 콘솔을 클릭합니다. 기본적으로 VNC 콘솔이 열립니다.
- 전환 전에 연결 끊기 를 선택하여 한 번에 하나의 콘솔 세션만 열려 있는지 확인합니다. 그렇지 않으면 VNC 콘솔 세션이 백그라운드에서 활성 상태로 유지됩니다.
- VNC 콘솔 드롭다운 목록을 클릭하고 직렬 콘솔을 선택합니다.
- 연결 끊기 를 클릭하여 콘솔 세션을 종료합니다.
- 선택 사항: 새 창에서 콘솔 열기를 클릭하여 직렬 콘솔을 별도의 창에서 엽니다.
8.7.1.2. VNC 콘솔에 연결
웹 콘솔의 가상 머신 개요 화면에 있는 콘솔 탭에서 실행 중인 가상 머신의 VNC 콘솔에 연결합니다.
절차
-
OpenShift Virtualization 콘솔의 사이드 메뉴에서 워크로드
가상화를 클릭합니다. - 가상 머신 탭을 클릭합니다.
- 가상 머신을 선택하여 가상 머신 개요 페이지를 엽니다.
- 콘솔 탭을 클릭합니다. 기본적으로 VNC 콘솔이 열립니다.
- 선택 사항: 새 창에서 콘솔 열기를 클릭하여 VNC 콘솔을 별도의 창에서 엽니다.
- 선택 사항: 키 보내기를 클릭하여 가상 머신에 키 조합을 보냅니다.
- 콘솔 창 외부에서 클릭한 다음 연결 끊기 를 클릭하여 세션을 종료합니다.
8.7.1.3. RDP를 사용하여 Windows 가상 머신에 연결
RDP(원격 데스크탑 프로토콜)를 사용하는 데스크탑 뷰어 콘솔에서는 Windows 가상 머신 연결을 위해 개선된 콘솔 환경을 제공합니다.
RDP를 사용하여 Windows 가상 머신에 연결하려면 웹 콘솔의 가상 머신 세부 정보 화면에 있는 콘솔 탭에서 가상 머신에 대한 console.rdp
파일을 다운로드하여 선호하는 RDP 클라이언트에 제공하십시오.
사전 요구 사항
-
Windows 가상 머신이 실행 중이고 QEMU 게스트 에이전트가 설치되어 있습니다.
qemu-guest-agent
는 VirtIO 드라이버에 포함되어 있습니다. - 계층 2 NIC가 가상 머신에 연결되어 있습니다.
- RDP 클라이언트가 Windows 가상 머신과 동일한 네트워크의 머신에 설치되어 있습니다.
절차
-
OpenShift Virtualization 콘솔의 사이드 메뉴에서 워크로드
가상화를 클릭합니다. - 가상 머신 탭을 클릭합니다.
- Windows 가상 머신을 선택하여 가상 머신 개요 화면을 엽니다.
- 콘솔 탭을 클릭합니다.
- 콘솔 목록에서 데스크탑 뷰어를 선택합니다.
- 네트워크 인터페이스 목록에서 계층 2 NIC를 선택합니다.
-
원격 데스크탑 시작을 클릭하여
console.rdp
파일을 다운로드합니다. RDP 클라이언트를 열고
console.rdp
파일을 참조합니다. 예를 들면 다음과 같이 remmina를 사용합니다.$ remmina --connect /path/to/console.rdp
- 관리자 이름 및 암호를 입력하여 Windows 가상 머신에 연결합니다.
8.7.1.4. 웹 콘솔에서 SSH 명령 복사
웹 콘솔의 Actions 목록에서 SSH를 통해 실행 중인 VM(가상 머신)에 액세스하려면 명령을 복사합니다.
절차
-
OpenShift Container Platform 콘솔의 사이드 메뉴에서 워크로드
가상화를 클릭합니다. - 가상 머신 탭을 클릭합니다.
- 가상 머신을 선택하여 가상 머신 개요 페이지를 엽니다.
-
작업 목록에서 SSH 명령 복사 를 선택합니다. 이제 이 명령을 OpenShift CLI(
oc
)에 붙여넣을 수 있습니다.
8.7.2. CLI 명령을 사용하여 가상 머신 콘솔에 액세스
8.7.2.1. SSH를 통해 가상 머신 인스턴스에 액세스
VM(가상 머신)에 포트 22를 노출하면 SSH를 사용하여 VM에 액세스할 수 있습니다.
virtctl expose
명령은 VMI(가상 머신 인스턴스) 포트를 노드 포트에 전달하고, 활성화된 액세스 권한에 대해 서비스를 생성합니다. 다음 예에서는 클러스터 노드의 특정 포트에서 <fedora-vm>
가상 머신의 포트 22로 트래픽을 전달하는 fedora-vm-ssh
서비스를 생성합니다.
사전 요구 사항
- VMI와 동일한 프로젝트에 있어야 합니다.
-
액세스하려는 VMI가
가상
바인딩 방법을 사용하여 기본 Pod 네트워크에 연결되어 있어야 합니다. - 액세스하려는 VMI가 실행 중이어야 합니다.
-
OpenShift CLI(
oc
)를 설치합니다.
절차
다음 명령을 실행하여
fedora-vm-ssh
서비스를 생성합니다.$ virtctl expose vm <fedora-vm> --port=22 --name=fedora-vm-ssh --type=NodePort 1
- 1
<fedora-vm>
은fedora-vm-ssh
서비스를 실행하는 VM의 이름입니다.
서비스를 점검하여 서비스에서 감지한 포트를 확인합니다.
$ oc get svc
출력 예
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE fedora-vm-ssh NodePort 127.0.0.1 <none> 22:32551/TCP 6s
+ 이 예에서는 서비스에서 32551
포트를 감지합니다.
SSH를 통해 VMI에 로그인합니다. 클러스터 노드의
ipAddress
및 이전 단계에서 찾은 포트를 사용하십시오.$ ssh username@<node_IP_address> -p 32551
8.7.2.2. YAML 구성을 사용하여 SSH를 통해 가상 머신에 액세스
virtctl expose
명령을 실행할 필요 없이 VM(가상 머신)에 대한 SSH 연결을 활성화할 수 있습니다. VM의 YAML 파일 및 서비스에 대한 YAML 파일이 구성 및 적용되면 서비스는 SSH 트래픽을 VM으로 전달합니다.
다음 예제에서는 VM의 YAML 파일 및 서비스 YAML 파일의 구성을 보여줍니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
oc create namespace
명령을 사용하고 네임스페이스 이름을 지정하여 VM의 YAML 파일의 네임스페이스를 만듭니다.
절차
VM의 YAML 파일에서 SSH 연결을 위해 서비스를 노출하는 레이블과 값을 추가합니다. 인터페이스의
masquerade
기능을 활성화합니다.VirtualMachine
정의 예... apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: namespace: ssh-ns 1 name: vm-ssh spec: running: false template: metadata: labels: kubevirt.io/vm: vm-ssh special: vm-ssh 2 spec: domain: devices: disks: - disk: bus: virtio name: containerdisk - disk: bus: virtio name: cloudinitdisk interfaces: - masquerade: {} 3 name: testmasquerade 4 rng: {} machine: type: "" resources: requests: memory: 1024M networks: - name: testmasquerade pod: {} volumes: - name: containerdisk containerDisk: image: kubevirt/fedora-cloud-container-disk-demo - name: cloudinitdisk cloudInitNoCloud: userData: | #!/bin/bash echo "fedora" | passwd fedora --stdin ...
VM을 생성합니다.
$ oc create -f <path_for_the_VM_YAML_file>
VM을 시작합니다.
$ virtctl start vm-ssh
서비스의 YAML 파일에서 서비스 이름, 포트 번호 및 대상 포트를 지정합니다.
예시
Service
오브젝트... apiVersion: v1 kind: Service metadata: name: svc-ssh 1 namespace: ssh-ns 2 spec: ports: - targetPort: 22 3 protocol: TCP port: 27017 selector: special: vm-ssh 4 type: NodePort ...
서비스를 생성합니다.
$ oc create -f <path_for_the_service_YAML_file>
VM이 실행 중인지 확인합니다.
$ oc get vmi
출력 예
NAME AGE PHASE IP NODENAME vm-ssh 6s Running 10.244.196.152 node01
서비스를 점검하여 서비스에서 감지한 포트를 확인합니다.
$ oc get svc
출력 예
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc-ssh NodePort 10.106.236.208 <none> 27017:30093/TCP 22s
이 예에서 서비스는 포트 번호 30093을 획득했습니다.
다음 명령을 실행하여 노드의 IP 주소를 가져옵니다.
$ oc get node <node_name> -o wide
출력 예
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP node01 Ready worker 6d22h v1.20.0+5f82cdb 192.168.55.101 <none>
VM이 실행 중인 노드의 IP 주소와 포트 번호를 지정하여 SSH를 통해 VM에 로그인합니다.
oc get svc
명령에서 표시되는 포트 번호와oc get node
명령에서 표시되는 노드의 IP 주소를 사용합니다. 다음 예제에서는 사용자 이름, 노드의 IP 주소 및 포트 번호와 함께ssh
명령을 보여줍니다.$ ssh fedora@192.168.55.101 -p 30093
8.7.2.3. 가상 머신 인스턴스의 직렬 콘솔에 액세스
virtctl console
명령은 지정된 가상 머신 인스턴스에 대한 직렬 콘솔을 엽니다.
사전 요구 사항
-
virt-viewer
패키지가 설치되어 있어야 합니다. - 액세스하려는 가상 머신 인스턴스가 실행 중이어야 합니다.
절차
virtctl
을 사용하여 직렬 콘솔에 연결합니다.$ virtctl console <VMI>
8.7.2.4. VNC를 사용하여 가상 머신 인스턴스의 그래픽 콘솔에 액세스
virtctl
클라이언트 유틸리티는 remote-viewer
기능을 사용하여 실행 중인 가상 머신 인스턴스에 대해 그래픽 콘솔을 열 수 있습니다. 이 기능은 virt-viewer
패키지에 포함되어 있습니다.
사전 요구 사항
-
virt-viewer
패키지가 설치되어 있어야 합니다. - 액세스하려는 가상 머신 인스턴스가 실행 중이어야 합니다.
원격 머신에서 SSH를 통해 virtctl
을 사용하는 경우 X 세션을 머신으로 전달해야 합니다.
절차
virtctl
유틸리티를 사용하여 그래픽 인터페이스에 연결합니다.$ virtctl vnc <VMI>
명령이 실패하는 경우
-v
플래그를 사용하여 문제 해결 정보를 수집합니다.$ virtctl vnc <VMI> -v 4
8.7.2.5. RDP 콘솔을 사용하여 Windows 가상 머신에 연결
RDP(원격 데스크탑 프로토콜)에서는 Windows 가상 머신 연결을 위해 개선된 콘솔 환경을 제공합니다.
RDP를 사용하여 Windows 가상 머신에 연결하려면 연결된 L2 NIC의 IP 주소를 RDP 클라이언트로 지정하십시오.
사전 요구 사항
-
Windows 가상 머신이 실행 중이고 QEMU 게스트 에이전트가 설치되어 있습니다.
qemu-guest-agent
는 VirtIO 드라이버에 포함되어 있습니다. - 계층 2 NIC가 가상 머신에 연결되어 있습니다.
- RDP 클라이언트가 Windows 가상 머신과 동일한 네트워크의 머신에 설치되어 있습니다.
절차
oc
CLI 툴을 통해 액세스 토큰이 있는 사용자로 OpenShift Virtualization 클러스터에 로그인합니다.$ oc login -u <user> https://<cluster.example.com>:8443
oc describe vmi
를 사용하여 실행 중인 Windows 가상 머신의 구성을 표시합니다.$ oc describe vmi <windows-vmi-name>
출력 예
... spec: networks: - name: default pod: {} - multus: networkName: cnv-bridge name: bridge-net ... status: interfaces: - interfaceName: eth0 ipAddress: 198.51.100.0/24 ipAddresses: 198.51.100.0/24 mac: a0:36:9f:0f:b1:70 name: default - interfaceName: eth1 ipAddress: 192.0.2.0/24 ipAddresses: 192.0.2.0/24 2001:db8::/32 mac: 00:17:a4:77:77:25 name: bridge-net ...
-
계층 2 네트워크 인터페이스의 IP 주소를 확인하고 복사합니다. 위 예제에서는
192.0.2.0
이며, IPv6를 선호하는 경우2001:db8::
입니다. - RDP 클라이언트를 열고 이전 단계에서 복사한 IP 주소를 사용하여 연결합니다.
- 관리자 이름 및 암호를 입력하여 Windows 가상 머신에 연결합니다.