2.3. Azure에서 머신 세트 만들기


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

중요

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

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

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

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

2.3.1. Azure의 머신 세트사용자 지정 리소스에 대한 샘플 YAML

이 샘플 YAML은 리전의 1 Microsoft Azure 영역에서 실행되는 머신 세트를 정의하고 node-role.kubernetes.io/<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>-<region> 4
  namespace: openshift-machine-api
spec:
  replicas: 1
  selector:
    matchLabels:
      machine.openshift.io/cluster-api-cluster: <infrastructure_id> 5
      machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>-<region> 6
  template:
    metadata:
      creationTimestamp: null
      labels:
        machine.openshift.io/cluster-api-cluster: <infrastructure_id> 7
        machine.openshift.io/cluster-api-machine-role: <role> 8
        machine.openshift.io/cluster-api-machine-type: <role> 9
        machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>-<region> 10
    spec:
      metadata:
        creationTimestamp: null
        labels:
          machine.openshift.io/cluster-api-machineset: <machineset_name>
          node-role.kubernetes.io/<role>: "" 11
      providerSpec:
        value:
          apiVersion: azureproviderconfig.openshift.io/v1beta1
          credentialsSecret:
            name: azure-cloud-credentials
            namespace: openshift-machine-api
          image: 12
            offer: ""
            publisher: ""
            resourceID: /resourceGroups/<infrastructure_id>-rg/providers/Microsoft.Compute/images/<infrastructure_id> 13
            sku: ""
            version: ""
          internalLoadBalancer: ""
          kind: AzureMachineProviderSpec
          location: <region> 14
          managedIdentity: <infrastructure_id>-identity 15
          metadata:
            creationTimestamp: null
          natRule: null
          networkResourceGroup: ""
          osDisk:
            diskSizeGB: 128
            managedDisk:
              storageAccountType: Premium_LRS
            osType: Linux
          publicIP: false
          publicLoadBalancer: ""
          resourceGroup: <infrastructure_id>-rg 16
          sshPrivateKey: ""
          sshPublicKey: ""
          tags:
            - name: <custom_tag_name> 17
              value: <custom_tag_value> 18
          subnet: <infrastructure_id>-<role>-subnet 19 20
          userDataSecret:
            name: worker-user-data 21
          vmSize: Standard_D4s_v3
          vnet: <infrastructure_id>-vnet 22
          zone: "1" 23
1 5 7 15 16 19 22
클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID를 지정합니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster

다음 명령을 실행하여 서브넷을 가져올 수 있습니다.

$  oc -n openshift-machine-api \
    -o jsonpath='{.spec.template.spec.providerSpec.value.subnet}{"\n"}' \
    get machineset/<infrastructure_id>-worker-centralus1

다음 명령을 실행하여 vnet을 가져올 수 있습니다.

$  oc -n openshift-machine-api \
    -o jsonpath='{.spec.template.spec.providerSpec.value.vnet}{"\n"}' \
    get machineset/<infrastructure_id>-worker-centralus1
2 3 8 9 11 20 21
추가할 노드 레이블을 지정합니다.
4 6 10
인프라 ID, 노드 레이블, 리전을 지정합니다.
12
머신 세트의 이미지 세부 정보를 지정합니다. Azure Marketplace 이미지를 사용하려면 "Azure Marketplace 이미지 선택"을 참조하십시오.
13
인스턴스 유형과 호환되는 이미지를 지정합니다. 설치 프로그램에서 만든 Hyper-V 생성 V2 이미지에는 -gen2 접미사가 있으며 V1 이미지는 접미사 없이 이름이 동일합니다.
14
머신을 배치할 리전을 지정합니다.
23
머신을 배치할 리전 내 영역을 지정합니다. 해당 리전이 지정한 영역을 지원하는지 확인합니다.
17 18
선택 사항: 머신 세트에서 사용자 지정 태그를 지정합니다. 태그 이름을 < custom_tag_name > 필드에 제공하고 해당 태그 값을 < custom_tag_value > 필드에 입력합니다.

2.3.2. 머신 세트 만들기

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

사전 요구 사항

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

