3.2. Azure에서 다중 아키텍처 컴퓨팅 머신으로 클러스터 만들기


다중 아키텍처 컴퓨팅 머신이 있는 Azure 클러스터를 배포하려면 먼저 다중 아키텍처 설치 관리자 바이너리를 사용하는 단일 아키텍처 Azure 설치 관리자 프로비저닝 클러스터를 만들어야 합니다. Azure 설치에 대한 자세한 내용은 사용자 지정을 사용하여 Azure에 클러스터 설치를 참조하세요.

단일 아키텍처 컴퓨팅 머신이 있는 현재 클러스터를 다중 아키텍처 컴퓨팅 머신이 있는 클러스터로 마이그레이션할 수도 있습니다. 자세한 내용은 다중 아키텍처 컴퓨팅 머신이 있는 클러스터로 마이그레이션을 참조하세요.

다중 아키텍처 클러스터를 만든 후에는 다양한 아키텍처를 가진 노드를 클러스터에 추가할 수 있습니다.

3.2.1. 클러스터 호환성 확인

클러스터에 다양한 아키텍처의 컴퓨팅 노드를 추가하려면 먼저 클러스터가 여러 아키텍처와 호환되는지 확인해야 합니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.

프로세스

  1. OpenShift CLI( oc )에 로그인합니다.
  2. 다음 명령을 실행하여 클러스터가 아키텍처 페이로드를 사용하는지 확인할 수 있습니다.

    $ oc adm release info -o jsonpath="{ .metadata.metadata}"
    Copy to Clipboard Toggle word wrap

검증

  • 다음 출력이 표시되면 클러스터가 다중 아키텍처 페이로드를 사용하고 있는 것입니다.

    {
     "release.openshift.io/architecture": "multi",
     "url": "https://access.redhat.com/errata/<errata_version>"
    }
    Copy to Clipboard Toggle word wrap

    그런 다음 클러스터에 다중 아키텍처 컴퓨팅 노드를 추가할 수 있습니다.

  • 다음 출력이 표시되면 클러스터가 다중 아키텍처 페이로드를 사용하지 않는 것입니다.

    {
     "url": "https://access.redhat.com/errata/<errata_version>"
    }
    Copy to Clipboard Toggle word wrap
    중요

    클러스터가 다중 아키텍처 컴퓨팅 머신을 지원하도록 클러스터를 마이그레이션하려면 다중 아키텍처 컴퓨팅 머신이 있는 클러스터로 마이그레이션 의 절차를 따르세요.

3.2.2. Azure 이미지 갤러리를 사용하여 64비트 ARM 부팅 이미지 만들기

다음 절차에서는 64비트 ARM 부팅 이미지를 수동으로 생성하는 방법을 설명합니다.

사전 요구 사항

  • Azure CLI(az)를 설치했습니다.
  • 다중 아키텍처 설치 관리자 바이너리를 사용하여 단일 아키텍처 Azure 설치 관리자 프로비저닝 클러스터를 만들었습니다.

