9장. 가상 머신


9.1. 가상 머신 생성

가상 머신을 생성하려면 다음 절차 중 하나를 사용하십시오.

  • 빠른 시작 기능 둘러보기
  • 카탈로그에서빠른 생성
  • 가상 머신 마법사를 사용하여 사전 구성된 YAML 파일 붙여넣기
  • CLI 사용
주의

openshift-* 네임스페이스에 가상 머신을 생성하지 마십시오. 대신 새 네임스페이스를 만들거나 openshift 접두사 없이 기존 네임스페이스를 사용하십시오.

웹 콘솔에서 가상 머신을 생성하는 경우 부팅 소스로 구성된 가상 머신 템플릿을 선택합니다. 부팅 소스가 있는 가상 머신 템플릿은 사용 가능한 부팅 소스로 라벨이 지정되거나 사용자 지정된 라벨 텍스트가 표시됩니다. 사용 가능한 부팅 소스와 함께 템플릿을 사용하면 가상 머신 생성 프로세스가 활성화됩니다.

부팅 소스가 없는 템플릿은 부팅 소스 필요로 라벨이 지정됩니다. 가상 머신에 부팅 소스를 추가하는 단계를 완료하면 이러한 템플릿을 사용할 수 있습니다.

중요

스토리지 동작의 차이로 인해 일부 가상 머신 템플릿은 단일 노드 OpenShift와 호환되지 않습니다. 호환성을 보장하기 위해 데이터 볼륨 또는 스토리지 프로필을 사용하는 템플릿 또는 가상 머신의 evictionStrategy 필드를 설정하지 마십시오.

9.1.1. 빠른 시작을 사용한 가상 머신 생성

웹 콘솔은 가상 머신을 생성하기 위한 명령 기능 둘러보기가 포함된 빠른 시작을 제공합니다. 관리자로 도움말 메뉴를 선택하여 빠른 시작 카탈로그에 액세스할 수 있습니다. 빠른 시작 타일을 클릭하고 둘러보기를 시작할 때 시스템이 프로세스를 안내합니다.

빠른 시작의 작업은 Red Hat 템플릿을 선택하면 시작됩니다. 그런 다음 부팅 소스를 추가하고 운영 체제 이미지를 가져올 수 있습니다. 마지막으로 사용자 지정 템플릿을 저장하고 가상 머신을 생성할 수 있습니다.

사전 요구 사항

  • 운영 체제 이미지의 URL 링크를 다운로드할 수 있는 웹 사이트에 액세스합니다.

절차

  1. 웹 콘솔의 도움말 메뉴에서 빠른 시작을 선택합니다.
  2. 빠른 시작 카탈로그에서 타일을 클릭합니다. 예: Red Hat Linux Enterprise Linux 가상 머신 생성.
  3. 기능 둘러보기의 지침에 따라 운영 체제 이미지를 가져오고 가상 머신을 생성하는 작업을 완료합니다. 가상화 VirtualMachines 페이지에 가상 머신이 표시됩니다.

9.1.2. 가상 머신 생성 빠른 생성

사용 가능한 부팅 소스와 함께 템플릿을 사용하여 VM(가상 머신)을 빠르게 생성할 수 있습니다.

절차

  1. 사이드 메뉴에서 가상화 카탈로그 를 클릭합니다.
  2. 부팅 소스가 있는 템플릿을 필터링하려면 사용 가능한 부팅 소스를 클릭합니다.

    참고

    기본적으로 템플릿 목록은 기본 템플릿 만 표시합니다. 필터링 시 모든 항목을 클릭하여 선택한 필터에 사용 가능한 모든 템플릿을 확인합니다.

  3. 템플릿을 클릭하여 세부 정보를 확인합니다.
  4. 빠른 생성 VirtualMachine 를 클릭하여 템플릿에서 VM을 생성합니다.

    가상 머신 세부 정보 페이지가 배포 상태와 함께 표시됩니다.

검증

  1. 이벤트를 클릭하여 VM이 프로비저닝될 때 이벤트 스트림을 확인합니다.
  2. 콘솔을 클릭하여 VM이 성공적으로 부팅되었는지 확인합니다.

9.1.3. 사용자 지정된 템플릿에서 가상 머신 생성