절차

  1. 머신 세트 CR(사용자 지정 리소스) 샘플이 포함된 이름이 <file_name>.yaml인 새 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 값이 일치합니다. 머신 세트를 사용할 수 없는 경우 몇 분 후에 명령을 다시 실행합니다.

2.3.3. Azure Marketplace 이미지 선택

Azure에서 실행되는 머신 세트를 생성하여 Azure Marketplace 제품을 사용하는 머신을 배포할 수 있습니다. 이 제품을 사용하려면 먼저 Azure Marketplace 이미지를 가져와야 합니다. 이미지를 가져올 때 다음 사항을 고려하십시오.

  • 이미지가 동일하지만 Azure Marketplace 게시자는 지역에 따라 다릅니다. 북미에 있는 경우 게시자로 redhat 을 지정합니다. EMEA에 있는 경우 게시자로 redhat-limited 를 지정합니다.
  • 이 프로모션에는 rh-ocp-worker SKU 및 rh-ocp-worker-gen1 SKU가 포함되어 있습니다. rh-ocp-worker SKU는 Hyper-V generation 버전 2 VM 이미지를 나타냅니다. OpenShift Container Platform에서 사용되는 기본 인스턴스 유형은 버전 2와 호환됩니다. 버전 1 호환 가능한 인스턴스 유형을 사용하려는 경우 rh-ocp-worker-gen1 SKU와 연결된 이미지를 사용합니다. rh-ocp-worker-gen1 SKU는 Hyper-V 버전 1 VM 이미지를 나타냅니다.

사전 요구 사항

  • Azure CLI 클라이언트 (az) 를 설치했습니다.
  • Azure 계정은 이 제안에 액세스할 수 있으며 Azure CLI 클라이언트를 사용하여 이 계정에 로그인했습니다.

절차

  1. 다음 명령 중 하나를 실행하여 사용 가능한 모든 OpenShift Container Platform 이미지를 표시합니다.

    • 북아메리카:

      $  az vm image list --all --offer rh-ocp-worker --publisher redhat -o table

      출력 예

      Offer          Publisher       Sku                 Urn                                                             Version
      -------------  --------------  ------------------  --------------------------------------------------------------  --------------
      rh-ocp-worker  RedHat          rh-ocp-worker       RedHat:rh-ocp-worker:rh-ocpworker:4.8.2021122100               4.8.2021122100
      rh-ocp-worker  RedHat          rh-ocp-worker-gen1  RedHat:rh-ocp-worker:rh-ocp-worker-gen1:4.8.2021122100         4.8.2021122100

    • EMEA:

      $  az vm image list --all --offer rh-ocp-worker --publisher redhat-limited -o table

      출력 예

      Offer          Publisher       Sku                 Urn                                                             Version
      -------------  --------------  ------------------  --------------------------------------------------------------  --------------
      rh-ocp-worker  redhat-limited  rh-ocp-worker       redhat-limited:rh-ocp-worker:rh-ocp-worker:4.8.2021122100       4.8.2021122100
      rh-ocp-worker  redhat-limited  rh-ocp-worker-gen1  redhat-limited:rh-ocp-worker:rh-ocp-worker-gen1:4.8.2021122100  4.8.2021122100

    참고

    설치하는 OpenShift Container Platform 버전에 관계없이 사용할 올바른 버전의 Azure Marketplace 이미지는 4.8.x입니다. 필요한 경우 설치 프로세스의 일부로 VM이 자동으로 업그레이드됩니다.

  2. 다음 명령 중 하나를 실행하여 제공 이미지를 검사합니다.

    • 북아메리카:

      $ az vm image show --urn redhat:rh-ocp-worker:rh-ocp-worker:<version>
    • EMEA:

      $ az vm image show --urn redhat-limited:rh-ocp-worker:rh-ocp-worker:<version>
  3. 다음 명령 중 하나를 실행하여 제안 조건을 검토합니다.

    • 북아메리카:

      $ az vm image terms show --urn redhat:rh-ocp-worker:rh-ocp-worker:<version>
    • EMEA:

      $ az vm image terms show --urn redhat-limited:rh-ocp-worker:rh-ocp-worker:<version>
  4. 다음 명령 중 하나를 실행하여 제품 약관에 동의합니다.

    • 북아메리카:

      $ az vm image terms accept --urn redhat:rh-ocp-worker:rh-ocp-worker:<version>
    • EMEA:

      $ az vm image terms accept --urn redhat-limited:rh-ocp-worker:rh-ocp-worker:<version>
  5. 제공의 이미지 세부 정보, 특히 게시자 의 값,제공,sku버전 을 기록합니다.
  6. 제안의 이미지 세부 정보를 사용하여 머신 세트 YAML 파일의 providerSpec 섹션에 다음 매개변수를 추가합니다.

    Azure Marketplace 컴퓨팅 머신의 샘플 providerSpec 이미지 값

    providerSpec:
      value:
        image:
          offer: rh-ocp-worker
          publisher: redhat
          resourceID: ""
          sku: rh-ocp-worker
          type: MarketplaceWithPlan
          version: 4.8.2021122100