프로세스

  1. Azure 계정에 로그인하세요.

    $ az login
    Copy to Clipboard Toggle word wrap
  2. 저장소 계정을 만들고 aarch64 가상 하드 디스크(VHD)를 저장소 계정에 업로드합니다. OpenShift Container Platform 설치 프로그램은 리소스 그룹을 생성하지만 부트 이미지는 사용자 정의 이름의 리소스 그룹에 업로드될 수도 있습니다.

    $ az storage account create -n ${STORAGE_ACCOUNT_NAME} -g ${RESOURCE_GROUP} -l westus --sku Standard_LRS 
    1
    Copy to Clipboard Toggle word wrap
    1
    westus 객체는 지역의 예입니다.
  3. 생성한 스토리지 계정을 사용하여 스토리지 컨테이너를 만듭니다.

    $ az storage container create -n ${CONTAINER_NAME} --account-name ${STORAGE_ACCOUNT_NAME}
    Copy to Clipboard Toggle word wrap
  4. URL과 aarch64 VHD 이름을 추출하려면 OpenShift Container Platform 설치 프로그램 JSON 파일을 사용해야 합니다.

    1. 다음 명령을 실행하여 URL 필드를 추출하고 파일 이름을 RHCOS_VHD_ORIGIN_URL 로 설정합니다.

      $ RHCOS_VHD_ORIGIN_URL=$(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' | jq -r '.architectures.aarch64."rhel-coreos-extensions"."azure-disk".url')
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 실행하여 aarch64 VHD 이름을 추출하고 파일 이름을 BLOB_NAME 으로 설정합니다.

      $ BLOB_NAME=rhcos-$(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' | jq -r '.architectures.aarch64."rhel-coreos-extensions"."azure-disk".release')-azure.aarch64.vhd
      Copy to Clipboard Toggle word wrap
  5. 공유 액세스 서명(SAS) 토큰을 생성합니다. 다음 명령을 사용하여 RHCOS VHD를 스토리지 컨테이너에 업로드하려면 이 토큰을 사용합니다.

    $ end=`date -u -d "30 minutes" '+%Y-%m-%dT%H:%MZ'`
    Copy to Clipboard Toggle word wrap
    $ sas=`az storage container generate-sas -n ${CONTAINER_NAME} --account-name ${STORAGE_ACCOUNT_NAME} --https-only --permissions dlrw --expiry $end -o tsv`
    Copy to Clipboard Toggle word wrap
  6. RHCOS VHD를 스토리지 컨테이너에 복사합니다.

    $ az storage blob copy start --account-name ${STORAGE_ACCOUNT_NAME} --sas-token "$sas" \
     --source-uri "${RHCOS_VHD_ORIGIN_URL}" \
     --destination-blob "${BLOB_NAME}" --destination-container ${CONTAINER_NAME}
    Copy to Clipboard Toggle word wrap

    다음 명령을 사용하여 복사 프로세스의 상태를 확인할 수 있습니다.

    $ az storage blob show -c ${CONTAINER_NAME} -n ${BLOB_NAME} --account-name ${STORAGE_ACCOUNT_NAME} | jq .properties.copy
    Copy to Clipboard Toggle word wrap

    출력 예

    {
     "completionTime": null,
     "destinationSnapshot": null,
     "id": "1fd97630-03ca-489a-8c4e-cfe839c9627d",
     "incrementalCopy": null,
     "progress": "17179869696/17179869696",
     "source": "https://rhcos.blob.core.windows.net/imagebucket/rhcos-411.86.202207130959-0-azure.aarch64.vhd",
     "status": "success", 
    1
    
     "statusDescription": null
    }
    Copy to Clipboard Toggle word wrap

    1
    상태 매개변수에 성공 개체가 표시되면 복사 프로세스가 완료된 것입니다.
  7. 다음 명령을 사용하여 이미지 갤러리를 만듭니다.

    $ az sig create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME}
    Copy to Clipboard Toggle word wrap

    이미지 갤러리를 사용하여 이미지 정의를 만듭니다. 다음 예제 명령에서 rhcos-arm64 는 이미지 정의의 이름입니다.

    $ az sig image-definition create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME} --gallery-image-definition rhcos-arm64 --publisher RedHat --offer arm --sku arm64 --os-type linux --architecture Arm64 --hyper-v-generation V2
    Copy to Clipboard Toggle word wrap
  8. VHD의 URL을 가져와 파일 이름을 RHCOS_VHD_URL 로 설정하려면 다음 명령을 실행하세요.

    $ RHCOS_VHD_URL=$(az storage blob url --account-name ${STORAGE_ACCOUNT_NAME} -c ${CONTAINER_NAME} -n "${BLOB_NAME}" -o tsv)
    Copy to Clipboard Toggle word wrap
  9. RHCOS_VHD_URL 파일, 스토리지 계정, 리소스 그룹 및 이미지 갤러리를 사용하여 이미지 버전을 만듭니다. 다음 예에서 1.0.0 은 이미지 버전입니다.

    $ az sig image-version create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME} --gallery-image-definition rhcos-arm64 --gallery-image-version 1.0.0 --os-vhd-storage-account ${STORAGE_ACCOUNT_NAME} --os-vhd-uri ${RHCOS_VHD_URL}
    Copy to Clipboard Toggle word wrap
  10. 이제 arm64 부팅 이미지가 생성되었습니다. 다음 명령을 사용하여 이미지 ID에 액세스할 수 있습니다.

    $ az sig image-version show -r $GALLERY_NAME -g $RESOURCE_GROUP -i rhcos-arm64 -e 1.0.0
    Copy to Clipboard Toggle word wrap

    다음 예제 이미지 ID는 컴퓨팅 머신 세트의 resourceID 매개변수에 사용됩니다.

    예제 resourceID

    /resourceGroups/${RESOURCE_GROUP}/providers/Microsoft.Compute/galleries/${GALLERY_NAME}/images/rhcos-arm64/versions/1.0.0
    Copy to Clipboard Toggle word wrap

