2.9. RHV에서 컴퓨팅 머신 세트 생성

RHV(Red Hat Virtualization)의 OpenShift Container Platform 클러스터에서 특정 목적을 충족하기 위해 다른 컴퓨팅 머신 세트를 생성할 수 있습니다. 예를 들어, 지원되는 워크로드를 새 머신으로 이동할 수 있도록 인프라 머신 세트 및 관련 머신을 작성할 수 있습니다.

중요

머신 API가 작동하는 클러스터에서만 고급 머신 관리 및 스케일링 기능을 사용할 수 있습니다. 사용자 프로비저닝 인프라가 있는 클러스터에는 Machine API를 사용하려면 추가 검증 및 구성이 필요합니다.

인프라 플랫폼 유형의 클러스터가 Machine API를 사용할 수 없습니다. 이 제한은 클러스터에 연결된 컴퓨팅 시스템이 기능을 지원하는 플랫폼에 설치된 경우에도 적용됩니다. 이 매개변수는 설치 후 변경할 수 없습니다.

클러스터의 플랫폼 유형을 보려면 다음 명령을 실행합니다.

$ oc get infrastructure cluster -o jsonpath='{.status.platform}'

2.9.1. RHV에서 컴퓨팅 머신 세트 사용자 정의 리소스의 샘플 YAML

이 샘플 YAML은 RHV에서 실행되는 컴퓨팅 머신 세트를 정의하고 node-role.kubernetes.io/<node_role>: "" 로 레이블이 지정된 노드를 만듭니다.

이 샘플에서 <infrastructure_id>는 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID 레이블이며 <role>은 추가할 노드 레이블입니다.

apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
metadata:
  labels:
    machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1
    machine.openshift.io/cluster-api-machine-role: <role> 2
    machine.openshift.io/cluster-api-machine-type: <role> 3
  name: <infrastructure_id>-<role> 4
  namespace: openshift-machine-api
spec:
  replicas: <number_of_replicas> 5
  Selector: 6
    matchLabels:
      machine.openshift.io/cluster-api-cluster: <infrastructure_id> 7
      machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role> 8
  template:
    metadata:
      labels:
        machine.openshift.io/cluster-api-cluster: <infrastructure_id> 9
        machine.openshift.io/cluster-api-machine-role: <role> 10
        machine.openshift.io/cluster-api-machine-type: <role> 11
        machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role> 12
    spec:
      metadata:
        labels:
          node-role.kubernetes.io/<role>: "" 13
      providerSpec:
        value:
          apiVersion: ovirtproviderconfig.machine.openshift.io/v1beta1
          cluster_id: <ovirt_cluster_id> 14
          template_name: <ovirt_template_name> 15
          sparse: <boolean_value> 16
          format: <raw_or_cow> 17
          cpu: 18
            sockets: <number_of_sockets> 19
            cores: <number_of_cores> 20
            threads: <number_of_threads> 21
          memory_mb: <memory_size> 22
          guaranteed_memory_mb:  <memory_size> 23
          os_disk: 24
            size_gb: <disk_size> 25
            storage_domain_id: <storage_domain_UUID> 26
          network_interfaces: 27
            vnic_profile_id:  <vnic_profile_id> 28
          credentialsSecret:
            name: ovirt-credentials 29
          kind: OvirtMachineProviderSpec
          type: <workload_type> 30
          auto_pinning_policy: <auto_pinning_policy> 31
          hugepages: <hugepages> 32
          affinityGroupsNames:
            - compute 33
          userDataSecret:
            name: worker-user-data