2.3.4. 머신을 Spot 가상머신으로 배포하는 머신 세트

Azure에서 실행되는 머신 세트를 생성하여 머신을 보장되지 않는 Spot 가상 머신으로 배포하면 비용을 절감할 수 있습니다. Spot 가상 머신은 사용되지 않은 Azure 용량을 사용하며 표준 가상 머신보다 비용이 저렴합니다. 일괄 처리 또는 상태 비저장, 수평적으로 확장 가능한 워크로드와 같이 인터럽트를 허용할 수 있는 워크로드에 Spot 가상 머신을 사용할 수 있습니다.

Azure는 언제든지 Spot 가상 머신을 종료 할 수 있습니다. Azure는 중단이 발생하면 사용자에게 30 초 동안 경고 메세지를 보냅니다. OpenShift Container Platform은 Azure가 종료 경고를 발행할 때 영향을 받는 인스턴스에서 워크로드를 제거하기 시작합니다.

다음과 같은 이유로 Spot 가상 머신을 사용할 때 중단될 수 있습니다.

  • 인스턴스 가격이 최대 가격을 초과합니다.
  • Spot 가상 머신의 공급이 감소합니다.
  • Azure는 용량을 복원해야합니다.

Azure가 인스턴스를 종료하면 Spot 가상 머신 노드에서 실행되는 종료 프로세스가 머신 리소스를 삭제합니다. 머신 세트 replicas 수량을 충족하기 위해 머신 세트는 Spot 가상 머신을 요청하는 머신을 생성합니다.

2.3.4.1. 머신 세트를 사용하여 Spot 가상 머신 생성

머신 세트 YAML 파일에 spotVMOptions를 추가하여 Azure에서 Spot 가상 머신을 시작할 수 있습니다.

절차

  • providerSpec 필드 아래에 다음 행을 추가합니다.

    providerSpec:
      value:
        spotVMOptions: {}

    선택 옵션으로 spotVMOptions.maxPrice 필드를 설정하여 Spot 가상 머신의 비용을 제한할 수 있습니다. 예를 들어 maxPrice: '0.98765'를 설정할 수 있습니다. maxPrice가 설정된 경우 이 값은 시간당 최대 Spot 가격으로 사용됩니다. 설정되지 않은 경우 최대 가격은 기본적으로 -1로 설정된 표준 가상 머신 가격까지 청구됩니다.

    Azure는 Spot 가상 머신 가격을 표준 가격으로 제한합니다. 인스턴스가 기본 maxPrice로 설정된 경우 Azure는 가격 설정에 따라 인스턴스를 제거하지 않습니다. 그러나 용량 제한으로 인해 인스턴스를 제거할 수 있습니다.

참고

기본 표준 가상 머신 가격을 maxPrice 값으로 사용하고 Spot 가상 머신의 최대 가격을 설정하지 않는 것이 좋습니다.

2.3.5. Ephemeral OS 디스크에 머신을 배포하는 머신 세트

Azure에서 실행 중인 머신 세트를 생성하여 Ephemeral OS 디스크에 머신을 배포할 수 있습니다. 임시 OS 디스크는 원격 Azure Storage가 아닌 로컬 VM 용량을 사용합니다. 따라서 이 구성에서는 추가 비용이 발생하지 않으며 읽기, 쓰기 및 재imaging에 대한 대기 시간을 줄일 수 있습니다.