일부 템플릿에는 추가 매개변수(예: 부팅 소스가 있는 PVC)가 필요합니다. 템플릿에서 선택한 매개변수를 사용자 지정하여 VM(가상 머신)을 생성할 수 있습니다.

절차

  1. 웹 콘솔에서 템플릿을 선택합니다.

    1. 사이드 메뉴에서 가상화 카탈로그 를 클릭합니다.
    2. 선택 사항: 프로젝트, 키워드, 운영 체제 또는 워크로드 프로필로 템플릿을 필터링합니다.
    3. 사용자 지정할 템플릿을 클릭합니다.
  2. Customize VirtualMachine 를 클릭합니다.
  3. NameDisk 소스를 포함하여 VM의 매개변수를 지정합니다. 선택적으로 복제할 데이터 소스를 지정할 수 있습니다.

검증

  1. 이벤트를 클릭하여 VM이 프로비저닝될 때 이벤트 스트림을 확인합니다.
  2. 콘솔을 클릭하여 VM이 성공적으로 부팅되었는지 확인합니다.

웹 콘솔에서 VM을 생성할 때 가상 머신 필드 섹션을 참조하십시오.

9.1.3.1. 가상 머신 필드

다음 표에는 OpenShift Container Platform 웹 콘솔에서 편집할 수 있는 가상 머신 필드가 나열되어 있습니다.

표 9.1. 가상 머신 필드
필드 또는 기능

개요

  • 설명
  • CPU/Memory
  • 부팅 모드
  • GPU 장치
  • 호스트 장치

YAML

  • 사용자 정의 리소스를 보고 편집하거나 다운로드합니다.

스케줄링

  • 노드 선택기
  • 허용 오차
  • 유사성 규칙
  • 전용 리소스
  • 제거 전략
  • Descheduler 설정

환경

  • 구성 맵, 시크릿 또는 서비스 계정을 추가, 편집 또는 삭제합니다.

네트워크 인터페이스

  • 네트워크 인터페이스를 추가, 편집 또는 삭제합니다.

디스크

  • 디스크를 추가, 편집 또는 삭제합니다.

스크립트

  • cloud-init 설정
  • 인증된 SSH 키
  • sysprep 응답 파일

메타데이터

  • 라벨
  • 주석
9.1.3.1.1. 네트워킹 필드
이름설명

이름

네트워크 인터페이스 컨트롤러의 이름입니다.

모델

네트워크 인터페이스 컨트롤러의 모델을 나타냅니다. 지원되는 값은 e1000evirtio입니다.

네트워크

사용 가능한 네트워크 연결 정의 목록입니다.

유형

사용 가능한 바인딩 방법 목록입니다. 네트워크 인터페이스에 적합한 바인딩 방법을 선택합니다.

  • 기본 Pod 네트워크: masquerade
  • Linux 브리지 네트워크: 브리지
  • SR-IOV 네트워크: SR-IOV

MAC 주소

네트워크 인터페이스 컨트롤러의 MAC 주소입니다. MAC 주소를 지정하지 않으면 주소가 자동으로 할당됩니다.

9.1.3.2. 스토리지 필드

이름선택설명

소스

비어있음 (PVC 생성)

빈 디스크를 만듭니다.

URL을 통해 가져오기(PVC 생성)

URL(HTTP 또는 HTTPS 끝점)을 통해 콘텐츠를 가져옵니다.

기존 PVC 사용

클러스터에서 이미 사용 가능한 PVC를 사용합니다.

기존 PVC 복제 (PVC 생성)

클러스터에서 사용 가능한 기존 PVC를 선택하고 복제합니다.

레지스트리를 통해 가져오기(PVC 생성)

컨테이너 레지스트리를 통해 콘텐츠를 가져옵니다.

컨테이너 (임시)

클러스터에서 액세스할 수 있는 레지스트리에 있는 컨테이너에서 콘텐츠를 업로드합니다. 컨테이너 디스크는 CD-ROM 또는 임시 가상 머신과 같은 읽기 전용 파일 시스템에만 사용해야 합니다.

이름

 

디스크 이름입니다. 이름에는 소문자(a-z), 숫자(0-9), 하이픈(-), 마침표(.)가 최대 253자까지 포함될 수 있습니다. 첫 문자와 마지막 문자는 영숫자여야 합니다. 이름에는 대문자, 공백 또는 특수 문자가 포함되어서는 안 됩니다.