1 7 9
클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로하는 인프라 ID를 지정합니다. OpenShift CLI (oc) 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
2 3 10 11 13
추가할 노드 레이블을 지정합니다.
4 8 12
인프라 ID 및 노드 레이블을 지정합니다. 이 두 문자열은 35자를 초과할 수 없습니다.
5
생성할 머신 수를 지정합니다.
6
머신의 선택기입니다.
14
이 VM 인스턴스가 속하는 RHV 클러스터의 UUID를 지정합니다.
15
머신을 생성하는 데 사용할 RHV VM 템플릿을 지정합니다.
16
이 옵션을 false 로 설정하면 디스크 사전 할당이 가능합니다. 기본값은 true입니다. formatraw 로 설정하여 sparsetrue 로 설정하는 것은 블록 스토리지 도메인에서 사용할 수 없습니다. 원시 형식은 전체 가상 디스크를 기본 물리적 디스크에 씁니다.
17
또는 초로 설정할 수 있습니다. 기본값은 Hus 입니다. 형식은 가상 머신에 최적화되어 있습니다.
참고

파일 스토리지 도메인의 디스크를 사전 할당하면 0이 파일에 씁니다. 실제로 기본 스토리지에 따라 디스크를 사전 할당하지 못할 수 있습니다.

18
선택 사항: CPU 필드에 소켓, 코어 및 스레드를 포함한 CPU 구성이 포함되어 있습니다.
19
선택 사항: VM의 소켓 수를 지정합니다.
20
선택 사항: 소켓당 코어 수를 지정합니다.
21
선택 사항: 코어당 스레드 수를 지정합니다.
22
선택 사항: VM의 메모리 크기를 MiB로 지정합니다.
23
선택 사항: 가상 머신의 보장 메모리 크기를 MiB 단위로 지정합니다. 이는 투표 메커니즘에 의해 드레이닝되지 않도록 보장되는 메모리의 양입니다. 자세한 내용은 설명 된 Memory Ballooning and Optimization Settings 을 참조하십시오.
24
선택사항: 노드의 루트 디스크입니다.
25
선택사항: 부팅 가능한 디스크 크기를 GiB로 지정합니다.
26
선택 사항: 계산 노드의 디스크에 대한 스토리지 도메인의 UUID를 지정합니다. 컴퓨팅 노드가 제공되지 않는 경우 제어 노드와 동일한 스토리지 도메인에 컴퓨팅 노드가 생성됩니다. (기본값)
27
선택사항: VM의 네트워크 인터페이스 목록입니다. 이 매개변수를 포함하는 경우 OpenShift Container Platform은 템플릿에서 모든 네트워크 인터페이스를 삭제하고 새 네트워크 인터페이스를 생성합니다.
28
선택사항: vNIC 프로필 ID를 지정합니다.
29
RHV 인증 정보를 보유한 시크릿 오브젝트의 이름을 지정합니다.
30
선택 사항: 인스턴스가 최적화된 워크로드 유형을 지정합니다. 이 값은 RHV VM 매개변수에 영향을 미칩니다. 지원되는 값은 desktop,server (기본값), high_performance 입니다. high_performance 는 VM의 성능을 향상시킵니다. 제한 사항이 있습니다. 예를 들어 그래픽 콘솔을 사용하여 VM에 액세스할 수 없습니다. 자세한 내용은 가상 머신 관리 가이드에서 고성능 가상 머신, 템플릿 및 풀 구성을 참조하십시오.
31
선택 사항: AutoPinningPolicy는 이 인스턴스의 호스트에 고정을 포함하여 CPU 및 NUMA 설정을 자동으로 설정하는 정책을 정의합니다. 지원되는 값: none,resize_and_pin. 자세한 내용은 가상 머신 관리 가이드에서 NUMA 노드 설정을 참조하십시오.
32
선택 사항: Hugepages는 VM에서 hugepages를 정의하는 KiB 크기입니다. 지원되는 값: 2048 또는 1048576. 자세한 내용은 가상 머신 관리 가이드에서 Huge Pages 구성을 참조하십시오.
33
선택 사항: VM에 적용할 선호도 그룹 이름 목록입니다. 선호도 그룹은 oVirt에 있어야 합니다.
참고

RHV는 VM을 생성할 때 템플릿을 사용하므로 선택적 매개변수에 대한 값을 지정하지 않으면 RHV는 템플릿에 지정된 해당 매개변수의 값을 사용합니다.

2.9.2. 컴퓨팅 머신 세트 생성