추가 리소스

2.3.5.1. 머신 세트를 사용하여 임시 OS 디스크에 머신 생성

머신 세트 YAML 파일을 편집하여 Azure의 Ephemeral OS 디스크에서 머신을 시작할 수 있습니다.

사전 요구 사항

  • 기존 Microsoft Azure 클러스터가 있어야 합니다.

절차

  1. 다음 명령을 실행하여 CR(사용자 정의 리소스)을 편집합니다.

    $ oc edit machineset <machine-set-name>

    여기서 <machine-set-name >은 Ephemeral OS 디스크에 머신을 프로비저닝하려는 머신 세트입니다.

  2. providerSpec 필드에 다음을 추가합니다.

    providerSpec:
      value:
        ...
        osDisk:
           ...
           diskSettings: 1
             ephemeralStorageLocation: Local 2
           cachingType: ReadOnly 3
           managedDisk:
             storageAccountType: Standard_LRS 4
           ...
    1 2 3
    이 라인은 Ephemeral OS 디스크를 사용할 수 있습니다.
    4
    임시 OS 디스크는 VM 또는 표준 LRS 스토리지 계정 유형을 사용하는 확장 세트 인스턴스에 대해서만 지원됩니다.
    중요

    OpenShift Container Platform에서 Ephemeral OS 디스크 지원 구현은 CacheDisk 배치 유형만 지원합니다. 배치 구성 설정을 변경하지 마십시오.

  3. 업데이트된 구성을 사용하여 머신 세트를 생성합니다.

    $ oc create -f <machine-set-config>.yaml

검증

  • Microsoft Azure 포털에서 머신 세트에서 배포한 머신의 개요 페이지를 검토하고 Ephemeral OS 디스크 필드가 OS 캐시 배치 로 설정되어 있는지 확인합니다.

2.3.6. 울트라 디스크가 있는 머신을 데이터 디스크로 배포하는 머신 세트

Azure에서 실행되는 머신 세트를 생성하여 대규모 디스크가 있는 머신을 배포할 수 있습니다. Ultra 디스크는 가장 까다로운 데이터 워크로드와 함께 사용하도록 설계된 고성능 스토리지입니다.

또한 Azure에서 지원하는 스토리지 클래스에 동적으로 바인딩하고 Pod에 마운트하는 PVC(영구 볼륨 클레임)를 생성할 수도 있습니다.

참고

데이터 디스크는 디스크 처리량 또는 디스크 IOPS를 지정하는 기능을 지원하지 않습니다. PVC를 사용하여 이러한 속성을 구성할 수 있습니다.

2.3.6.1. 머신 세트를 사용하여 디스크가 있는 머신 생성

머신 세트 YAML 파일을 편집하여 Azure에 보조 디스크가 있는 머신을 배포할 수 있습니다.

사전 요구 사항

  • 기존 Microsoft Azure 클러스터가 있어야 합니다.