3.2.3. Azure 이미지 갤러리를 사용하여 64비트 x86 부팅 이미지 만들기

다음 절차에서는 64비트 x86 부팅 이미지를 수동으로 생성하는 방법을 설명합니다.

사전 요구 사항

  • Azure CLI(az)를 설치했습니다.
  • 다중 아키텍처 설치 관리자 바이너리를 사용하여 단일 아키텍처 Azure 설치 관리자 프로비저닝 클러스터를 만들었습니다.

프로세스

  1. 다음 명령을 실행하여 Azure 계정에 로그인하세요.

    $ az login
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 스토리지 계정을 만들고 x86_64 가상 하드 디스크(VHD)를 스토리지 계정에 업로드합니다. OpenShift Container Platform 설치 프로그램은 리소스 그룹을 생성합니다. 하지만 부트 이미지는 사용자 지정 이름의 리소스 그룹에 업로드될 수도 있습니다.

    $ az storage account create -n ${STORAGE_ACCOUNT_NAME} -g ${RESOURCE_GROUP} -l westus --sku Standard_LRS 
    1
    Copy to Clipboard Toggle word wrap
    1
    westus 객체는 지역의 예입니다.
  3. 다음 명령을 실행하여 생성한 스토리지 계정을 사용하여 스토리지 컨테이너를 만듭니다.

    $ az storage container create -n ${CONTAINER_NAME} --account-name ${STORAGE_ACCOUNT_NAME}
    Copy to Clipboard Toggle word wrap
  4. OpenShift Container Platform 설치 프로그램 JSON 파일을 사용하여 URL과 x86_64 VHD 이름을 추출합니다.

    1. 다음 명령을 실행하여 URL 필드를 추출하고 파일 이름을 RHCOS_VHD_ORIGIN_URL 로 설정합니다.

      $ RHCOS_VHD_ORIGIN_URL=$(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' | jq -r '.architectures.x86_64."rhel-coreos-extensions"."azure-disk".url')
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 실행하여 x86_64 VHD 이름을 추출하고 파일 이름을 BLOB_NAME 으로 설정합니다.

      $ BLOB_NAME=rhcos-$(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' | jq -r '.architectures.x86_64."rhel-coreos-extensions"."azure-disk".release')-azure.x86_64.vhd
      Copy to Clipboard Toggle word wrap
  5. 공유 액세스 서명(SAS) 토큰을 생성합니다. 다음 명령을 실행하여 이 토큰을 사용하여 RHCOS VHD를 스토리지 컨테이너에 업로드합니다.

    $ end=`date -u -d "30 minutes" '+%Y-%m-%dT%H:%MZ'`
    Copy to Clipboard Toggle word wrap
    $ sas=`az storage container generate-sas -n ${CONTAINER_NAME} --account-name ${STORAGE_ACCOUNT_NAME} --https-only --permissions dlrw --expiry $end -o tsv`
    Copy to Clipboard Toggle word wrap
  6. 다음 명령을 실행하여 RHCOS VHD를 스토리지 컨테이너에 복사합니다.

    $ az storage blob copy start --account-name ${STORAGE_ACCOUNT_NAME} --sas-token "$sas" \
     --source-uri "${RHCOS_VHD_ORIGIN_URL}" \
     --destination-blob "${BLOB_NAME}" --destination-container ${CONTAINER_NAME}
    Copy to Clipboard Toggle word wrap

    다음 명령을 실행하여 복사 프로세스의 상태를 확인할 수 있습니다.

    $ az storage blob show -c ${CONTAINER_NAME} -n ${BLOB_NAME} --account-name ${STORAGE_ACCOUNT_NAME} | jq .properties.copy
    Copy to Clipboard Toggle word wrap

    출력 예

    {
     "completionTime": null,
     "destinationSnapshot": null,
     "id": "1fd97630-03ca-489a-8c4e-cfe839c9627d",
     "incrementalCopy": null,
     "progress": "17179869696/17179869696",
     "source": "https://rhcos.blob.core.windows.net/imagebucket/rhcos-411.86.202207130959-0-azure.aarch64.vhd",
     "status": "success", 
    1
    
     "statusDescription": null
    }
    Copy to Clipboard Toggle word wrap

    1
    상태 매개변수에 성공 개체가 표시되면 복사 프로세스가 완료된 것입니다.
  7. 다음 명령을 실행하여 이미지 모음을 만듭니다.

    $ az sig create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME}
    Copy to Clipboard Toggle word wrap
  8. 다음 명령을 실행하여 이미지 갤러리를 사용하여 이미지 정의를 만듭니다.

    $ az sig image-definition create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME} --gallery-image-definition rhcos-x86_64 --publisher RedHat --offer x86_64 --sku x86_64 --os-type linux --architecture x64 --hyper-v-generation V2
    Copy to Clipboard Toggle word wrap

    이 예제 명령에서 rhcos-x86_64 는 이미지 정의의 이름입니다.

  9. VHD의 URL을 가져와 파일 이름을 RHCOS_VHD_URL 로 설정하려면 다음 명령을 실행하세요.

    $ RHCOS_VHD_URL=$(az storage blob url --account-name ${STORAGE_ACCOUNT_NAME} -c ${CONTAINER_NAME} -n "${BLOB_NAME}" -o tsv)
    Copy to Clipboard Toggle word wrap
  10. 다음 명령을 실행하여 RHCOS_VHD_URL 파일, 스토리지 계정, 리소스 그룹 및 이미지 갤러리를 사용하여 이미지 버전을 만듭니다.

    $ az sig image-version create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME} --gallery-image-definition rhcos-arm64 --gallery-image-version 1.0.0 --os-vhd-storage-account ${STORAGE_ACCOUNT_NAME} --os-vhd-uri ${RHCOS_VHD_URL}
    Copy to Clipboard Toggle word wrap

    이 예에서 1.0.0 은 이미지 버전입니다.

  11. 선택 사항: 다음 명령을 실행하여 생성된 x86_64 부팅 이미지의 ID에 액세스합니다.

    $ az sig image-version show -r $GALLERY_NAME -g $RESOURCE_GROUP -i rhcos-x86_64 -e 1.0.0
    Copy to Clipboard Toggle word wrap

    다음 예제 이미지 ID는 컴퓨팅 머신 세트의 resourceID 매개변수에 사용됩니다.

    예제 resourceID

    /resourceGroups/${RESOURCE_GROUP}/providers/Microsoft.Compute/galleries/${GALLERY_NAME}/images/rhcos-x86_64/versions/1.0.0
    Copy to Clipboard Toggle word wrap