크기

 

디스크 크기(GiB)입니다.

유형

 

디스크의 유형입니다. 예: 디스크 또는 CD-ROM

인터페이스

 

디스크 장치의 유형입니다. 지원되는 인터페이스는 virtIO, SATA, SCSI입니다.

스토리지 클래스

 

디스크를 만드는 데 사용되는 스토리지 클래스입니다.

고급 스토리지 설정

다음 고급 스토리지 설정은 선택 사항이며 비어 있는 Blank,URL을 통해 가져오기, 기존 PVC 복제 디스크에 사용할 수 있습니다. OpenShift Virtualization 4.11 이전에는 이러한 매개변수를 지정하지 않으면 kubevirt-storage-class-defaults 구성 맵의 기본값이 사용됩니다. OpenShift Virtualization 4.11 이상에서는 시스템에서 스토리지 프로필 의 기본값을 사용합니다.

참고

OpenShift Virtualization용 스토리지를 프로비저닝할 때 스토리지 프로필을 사용하여 일관된 고급 스토리지 설정을 보장합니다.

볼륨 모드액세스 모드를 수동으로 지정하려면 기본적으로 최적화된 StorageProfile 설정 적용 확인란의 선택을 취소해야 합니다.

이름모드 설명매개변수매개변수 설명

볼륨 모드

영구 볼륨에서 포맷된 파일 시스템을 사용하는지 또는 원시 블록 상태를 사용하는지를 정의합니다. 기본값은 Filesystem입니다.

파일 시스템

파일 시스템 기반 볼륨에 가상 디스크를 저장합니다.

블록

가상 디스크를 블록 볼륨에 직접 저장합니다. 기본 스토리지에서 지원하는 경우에만 Block을 사용하십시오.

액세스 모드

영구 볼륨의 액세스 모드입니다.

ReadWriteOnce (RWO)

볼륨은 단일 노드에서 읽기-쓰기로 마운트할 수 있습니다.

ReadWriteMany (RWX)

볼륨은 한 번에 여러 노드에서 읽기-쓰기로 마운트할 수 있습니다.

참고

이는 가상 머신의 노드 간 실시간 마이그레이션 등 일부 기능에 필요합니다.

ReadOnlyMany (ROX)

볼륨은 여러 노드에서만 읽기로 마운트할 수 있습니다.

9.1.3.3. Cloud-init 필드

이름설명

호스트 이름

가상 머신의 특정 호스트 이름을 설정합니다.

승인된 SSH 키

가상 머신의 ~/.ssh/authorized_keys에 복사되는 사용자의 공개 키입니다.

사용자 정의 스크립트

기타 옵션을 사용자 정의 cloud-init 스크립트를 붙여넣는 필드로 교체합니다.

스토리지 클래스 기본값을 구성하려면 스토리지 프로필을 사용합니다. 자세한 내용은 스토리지 프로필 사용자 지정을 참조하십시오.

9.1.3.4. 사전 구성된 YAML 파일에 붙여넣어 가상 머신 생성

YAML 구성 파일을 쓰거나 붙여넣어 가상 머신을 생성합니다. YAML 편집 화면을 열 때마다 기본적으로 유효한 example 가상 머신 구성이 제공됩니다.

생성을 클릭할 때 YAML 구성이 유효하지 않으면 오류 메시지에 오류가 발생하는 매개변수가 표시됩니다. 한 번에 하나의 오류만 표시됩니다.

참고

편집하는 동안 YAML 화면을 벗어나면 구성 변경 사항이 취소됩니다.

절차

  1. 사이드 메뉴에서 가상화 VirtualMachine를 클릭합니다.
  2. 생성을 클릭하고 YAML 사용 을 선택합니다.
  3. 편집 가능한 창에서 가상 머신 구성을 작성하거나 붙여넣습니다.

    1. 또는 YAML 화면에서 기본적으로 제공되는 example 가상 머신을 사용하십시오.
  4. 선택 사항: YAML 구성 파일을 현재 상태로 다운로드하려면 다운로드를 클릭합니다.
  5. 생성을 클릭하여 가상 머신을 생성합니다.