절차

  1. 다음 명령을 실행하여 작업자 데이터 시크릿을 사용하여 openshift-machine-api 네임스페이스에 사용자 정의 시크릿을 생성합니다.

    $ oc -n openshift-machine-api \
    get secret worker-user-data \
    --template='{{index .data.userData | base64decode}}' | jq > userData.txt

    여기서 userData.txt 는 새 사용자 정의 시크릿의 이름입니다.

  2. 텍스트 편집기에서 userData.txt 파일을 열고 파일에서 최종 } 문자를 찾습니다.

    1. 즉시 이전 행에서 , 을 추가합니다.
    2. 다음에 새 행을 생성하고 다음 구성 세부 정보를 추가합니다.

      "storage": {
        "disks": [ 1
          {
            "device": "/dev/disk/azure/scsi1/lun0", 2
            "partitions": [ 3
              {
                "label": "lun0p1", 4
                "sizeMiB": 1024, 5
                "startMiB": 0
              }
            ]
          }
        ],
        "filesystems": [ 6
          {
            "device": "/dev/disk/by-partlabel/lun0p1",
            "format": "xfs",
            "path": "/var/lib/lun0p1"
          }
        ]
      },
      "systemd": {
        "units": [ 7
          {
            "contents": "[Unit]\nBefore=local-fs.target\n[Mount]\nWhere=/var/lib/lun0p1\nWhat=/dev/disk/by-partlabel/lun0p1\nOptions=defaults,pquota\n[Install]\nWantedBy=local-fs.target\n", 8
            "enabled": true,
            "name": "var-lib-lun0p1.mount"
          }
        ]
      }
      1
      노드에 연결하려는 디스크의 구성 세부 정보입니다.
      2
      사용 중인 머신 세트의 dataDisks 스탠자에 정의된 lun 값을 지정합니다. 예를 들어 머신 세트에 lun: 0 이 포함된 경우 lun0 을 지정합니다. 이 구성 파일에서 여러 "디스크 " 항목을 지정하여 여러 데이터 디스크 를 초기화할 수 있습니다. 여러 개의 "disks" 항목을 지정하는 경우 각 항목의 lun 값이 머신 세트의 값과 일치하는지 확인합니다.
      3
      디스크의 새 파티션에 대한 구성 세부 정보입니다.
      4
      파티션의 레이블을 지정합니다. lun0 의 첫 번째 파티션에 lun0p1 과 같은 계층적 이름을 사용하는 것이 유용할 수 있습니다.
      5
      파티션의 총 크기(MiB)를 지정합니다.
      6
      파티션을 포맷할 때 사용할 파일 시스템을 지정합니다. 파티션 레이블을 사용하여 파티션을 지정합니다.
      7
      부팅 시 파티션을 마운트할 systemd 장치를 지정합니다. 파티션 레이블을 사용하여 파티션을 지정합니다. 이 구성 파일에서 여러 개의 "파티션" 항목을 지정하여 여러 파티션을 생성할 수 있습니다. 여러 개의 "파티션" 항목을 지정하는 경우 각각에 대해 systemd 장치를 지정해야 합니다.
      8
      Where 에서 storage.filesystems.path 의 값을 지정합니다. Whatstorage.filesystems.device 의 값을 지정합니다.
  3. 다음 명령을 실행하여 비활성화 템플릿 값을 disableTemplating.txt 라는 파일에 추출합니다.

    $ oc -n openshift-machine-api get secret worker-user-data \
    --template='{{index .data.disableTemplating | base64decode}}' | jq > disableTemplating.txt
  4. userData.txt 파일을 결합하고 Templating.txt 파일을 비활성화 하여 다음 명령을 실행하여 데이터 시크릿 파일을 생성합니다.

    $ oc -n openshift-machine-api create secret generic worker-user-data-x5 \
    --from-file=userData=userData.txt \
    --from-file=disableTemplating=disableTemplating.txt

    여기서 worker-user-data-x5 는 시크릿의 이름입니다.

  5. 기존 Azure MachineSet CR(사용자 정의 리소스)을 복사하고 다음 명령을 실행하여 편집합니다.

    $ oc edit machineset <machine-set-name>

    여기서 <machine-set-name >은 주요 디스크를 사용하여 머신을 프로비저닝하려는 머신 세트입니다.

  6. 표시된 위치에 다음 행을 추가합니다.

    apiVersion: machine.openshift.io/v1beta1
    kind: MachineSet
      ...
    spec:
      ...
      template:
        ...
        spec:
          metadata:
            ...
            labels:
              ...
              disk: ultrassd 1
              ...
          providerSpec:
            value:
              ...
              ultraSSDCapability: Enabled 2
              dataDisks: 3
              - nameSuffix: ultrassd
                lun: 0
                diskSizeGB: 4
                deletionPolicy: Delete
                cachingType: None
                managedDisk:
                  storageAccountType: UltraSSD_LRS
              userDataSecret:
                name: worker-user-data-x5 4
                 ...
    1
    이 머신 세트에서 생성된 노드를 선택하는 데 사용할 라벨을 지정합니다. 이 절차에서는 이 값에 disk.ultrassd 를 사용합니다.
    2 3
    이 라인은 자외 디스크를 사용할 수 있습니다. dataDisks 의 경우 전체 스탠자를 포함합니다.
    4
    이전에 생성된 사용자 데이터 시크릿을 지정합니다.
  7. 다음 명령을 실행하여 업데이트된 구성을 사용하여 머신 세트를 생성합니다.

    $ oc create -f <machine-set-name>.yaml