3.2.4. Azure 클러스터에 다중 아키텍처 컴퓨팅 머신 세트 추가

다중 아키텍처 클러스터를 만든 후에는 다양한 아키텍처를 갖춘 노드를 추가할 수 있습니다.

다음과 같은 방법으로 다중 아키텍처 클러스터에 다중 아키텍처 컴퓨팅 머신을 추가할 수 있습니다.

  • 64비트 ARM 제어 평면 머신을 사용하고 이미 64비트 ARM 컴퓨팅 머신을 포함하는 클러스터에 64비트 x86 컴퓨팅 머신을 추가합니다. 이 경우 64비트 x86은 보조 아키텍처로 간주됩니다.
  • 64비트 x86 제어 평면 머신을 사용하고 이미 64비트 x86 컴퓨팅 머신을 포함하는 클러스터에 64비트 ARM 컴퓨팅 머신을 추가합니다. 이 경우 64비트 ARM은 보조 아키텍처로 간주됩니다.

Azure에서 사용자 지정 컴퓨팅 머신 세트를 만들려면 "Azure에서 컴퓨팅 머신 세트 만들기"를 참조하세요.

참고

클러스터에 보조 아키텍처 노드를 추가하기 전에 Multiarch Tuning Operator를 설치하고 ClusterPodPlacementConfig 사용자 정의 리소스를 배포하는 것이 좋습니다. 자세한 내용은 "Multiarch Tuning Operator를 사용하여 다중 아키텍처 클러스터의 워크로드 관리"를 참조하세요.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • 64비트 ARM 또는 64비트 x86 부팅 이미지를 생성했습니다.
  • 설치 프로그램을 사용하여 다중 아키텍처 설치 프로그램 바이너리로 64비트 ARM 또는 64비트 x86 단일 아키텍처 Azure 클러스터를 만들었습니다.