가상 머신이 VirtualMachines 페이지에 나열됩니다.

9.1.4. CLI를 사용하여 가상 머신 생성

virtualMachine 매니페스트에서 가상 머신을 생성할 수 있습니다.

절차

  1. VM의 VirtualMachine 매니페스트를 편집합니다. 예를 들어 다음 매니페스트에서는 RHEL(Red Hat Enterprise Linux) VM을 구성합니다.

    예 9.1. RHEL VM의 매니페스트 예

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      labels:
        app: <vm_name> 1
      name: <vm_name>
    spec:
      dataVolumeTemplates:
      - apiVersion: cdi.kubevirt.io/v1beta1
        kind: DataVolume
        metadata:
          name: <vm_name>
        spec:
          sourceRef:
            kind: DataSource
            name: rhel9
            namespace: openshift-virtualization-os-images
          storage:
            resources:
              requests:
                storage: 30Gi
      running: false
      template:
        metadata:
          labels:
            kubevirt.io/domain: <vm_name>
        spec:
          domain:
            cpu:
              cores: 1
              sockets: 2
              threads: 1
            devices:
              disks:
              - disk:
                  bus: virtio
                name: rootdisk
              - disk:
                  bus: virtio
                name: cloudinitdisk
              interfaces:
              - masquerade: {}
                name: default
              rng: {}
            features:
              smm:
                enabled: true
            firmware:
              bootloader:
                efi: {}
            resources:
              requests:
                memory: 8Gi
          evictionStrategy: LiveMigrate
          networks:
          - name: default
            pod: {}
          volumes:
          - dataVolume:
              name: <vm_name>
            name: rootdisk
          - cloudInitNoCloud:
              userData: |-
                #cloud-config
                user: cloud-user
                password: '<password>' 2
                chpasswd: { expire: False }
            name: cloudinitdisk
    1
    가상 머신의 이름을 지정합니다.
    2
    cloud-user의 암호를 지정합니다.
  2. 매니페스트 파일을 사용하여 가상 머신을 생성합니다.

    $ oc create -f <vm_manifest_file>.yaml
  3. 선택 사항: 가상 머신을 시작합니다.

    $ virtctl start <vm_name>

9.1.5. 가상 머신 스토리지 볼륨 유형

스토리지 볼륨 유형설명

임시

네트워크 볼륨을 읽기 전용 백업 저장소로 사용하는 로컬 COW(기록 중 복사) 이미지입니다. 백업 볼륨은 PersistentVolumeClaim이어야 합니다. 임시 이미지는 가상 머신이 시작되고 모든 쓰기를 로컬로 저장할 때 생성됩니다. 임시 이미지는 가상 머신이 중지, 재시작 또는 삭제될 때 삭제됩니다. 백업 볼륨(PVC)은 어떤 식으로든 변경되지 않습니다.

persistentVolumeClaim

사용 가능한 PV를 가상 머신에 연결합니다. PV를 연결하면 세션이 바뀌어도 가상 머신 데이터가 지속됩니다.

기존 가상 머신을 OpenShift Container Platform으로 가져올 때는 CDI를 사용하여 기존 가상 머신 디스크를 PVC로 가져와서 PVC를 가상 머신 인스턴스에 연결하는 것이 좋습니다. PVC 내에서 디스크를 사용하려면 몇 가지 요구 사항이 있습니다.

dataVolume

데이터 볼륨은 가져오기, 복제 또는 업로드 작업을 통해 가상 머신 디스크를 준비하는 프로세스를 관리하여 PersistentVolumeClaim 디스크 유형에 빌드합니다. 이 볼륨 유형을 사용하는 VM은 볼륨이 준비된 후 시작할 수 있습니다.

type: dataVolume 또는 type: ""로 지정합니다. type에 다른 값(예: persistentVolumeClaim)을 지정하면 경고가 표시되고 가상 머신이 시작되지 않습니다.

cloudInitNoCloud

참조된 cloud-init NoCloud 데이터 소스가 포함된 디스크를 연결하여 가상 머신에 사용자 데이터 및 메타데이터를 제공합니다. 가상 머신 디스크 내부에 cloud-init을 설치해야 합니다.

containerDisk