검증

  1. 다음 명령을 실행하여 시스템이 생성되었는지 확인합니다.

    $ oc get machines

    시스템은 Running 상태에 있어야 합니다.

  2. 실행 중이고 노드가 연결되어 있는 시스템의 경우 다음 명령을 실행하여 파티션을 검증합니다.

    $ oc debug node/<node-name> -- chroot /host lsblk

    이 명령에서 oc debug node/<node-name >은 < node-name > 노드에서 디버깅 쉘을 시작하고 -- 를 사용하여 명령을 전달합니다. 전달된 명령 chroot /host 는 기본 호스트 OS 바이너리에 대한 액세스를 제공하며 lsblk 는 호스트 OS 시스템에 연결된 블록 장치를 표시합니다.

다음 단계

  • Pod 내에서 디스크를 사용하려면 마운트 지점을 사용하는 워크로드를 생성합니다. 다음 예와 유사한 YAML 파일을 생성합니다.

    apiVersion: v1
    kind: Pod
    metadata:
      name: ssd-benchmark1
    spec:
      containers:
      - name: ssd-benchmark1
        image: nginx
        ports:
          - containerPort: 80
            name: "http-server"
        volumeMounts:
        - name: lun0p1
          mountPath: "/tmp"
      volumes:
        - name: lun0p1
          hostPath:
            path: /var/lib/lun0p1
            type: DirectoryOrCreate
      nodeSelector:
        disktype: ultrassd

2.3.6.2. 자외 디스크를 활성화하는 머신 세트의 리소스 문제 해결

이 섹션의 정보를 사용하여 발생할 수 있는 문제를 이해하고 복구하십시오.

2.3.6.2.1. 잘못된 디스크 구성

자외의 SSDCapability 매개변수의 잘못된 구성이 머신 세트에 지정되면 머신 프로비저닝이 실패합니다.

예를 들어, NetNamespace SSDCapability 매개변수가 Disabled 로 설정되어 있지만 dataDisks 매개변수에 자외 디스크가 지정되면 다음과 같은 오류 메시지가 표시됩니다.

StorageAccountType UltraSSD_LRS can be used only when additionalCapabilities.ultraSSDEnabled is set.
  • 이 문제를 해결하려면 머신 세트 구성이 올바른지 확인합니다.
2.3.6.2.2. 지원되지 않는 디스크 매개변수

자외 디스크와 호환되지 않는 지역, 가용성 영역 또는 인스턴스 크기가 시스템 세트에 지정되면 시스템 프로비저닝에 실패합니다. 로그에 다음 오류 메시지가 있는지 확인합니다.

failed to create vm <machine_name>: failure sending request for machine <machine_name>: cannot create vm: compute.VirtualMachinesClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="BadRequest" Message="Storage Account type 'UltraSSD_LRS' is not supported <more_information_about_why>."
  • 이 문제를 해결하려면 지원되는 환경에서 이 기능을 사용하고 있으며 머신 세트 구성이 올바른지 확인합니다.
2.3.6.2.3. 디스크를 삭제할 수 없음

데이터 디스크가 예상대로 작동하지 않으면 머신이 삭제되고 데이터 디스크가 분리됩니다. 필요한 경우 고립된 디스크를 수동으로 삭제해야 합니다.

2.3.7. 머신 세트의 고객 관리 암호화 키 활성화

Azure에 암호화 키를 제공하여 관리 대상 디스크의 데이터를 암호화할 수 있습니다. 시스템 API를 사용하여 고객 관리 키로 서버 측 암호화를 활성화할 수 있습니다.

고객 관리 키를 사용하려면 Azure Key Vault, 디스크 암호화 세트 및 암호화 키가 필요합니다. 디스크 암호화 세트는 CCO(Cloud Credential Operator)에 권한이 부여된 리소스 그룹 앞에 있어야 합니다. 그렇지 않은 경우 디스크 암호화 세트에 추가 reader 역할을 부여해야 합니다.