설치 프로그램에서 생성한 컴퓨팅 머신 세트 외에도 고유한 머신 세트를 생성하여 선택한 특정 워크로드의 머신 컴퓨팅 리소스를 동적으로 관리할 수 있습니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터를 배포합니다.
  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 oc에 로그인합니다.

절차

  1. 컴퓨팅 머신 세트 CR(사용자 정의 리소스) 샘플이 포함된 새 YAML 파일을 만들고 < file_name>.yaml 이라는 이름을 지정합니다.

    <clusterID><role> 매개 변수 값을 설정해야 합니다.

  2. 선택 사항: 특정 필드에 설정할 값이 확실하지 않은 경우 클러스터에서 기존 컴퓨팅 머신 세트를 확인할 수 있습니다.

    1. 클러스터의 컴퓨팅 머신 세트를 나열하려면 다음 명령을 실행합니다.

      $ oc get machinesets -n openshift-machine-api

      출력 예

      NAME                                DESIRED   CURRENT   READY   AVAILABLE   AGE
      agl030519-vplxk-worker-us-east-1a   1         1         1       1           55m
      agl030519-vplxk-worker-us-east-1b   1         1         1       1           55m
      agl030519-vplxk-worker-us-east-1c   1         1         1       1           55m
      agl030519-vplxk-worker-us-east-1d   0         0                             55m
      agl030519-vplxk-worker-us-east-1e   0         0                             55m
      agl030519-vplxk-worker-us-east-1f   0         0                             55m

    2. 특정 컴퓨팅 머신 세트 CR(사용자 정의 리소스)의 값을 보려면 다음 명령을 실행합니다.

      $ oc get machineset <machineset_name> \
        -n openshift-machine-api -o yaml

      출력 예

      apiVersion: machine.openshift.io/v1beta1
      kind: MachineSet
      metadata:
        labels:
          machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1
        name: <infrastructure_id>-<role> 2
        namespace: openshift-machine-api
      spec:
        replicas: 1
        selector:
          matchLabels:
            machine.openshift.io/cluster-api-cluster: <infrastructure_id>
            machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>
        template:
          metadata:
            labels:
              machine.openshift.io/cluster-api-cluster: <infrastructure_id>
              machine.openshift.io/cluster-api-machine-role: <role>
              machine.openshift.io/cluster-api-machine-type: <role>
              machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>
          spec:
            providerSpec: 3
              ...

      1
      클러스터 인프라 ID입니다.
      2
      기본 노드 레이블입니다.
      참고

      사용자 프로비저닝 인프라가 있는 클러스터의 경우 컴퓨팅 머신 세트는 작업자 및 인프라 유형 머신만 생성할 수 있습니다.

      3
      컴퓨팅 머신 세트 CR의 &lt ;providerSpec > 섹션에 있는 값은 플랫폼에 따라 다릅니다. CR의 &lt ;providerSpec > 매개변수에 대한 자세한 내용은 공급자의 샘플 컴퓨팅 머신 세트 CR 구성을 참조하십시오.
  3. 다음 명령을 실행하여 MachineSet CR을 생성합니다.

    $ oc create -f <file_name>.yaml

검증

  • 다음 명령을 실행하여 컴퓨팅 머신 세트 목록을 확인합니다.

    $ oc get machineset -n openshift-machine-api

    출력 예

    NAME                                DESIRED   CURRENT   READY   AVAILABLE   AGE
    agl030519-vplxk-infra-us-east-1a    1         1         1       1           11m
    agl030519-vplxk-worker-us-east-1a   1         1         1       1           55m
    agl030519-vplxk-worker-us-east-1b   1         1         1       1           55m
    agl030519-vplxk-worker-us-east-1c   1         1         1       1           55m
    agl030519-vplxk-worker-us-east-1d   0         0                             55m
    agl030519-vplxk-worker-us-east-1e   0         0                             55m
    agl030519-vplxk-worker-us-east-1f   0         0                             55m

    새 컴퓨팅 머신 세트를 사용할 수 있으면 DESIREDCURRENT 값이 일치합니다. 컴퓨팅 머신 세트를 사용할 수 없는 경우 몇 분 기다렸다가 명령을 다시 실행합니다.