컨테이너 이미지 레지스트리에 저장된 가상 머신 디스크와 같은 이미지를 참조합니다. 이 이미지는 가상 머신이 시작될 때 레지스트리에서 가져와서 가상 머신에 디스크로 연결됩니다.

containerDisk 볼륨은 단일 가상 머신에 국한되지 않으며, 영구 스토리지가 필요하지 않은 다수의 가상 머신 클론을 생성하는 데 유용합니다.

컨테이너 이미지 레지스트리에는 RAW 및 QCOW2 형식의 디스크 유형만 지원됩니다. 이미지 크기를 줄이기 위해 QCOW2를 사용하는 것이 좋습니다.

참고

containerDisk는 임시 볼륨입니다. 이 볼륨은 가상 머신이 중지, 재시작 또는 삭제될 때 삭제됩니다. containerDisk 볼륨은 CD-ROM과 같은 읽기 전용 파일 시스템이나 일회용 가상 머신에 유용합니다.

emptyDisk

가상 머신 인터페이스의 라이프사이클에 연결된 추가 스파스(sparse) QCOW2 디스크를 생성합니다. 해당 데이터는 가상 머신에서 게스트가 시작한 재부팅 후에는 유지되지만 가상 머신이 중지되거나 웹 콘솔에서 재시작되면 삭제됩니다. 빈 디스크는 임시 디스크의 제한된 임시 파일 시스템 크기를 초과하지 않도록 애플리케이션 종속성 및 데이터를 저장하는 데 사용됩니다.

디스크 용량 크기도 제공해야 합니다.

9.1.6. 가상 머신 RunStrategies 정보

가상 머신에 대한 RunStrategy는 일련의 조건에 따라 VMI(가상 머신 인스턴스)의 동작을 결정합니다. spec.runStrategy 설정은 spec.running 설정의 대안으로, 가상 머신 구성 프로세스 내에 있습니다. spec.runStrategy 설정을 사용하면 true 또는 false 응답만 있는 spec.running 설정과 달리 VMI를 만들고 관리하는 방법에 대한 유연성을 높일 수 있습니다. 그러나 두 설정은 함께 사용할 수 없습니다. spec.running 또는 spec.runStrategy 중 하나만 사용할 수 있습니다. 둘 다 사용하면 오류가 발생합니다.

RunStrategies는 다음과 같이 네 가지로 정의되어 있습니다.

Always
가상 머신이 생성될 때 VMI가 항상 존재합니다. 어떠한 이유로 원본이 중지되면 새 VMI가 생성되는데, 이러한 동작은 spec.running: true와 동일합니다.
RerunOnFailure
오류로 인해 이전 인스턴스가 실패하면 VMI가 다시 생성됩니다. 가상 머신이 종료될 때와 같이 성공적으로 중지되면 인스턴스가 다시 생성되지 않습니다.
Manual
start, stop, restart virtctl 클라이언트 명령을 사용하여 VMI의 상태 및 존재를 제어할 수 있습니다.
Halted
가상 머신이 생성될 때 VMI가 존재하지 않으며 이 동작은 spec.running: false와 동일합니다.

start, stop, restart virtctl 명령의 다양한 조합은 사용되는 RunStrategy에 영향을 미칩니다.

다음 표에는 다양한 상태에 따른 VM 전환이 표시되어 있습니다. 첫 번째 열에는 VM의 초기 RunStrategy가 표시되어 있습니다. 각 추가 열에는 virtctl 명령과 해당 명령이 실행된 후의 새 RunStrategy가 표시되어 있습니다.

초기 RunStrategy시작중지재시작

Always

-

Halted

Always

RerunOnFailure

-

Halted

RerunOnFailure

Manual

Manual

Manual

Manual

Halted

Always

-

-

참고

설치 관리자 프로비저닝 인프라를 사용하여 설치한 OpenShift Virtualization 클러스터에서 노드가 MachineHealthCheck에 실패하여 클러스터에서 노드를 사용할 수 없는 경우, 새 노드에 RunStrategy가 Always 또는 RerunOnFailure인 VM이 다시 예약됩니다.

apiVersion: kubevirt.io/v1
kind: VirtualMachine
spec:
  RunStrategy: Always 1
  template:
...
1
VMI의 현재 RunStrategy 설정입니다.

9.1.7. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.