절차

  • 머신 세트 YAML 파일의 providerSpec 필드에 설정된 디스크 암호화를 구성합니다. 예를 들어 다음과 같습니다.

    ...
    providerSpec:
      value:
        ...
        osDisk:
          diskSizeGB: 128
          managedDisk:
            diskEncryptionSet:
              id: /subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.Compute/diskEncryptionSets/<disk_encryption_set_name>
            storageAccountType: Premium_LRS
    ...

추가 리소스

2.3.8. Microsoft Azure VM에 대한 빠른 네트워킹

빠른 네트워킹은 SR-IOV(Single root I/O Virtualization)를 사용하여 Microsoft Azure VM에 스위치에 대한 더 직접적인 경로를 제공합니다. 이를 통해 네트워크 성능이 향상됩니다. 이 기능은 설치 중 또는 설치 후에 활성화할 수 있습니다.

2.3.8.1. 제한 사항

가속 네트워킹 사용 여부를 결정할 때 다음과 같은 제한 사항을 고려하십시오.

  • 빠른 네트워킹은 머신 API가 작동하는 클러스터에서만 지원됩니다.
  • Azure 작업자 노드의 최소 요구 사항은 두 개의 vCPU이지만 Accelerated Networking에는 vCPU 4개가 포함된 Azure VM 크기가 필요합니다. 이 요구 사항을 충족하기 위해 머신 세트에서 vmSize 값을 변경할 수 있습니다. Azure VM 크기에 대한 자세한 내용은 Microsoft Azure 설명서를 참조하십시오.
  • 기존 Azure 클러스터에서 이 기능을 활성화하면 새로 프로비저닝된 노드만 영향을 받습니다. 현재 실행 중인 노드는 조정되지 않습니다. 모든 노드에서 기능을 활성화하려면 기존 각 머신을 교체해야 합니다. 이 작업은 각 머신에 대해 개별적으로 수행하거나 복제본을 0으로 축소한 다음 원하는 복제본 수로 다시 스케일링하여 수행할 수 있습니다.

2.3.8.2. 기존 Microsoft Azure 클러스터에서 Accelerated 네트워킹 활성화

머신 세트 YAML 파일에 acceleratedNetworking 을 추가하여 Azure에서 Accelerated Networking을 활성화할 수 있습니다.

사전 요구 사항

  • 머신 API가 작동하는 기존 Microsoft Azure 클러스터가 있어야 합니다.

절차

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

    $ oc get machinesets -n openshift-machine-api

    머신 세트는 < cluster-id>-worker-<region> 형식으로 나열됩니다.

    출력 예

    NAME                                DESIRED   CURRENT   READY   AVAILABLE   AGE
    jmywbfb-8zqpx-worker-centralus1     1         1         1       1           15m
    jmywbfb-8zqpx-worker-centralus2     1         1         1       1           15m
    jmywbfb-8zqpx-worker-centralus3     1         1         1       1           15m

  2. 각 머신 세트에 대해 다음을 수행합니다.

    1. 다음 명령을 실행하여 CR(사용자 정의 리소스)을 편집합니다.

      $ oc edit machineset <machine-set-name>
    2. providerSpec 필드에 다음을 추가합니다.

      providerSpec:
        value:
          ...
          acceleratedNetworking: true 1
          ...
          vmSize: <azure-vm-size> 2
          ...
      1
      이 라인은 가속 네트워킹을 활성화합니다.
      2
      vCPU가 4개 이상인 Azure VM 크기를 지정합니다. VM 크기에 대한 자세한 내용은 Microsoft Azure 설명서를 참조하십시오.
  3. 현재 실행 중인 노드에서 이 기능을 활성화하려면 기존 각 머신을 교체해야 합니다. 이 작업은 각 머신에 대해 개별적으로 수행하거나 복제본을 0으로 축소한 다음 원하는 복제본 수로 다시 스케일링하여 수행할 수 있습니다.

검증

  • Microsoft Azure 포털에서 머신 세트에서 프로비저닝한 머신의 네트워킹 설정 페이지를 검토하고 Accelerated 네트워킹 필드가 Enabled 로 설정되어 있는지 확인합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.