프로세스

  1. OpenShift CLI( oc )에 로그인합니다.
  2. YAML 파일을 만들고 구성을 추가하여 클러스터의 64비트 ARM 또는 64비트 x86 컴퓨팅 노드를 제어하는 컴퓨팅 머신 세트를 만듭니다.

    Azure 64비트 ARM 또는 64비트 x86 컴퓨팅 노드에 대한 MachineSet 개체의 예

    apiVersion: machine.openshift.io/v1beta1
    kind: MachineSet
    metadata:
      labels:
        machine.openshift.io/cluster-api-cluster: <infrastructure_id>
        machine.openshift.io/cluster-api-machine-role: worker
        machine.openshift.io/cluster-api-machine-type: worker
      name: <infrastructure_id>-machine-set-0
      namespace: openshift-machine-api
    spec:
      replicas: 2
      selector:
        matchLabels:
          machine.openshift.io/cluster-api-cluster: <infrastructure_id>
          machine.openshift.io/cluster-api-machineset: <infrastructure_id>-machine-set-0
      template:
        metadata:
          labels:
            machine.openshift.io/cluster-api-cluster: <infrastructure_id>
            machine.openshift.io/cluster-api-machine-role: worker
            machine.openshift.io/cluster-api-machine-type: worker
            machine.openshift.io/cluster-api-machineset: <infrastructure_id>-machine-set-0
        spec:
          lifecycleHooks: {}
          metadata: {}
          providerSpec:
            value:
              acceleratedNetworking: true
              apiVersion: machine.openshift.io/v1beta1
              credentialsSecret:
                name: azure-cloud-credentials
                namespace: openshift-machine-api
              image:
                offer: ""
                publisher: ""
                resourceID: /resourceGroups/${RESOURCE_GROUP}/providers/Microsoft.Compute/galleries/${GALLERY_NAME}/images/rhcos-arm64/versions/1.0.0 
    1
    
                sku: ""
                version: ""
              kind: AzureMachineProviderSpec
              location: <region>
              managedIdentity: <infrastructure_id>-identity
              networkResourceGroup: <infrastructure_id>-rg
              osDisk:
                diskSettings: {}
                diskSizeGB: 128
                managedDisk:
                  storageAccountType: Premium_LRS
                osType: Linux
              publicIP: false
              publicLoadBalancer: <infrastructure_id>
              resourceGroup: <infrastructure_id>-rg
              subnet: <infrastructure_id>-worker-subnet
              userDataSecret:
                name: worker-user-data
              vmSize: Standard_D4ps_v5 
    2
    
              vnet: <infrastructure_id>-vnet
              zone: "<zone>"
    Copy to Clipboard Toggle word wrap

    1
    resourceID 매개변수를 arm64 또는 amd64 부팅 이미지로 설정합니다.
    2
    설치에 사용된 인스턴스 유형으로 vmSize 매개변수를 설정합니다. 몇 가지 예시 인스턴스 유형으로는 Standard_D4ps_v5 또는 D8ps가 있습니다.
  3. 다음 명령을 실행하여 컴퓨팅 머신 세트를 만듭니다.

    $ oc create -f <file_name> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <file_name>을 컴퓨팅 머신 세트 구성이 포함된 YAML 파일 이름으로 바꿉니다. 예: arm64-machine-set-0.yaml 또는 amd64-machine-set-0.yaml .

검증

  1. 다음 명령을 실행하여 새 머신이 실행 중인지 확인하세요.

    $ oc get machineset -n openshift-machine-api
    Copy to Clipboard Toggle word wrap

    출력에는 사용자가 만든 머신 세트가 포함되어야 합니다.

    출력 예

    NAME                                                DESIRED  CURRENT  READY  AVAILABLE  AGE
    <infrastructure_id>-machine-set-0                   2        2      2          2  10m
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 노드가 준비되었고 예약 가능한지 확인할 수 있습니다.

    $ oc get nodes
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat