검색

7.12. OpenShift Pipelines를 사용하여 가상 머신 관리

download PDF

Red Hat OpenShift Pipelines 는 Kubernetes 네이티브 CI/CD 프레임워크로, 개발자가 자체 컨테이너에서 CI/CD 파이프라인의 각 단계를 설계 및 실행할 수 있습니다.

SSP(Scheduling, Scale, Performance) Operator는 OpenShift Virtualization과 OpenShift Pipelines를 통합합니다. SSP Operator에는 다음을 수행할 수 있는 작업 및 예제 파이프라인이 포함되어 있습니다.

  • 가상 머신(VM), PVC(영구 볼륨 클레임) 및 데이터 볼륨 생성 및 관리
  • VM에서 명령 실행
  • libguestfs 툴을 사용하여 디스크 이미지 조작
중요

Red Hat OpenShift Pipelines를 사용하여 가상 머신을 관리하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

7.12.1. 사전 요구 사항

7.12.2. 스케줄링, 스케일 및 성능(SSP) 리소스 배포

OpenShift Virtualization을 설치할 때 SSP Operator 예제 Tekton Tasks 및 Pipelines는 기본적으로 배포되지 않습니다. SSP Operator의 Tekton 리소스를 배포하려면 HyperConverged CR(사용자 정의 리소스)에서 deployTektonTaskResources 기능 게이트를 활성화합니다.

프로세스

  1. 다음 명령을 실행하여 기본 편집기에서 HyperConverged CR을 엽니다.

    $ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
  2. spec.featureGates.deployTektonTaskResources 필드를 true 로 설정합니다.

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
      namespace: kubevirt-hyperconverged
    spec:
      tektonPipelinesNamespace: <user_namespace> 1
      featureGates:
        deployTektonTaskResources: true 2
    # ...
    1
    파이프라인을 실행할 네임스페이스입니다.
    2
    SSP Operator에 의해 Tekton 리소스를 배포하기 위해 기능 게이트를 활성화합니다.
    참고

    나중에 기능 게이트를 비활성화하더라도 작업 및 예제 파이프라인을 계속 사용할 수 있습니다.

  3. 변경 사항을 저장하고 편집기를 종료합니다.

7.12.3. SSP Operator에서 지원하는 가상 머신 작업

다음 표에서는 SSP Operator의 일부로 포함된 작업을 보여줍니다.

표 7.4. SSP Operator에서 지원하는 가상 머신 작업
Task설명

create-vm-from-manifest

제공된 매니페스트 또는 virtctl 을 사용하여 가상 머신을 생성합니다.

create-vm-from-template

템플릿에서 가상 머신을 생성합니다.

copy-template

가상 머신 템플릿을 복사합니다.

modify-vm-template

가상 머신 템플릿을 수정합니다.

modify-data-object

데이터 볼륨 또는 데이터 소스를 생성하거나 삭제합니다.

cleanup-vm

가상 머신에서 스크립트 또는 명령을 실행하고 나중에 가상 머신을 중지하거나 삭제합니다.

disk-virt-customize

virt-customize 툴을 사용하여 대상 PVC에서 사용자 지정 스크립트를 실행합니다.

disk-virt-sysprep

virt-sysprep 툴을 사용하여 대상 PVC에서 sysprep 스크립트를 실행합니다.

wait-for-vmi-status

가상 머신 인스턴스의 특정 상태를 기다린 후 상태에 따라 실패하거나 성공합니다.

참고

이제 파이프라인에서 가상 머신 생성에서 더 이상 사용되지 않는 템플릿 기반 작업 대신 ClusterInstanceTypeClusterPreference 를 사용합니다. create-vm-from-template,copy-template, modify-vm-template 명령은 계속 사용할 수 있지만 기본 파이프라인 작업에는 사용되지 않습니다.

7.12.4. 파이프라인의 예

SSP Operator에는 다음 예제 Pipeline 매니페스트가 포함되어 있습니다. 웹 콘솔 또는 CLI를 사용하여 예제 파이프라인을 실행할 수 있습니다.

여러 버전의 Windows가 필요한 경우 둘 이상의 설치 프로그램 pipline을 실행해야 할 수 있습니다. 둘 이상의 설치 프로그램 파이프라인을 실행하는 경우 각각 autounattend 구성 맵 및 기본 이미지 이름과 같은 고유한 매개변수가 필요합니다. 예를 들어 Windows 10 및 Windows 11 또는 Windows Server 2022 이미지가 필요한 경우 Windows efi 설치 프로그램 파이프라인과 Windows bios 설치 프로그램 파이프라인을 모두 실행해야 합니다. 그러나 Windows 11 및 Windows Server 2022 이미지가 필요한 경우 Windows efi 설치 프로그램 파이프라인만 실행해야 합니다.

Windows EFI 설치 프로그램 파이프라인
이 파이프라인은 Windows 11 또는 Windows Server 2022를 Windows 설치 이미지(ISO 파일)에서 새 데이터 볼륨에 설치합니다. 사용자 지정 응답 파일은 설치 프로세스를 실행하는 데 사용됩니다.
Windows BIOS 설치 프로그램 파이프라인
이 파이프라인은 ISO 파일이라고도 하는 Windows 설치 이미지의 새 데이터 볼륨에 Windows 10을 설치합니다. 사용자 지정 응답 파일은 설치 프로세스를 실행하는 데 사용됩니다.
Windows 사용자 정의 파이프라인
이 파이프라인은 기본 Windows 10, 11 또는 Windows Server 2022 설치의 데이터 볼륨을 복제하고 Microsoft SQL Server Express 또는 Microsoft Visual Studio Code를 설치하여 사용자 지정한 다음 새 이미지 및 템플릿을 생성합니다.
참고

예제 파이프라인은 OpenShift Container Platform에서 사전 정의된 sysprep 과 함께 구성 맵 파일을 사용하고 Microsoft ISO 파일에 적합합니다. 다른 Windows Edition과 관련된 ISO 파일의 경우 시스템별 sysprep 정의를 사용하여 새 구성 맵 파일을 생성해야 할 수 있습니다.

7.12.4.1. 웹 콘솔을 사용하여 예제 파이프라인 실행

웹 콘솔의 파이프라인 메뉴에서 예제 파이프라인 을 실행할 수 있습니다.

프로세스

  1. 사이드 메뉴에서 파이프라인 파이프라인 을 클릭합니다.
  2. 파이프라인 세부 정보 페이지를 열려면 파이프라인 을 선택합니다.
  3. 작업 목록에서 시작을 선택합니다. Start Pipeline 대화 상자가 표시됩니다.
  4. 매개변수의 기본값을 유지하고 시작을 클릭하여 파이프라인을 실행합니다. 세부 정보 탭에서는 각 작업의 진행 상황을 추적하고 파이프라인 상태를 표시합니다.

7.12.4.2. CLI를 사용하여 예제 파이프라인 실행

PipelineRun 리소스를 사용하여 예제 파이프라인을 실행합니다. PipelineRun 오브젝트는 파이프라인의 실행 중인 인스턴스입니다. 클러스터에서 특정 입력, 출력 및 실행 매개변수를 사용하여 실행할 파이프라인을 인스턴스화합니다. 또한 파이프라인의 각 작업에 대해 TaskRun 오브젝트를 생성합니다.

프로세스

  1. Windows 10 설치 프로그램 파이프라인을 실행하려면 다음 PipelineRun 매니페스트를 생성합니다.

    apiVersion: tekton.dev/v1beta1
    kind: PipelineRun
    metadata:
      generateName: windows10-installer-run-
      labels:
        pipelinerun: windows10-installer-run
    spec:
      params:
      - name: winImageDownloadURL
        value: <link_to_windows_10_iso> 1
      pipelineRef:
        name: windows10-installer
      taskRunSpecs:
        - pipelineTaskName: copy-template
          taskServiceAccountName: copy-template-task
        - pipelineTaskName: modify-vm-template
          taskServiceAccountName: modify-vm-template-task
        - pipelineTaskName: create-vm-from-template
          taskServiceAccountName: create-vm-from-template-task
        - pipelineTaskName: wait-for-vmi-status
          taskServiceAccountName: wait-for-vmi-status-task
        - pipelineTaskName: create-base-dv
          taskServiceAccountName: modify-data-object-task
        - pipelineTaskName: cleanup-vm
          taskServiceAccountName: cleanup-vm-task
      status: {}
    1
    Windows 10 64비트 ISO 파일의 URL을 지정합니다. 제품 언어는 영어(미국)여야 합니다.
  2. PipelineRun 매니페스트를 적용합니다.

    $ oc apply -f windows10-installer-run.yaml
  3. Windows 10 사용자 지정 파이프라인을 실행하려면 다음 PipelineRun 매니페스트를 생성합니다.

    apiVersion: tekton.dev/v1beta1
    kind: PipelineRun
    metadata:
      generateName: windows10-customize-run-
      labels:
        pipelinerun: windows10-customize-run
    spec:
      params:
        - name: allowReplaceGoldenTemplate
          value: true
        - name: allowReplaceCustomizationTemplate
          value: true
      pipelineRef:
        name: windows10-customize
      taskRunSpecs:
        - pipelineTaskName: copy-template-customize
          taskServiceAccountName: copy-template-task
        - pipelineTaskName: modify-vm-template-customize
          taskServiceAccountName: modify-vm-template-task
        - pipelineTaskName: create-vm-from-template
          taskServiceAccountName: create-vm-from-template-task
        - pipelineTaskName: wait-for-vmi-status
          taskServiceAccountName: wait-for-vmi-status-task
        - pipelineTaskName: create-base-dv
          taskServiceAccountName: modify-data-object-task
        - pipelineTaskName: cleanup-vm
          taskServiceAccountName: cleanup-vm-task
        - pipelineTaskName: copy-template-golden
          taskServiceAccountName: copy-template-task
        - pipelineTaskName: modify-vm-template-golden
          taskServiceAccountName: modify-vm-template-task
    status: {}
  4. PipelineRun 매니페스트를 적용합니다.

    $ oc apply -f windows10-customize-run.yaml

7.12.5. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.