12.5. 컨트롤 플레인 시스템에 대한 구성 옵션


12.5.1. Amazon Web Services의 컨트롤 플레인 구성 옵션

AWS(Amazon Web Services) 컨트롤 플레인 머신의 구성을 변경하고 컨트롤 플레인 머신 세트에서 값을 업데이트하여 기능을 활성화할 수 있습니다. 컨트롤 플레인 머신 세트에 대한 업데이트를 저장하면 컨트롤 플레인 머신 세트 Operator가 구성된 업데이트 전략에 따라 컨트롤 플레인 시스템을 업데이트합니다.

12.5.1.1. Amazon Web Services 클러스터 구성을 위한 샘플 YAML

다음 예제 YAML 스니펫에서는 AWS 클러스터의 공급자 사양 및 실패 도메인 구성을 보여줍니다.

12.5.1.1.1. 샘플 AWS 공급자 사양

기존 클러스터에 대한 컨트롤 플레인 머신 세트를 생성할 때 공급자 사양은 설치 프로그램에서 생성한 컨트롤 플레인 머신 CR(사용자 정의 리소스)의 providerSpec 구성과 일치해야 합니다. CR의 실패 도메인 섹션에 설정된 필드를 생략할 수 있습니다.

다음 예에서 < cluster_id >는 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID입니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.

$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster

샘플 AWS providerSpec

apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
  name: cluster
  namespace: openshift-machine-api
spec:
# ...
  template:
# ...
      spec:
        providerSpec:
          value:
            ami:
              id: ami-<ami_id_string> 1
            apiVersion: machine.openshift.io/v1beta1
            blockDevices:
            - ebs: 2
                encrypted: true
                iops: 0
                kmsKey:
                  arn: ""
                volumeSize: 120
                volumeType: gp3
            credentialsSecret:
              name: aws-cloud-credentials 3
            deviceIndex: 0
            iamInstanceProfile:
              id: <cluster_id>-master-profile 4
            instanceType: m6i.xlarge 5
            kind: AWSMachineProviderConfig 6
            loadBalancers: 7
            - name: <cluster_id>-int
              type: network
            - name: <cluster_id>-ext
              type: network
            metadata:
              creationTimestamp: null
            metadataServiceOptions: {}
            placement: 8
              region: <region> 9
              availabilityZone: "" 10
              tenancy: 11
            securityGroups:
            - filters:
              - name: tag:Name
                values:
                - <cluster_id>-master-sg 12
            subnet: {} 13
            userDataSecret:
              name: master-user-data 14

1
클러스터의 RHCOS(Red Hat Enterprise Linux CoreOS) AMI(Amazon Machine Images) ID를 지정합니다. AMI는 클러스터와 동일한 리전에 속해 있어야 합니다. AWS Marketplace 이미지를 사용하려면 해당 리전의 AMI ID를 받으려면 AWS Marketplace 에서 OpenShift Container Platform 서브스크립션을 완료해야 합니다.
2
암호화된 EBS 볼륨의 구성을 지정합니다.
3
클러스터의 시크릿 이름을 지정합니다. 이 값은 변경하지 마십시오.
4
AWS IAM(Identity and Access Management) 인스턴스 프로필을 지정합니다. 이 값은 변경하지 마십시오.
5
컨트롤 플레인의 AWS 인스턴스 유형을 지정합니다.
6
클라우드 공급자 플랫폼 유형을 지정합니다. 이 값은 변경하지 마십시오.
7
클러스터의 내부(int) 및 외부(ext) 로드 밸런서를 지정합니다.
참고

프라이빗 OpenShift Container Platform 클러스터에서 외부(ext) 로드 밸런서 매개변수를 생략할 수 있습니다.

8
AWS에서 컨트롤 플레인 인스턴스를 생성할 위치를 지정합니다.
9
클러스터의 AWS 리전을 지정합니다.
10
이 매개변수는 실패 도메인에 구성되며 여기에 빈 값으로 표시됩니다. 이 매개변수에 지정된 값이 실패 도메인의 값과 다른 경우 컨트롤 플레인 머신 세트 Operator는 실패 도메인의 값으로 이를 덮어씁니다.
11
컨트롤 플레인에 대한 AWS Dedicated 인스턴스 구성을 지정합니다. 자세한 내용은 Dedicated Instances 에 대한 AWS 설명서를 참조하십시오. 다음 값이 유효합니다.
  • Default: Dedicated 인스턴스는 공유 하드웨어에서 실행됩니다.
  • 전용: Dedicated 인스턴스는 단일 테넌트 하드웨어에서 실행됩니다.
  • 호스트: Dedicated 인스턴스는 제어할 수 있는 구성이 있는 격리된 서버인 전용 호스트에서 실행됩니다.
12
컨트롤 플레인 시스템 보안 그룹을 지정합니다.
13
이 매개변수는 실패 도메인에 구성되며 여기에 빈 값으로 표시됩니다. 이 매개변수에 지정된 값이 실패 도메인의 값과 다른 경우 컨트롤 플레인 머신 세트 Operator는 실패 도메인의 값으로 이를 덮어씁니다.
참고

실패 도메인 구성이 값을 지정하지 않으면 공급자 사양의 값이 사용됩니다. 실패 도메인에서 서브넷을 구성하면 공급자 사양의 서브넷 값이 덮어씁니다.

14
컨트롤 플레인 사용자 데이터 시크릿을 지정합니다. 이 값은 변경하지 마십시오.
12.5.1.1.2. 샘플 AWS 실패 도메인 구성

실패 도메인의 컨트롤 플레인 머신 세트 개념은 가용성 영역(AZ) 의 기존 AWS 개념과 유사합니다. ControlPlaneMachineSet CR은 가능한 경우 컨트롤 플레인 시스템을 여러 개의 장애 도메인에 분배합니다.

컨트롤 플레인 머신 세트에서 AWS 실패 도메인을 구성할 때 사용할 가용성 영역 이름과 서브넷을 지정해야 합니다.

샘플 AWS 실패 도메인 값

apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
  name: cluster
  namespace: openshift-machine-api
spec:
# ...
  template:
# ...
    machines_v1beta1_machine_openshift_io:
      failureDomains:
        aws:
        - placement:
            availabilityZone: <aws_zone_a> 1
          subnet: 2
            filters:
            - name: tag:Name
              values:
              - <cluster_id>-private-<aws_zone_a> 3
            type: Filters 4
        - placement:
            availabilityZone: <aws_zone_b> 5
          subnet:
            filters:
            - name: tag:Name
              values:
              - <cluster_id>-private-<aws_zone_b> 6
            type: Filters
        platform: AWS 7
# ...

1
첫 번째 실패 도메인의 AWS 가용성 영역을 지정합니다.
2
서브넷 구성을 지정합니다. 이 예에서 subnet 유형은 Filters 이므로 filters 스탠자가 있습니다.
3
인프라 ID 및 AWS 가용성 영역을 사용하여 첫 번째 실패 도메인의 서브넷 이름을 지정합니다.
4
서브넷 유형을 지정합니다. 허용되는 값은 ARN,FiltersID 입니다. 기본값은 Filters 입니다.
5
인프라 ID 및 AWS 가용성 영역을 사용하여 추가 실패 도메인의 서브넷 이름을 지정합니다.
6
추가 장애 도메인의 클러스터 인프라 ID 및 AWS 가용성 영역을 지정합니다.
7
클라우드 공급자 플랫폼 이름을 지정합니다. 이 값은 변경하지 마십시오.

12.5.1.2. 컨트롤 플레인 시스템에 대한 Amazon Web Services 기능 활성화

컨트롤 플레인 머신 세트에서 값을 업데이트하여 기능을 활성화할 수 있습니다.

12.5.1.2.1. API 서버를 프라이빗으로 제한

AWS(Amazon Web Services)에 클러스터를 배포한 후 프라이빗 영역만 사용하도록 API 서버를 재구성할 수 있습니다.

사전 요구 사항

  • OpenShift CLI (oc)를 설치합니다.
  • admin 권한이 있는 사용자로 웹 콘솔에 액세스합니다.

프로세스

  1. 클라우드 공급자의 웹 포털 또는 콘솔에서 다음 작업을 수행합니다.

    1. 적절한 로드 밸런서 구성 요소를 찾아서 삭제합니다.

      • AWS의 경우 외부 로드 밸런서를 삭제합니다. 프라이빗 영역의 API DNS 항목은 동일한 설정을 사용하는 내부 로드 밸런서를 가리키므로 내부 로드 밸런서를 변경할 필요가 없습니다.
    2. 퍼블릭 영역의 api.$clustername.$yourdomain DNS 항목을 삭제합니다.
  2. 컨트롤 플레인 머신 세트 사용자 정의 리소스에서 다음 표시된 행을 삭제하여 외부 로드 밸런서를 제거합니다.

    # ...
    providerSpec:
      value:
    # ...
        loadBalancers:
        - name: lk4pj-ext 1
          type: network 2
        - name: lk4pj-int
          type: network
    # ...
    1
    -ext 로 끝나는 외부 로드 밸런서의 name 값을 삭제합니다.
    2
    외부 로드 밸런서의 유형 값을 삭제합니다.
12.5.1.2.2. 컨트롤 플레인 머신 세트를 사용하여 Amazon Web Services 인스턴스 유형 변경

컨트롤 플레인 머신 세트 CR(사용자 정의 리소스)에서 사양을 업데이트하여 컨트롤 플레인 시스템에서 사용하는 AWS(Amazon Web Services) 인스턴스 유형을 변경할 수 있습니다.

사전 요구 사항

  • AWS 클러스터는 컨트롤 플레인 머신 세트를 사용합니다.

프로세스

  1. providerSpec 필드 아래의 다음 행을 편집합니다.

    providerSpec:
      value:
        ...
        instanceType: <compatible_aws_instance_type> 1
    1
    이전 선택과 동일한 기준으로 더 큰 AWS 인스턴스 유형을 지정합니다. 예를 들어 m6i.xlargem6i.2xlarge 또는 m6i.4xlarge 로 변경할 수 있습니다.
  2. 변경 사항을 저장하십시오.
12.5.1.2.3. 머신 세트를 사용하여 Elastic Fabric Adapter 인스턴스에 대한 배치 그룹에 머신 할당

기존 AWS 배치 그룹 내에서 EBS( Elastic Fabric Adapter ) 인스턴스에 머신을 배포하도록 머신 세트를 구성할 수 있습니다.

EFA 인스턴스에는 배치 그룹이 필요하지 않으며 EFA 구성 이외의 용도로 배치 그룹을 사용할 수 있습니다. 이 예에서는 둘 다 사용하여 지정된 배치 그룹 내의 시스템의 네트워크 성능을 향상시킬 수 있는 구성을 보여줍니다.

사전 요구 사항

  • AWS 콘솔에 배치 그룹을 생성하셨습니다.

    참고

    생성하는 배치 그룹 유형에 대한 규칙 및 제한 사항이 의도한 사용 사례와 호환되는지 확인합니다. 컨트롤 플레인 머신 세트는 가능한 경우 컨트롤 플레인 시스템을 여러 개의 장애 도메인에 분배합니다. 컨트롤 플레인에 배치 그룹을 사용하려면 여러 가용 영역에 걸쳐 있는 배치 그룹 유형을 사용해야 합니다.

프로세스

  1. 텍스트 편집기에서 기존 머신 세트의 YAML 파일을 열거나 새 머신을 생성합니다.
  2. providerSpec 필드 아래의 다음 행을 편집합니다.

    apiVersion: machine.openshift.io/v1
    kind: ControlPlaneMachineSet
    # ...
    spec:
      template:
        spec:
          providerSpec:
            value:
              instanceType: <supported_instance_type> 1
              networkInterfaceType: EFA 2
              placement:
                availabilityZone: <zone> 3
                region: <region> 4
              placementGroupName: <placement_group> 5
              placementGroupPartition: <placement_group_partition_number> 6
    # ...
    1
    2
    EFA 네트워크 인터페이스 유형을 지정합니다.
    3
    영역을 지정합니다(예: us-east-1a ).
    4
    리전을 지정합니다(예: us-east-1 ).
    5
    머신을 배포할 기존 AWS 배치 그룹의 이름을 지정합니다.
    6
    선택 사항: 시스템을 배포할 기존 AWS 배치 그룹의 파티션 번호를 지정합니다.

검증

  • AWS 콘솔에서 머신 세트가 생성된 머신을 찾아 머신 속성에서 다음을 확인합니다.

    • placement group 필드에는 시스템 세트의 placementGroupName 매개변수에 대해 지정한 값이 있습니다.
    • 파티션 번호 필드에는 머신 세트의 placementGroup Cryostat 매개변수에 대해 지정한 값이 있습니다.
    • interface 유형 필드는 EFA를 사용함을 나타냅니다.
12.5.1.2.4. Amazon EC2 인스턴스 메타데이터 서비스에 대한 머신 세트 옵션

머신 세트를 사용하여 특정 버전의 Amazon EC2 인스턴스 메타데이터 서비스(IMDS)를 사용하는 머신을 생성할 수 있습니다. 머신 세트는 IMDSv1 및 IMDSv2 또는 IMDSv2 를 사용해야 하는 머신을 생성할 수 있습니다.

참고

IMDSv2 사용은 OpenShift Container Platform 버전 4.7 이상으로 생성된 AWS 클러스터에서만 지원됩니다.

중요

IMDSv2가 필요한 머신을 생성하도록 머신 세트를 구성하기 전에 AWS 메타데이터 서비스와 상호 작용하는 모든 워크로드가 IMDSv2를 지원하는지 확인합니다.

12.5.1.2.4.1. 머신 세트를 사용하여 IMDS 구성

머신의 머신 세트 YAML 파일에서 metadataServiceOptions.authentication 값을 추가하거나 편집하여 IMDSv2의 사용이 필요한지 여부를 지정할 수 있습니다.

사전 요구 사항

  • IMDSv2를 사용하려면 OpenShift Container Platform 버전 4.7 이상을 사용하여 AWS 클러스터가 생성되어 있어야 합니다.

프로세스

  • providerSpec 필드 아래에 다음 행을 추가하거나 편집합니다.

    providerSpec:
      value:
        metadataServiceOptions:
          authentication: Required 1
    1
    IMDSv2를 요구하려면 매개 변수 값을 Required 로 설정합니다. IMDSv1 및 IMDSv2를 모두 사용할 수 있도록 하려면 매개 변수 값을 Optional 로 설정합니다. 값을 지정하지 않으면 IMDSv1 및 IMDSv2가 모두 허용됩니다.
12.5.1.2.5. 머신을 Dedicated 인스턴스로 배포하는 머신 세트

AWS에서 실행 중인 머신 세트를 생성하여 머신을 Dedicated 인스턴스로 배포할 수 있습니다. Dedicated 인스턴스는 단일 고객 전용 하드웨어의 VPC(가상 프라이빗 클라우드)에서 실행됩니다. 이러한 Amazon EC2 인스턴스는 호스트 하드웨어 수준에서 물리적으로 분리됩니다. Dedicated 인스턴스의 분리는 인스턴스가 하나의 유료 계정에 연결된 다른 AWS 계정에 속하는 경우에도 발생합니다. 하지만 전용이 아닌 다른 인스턴스는 동일한 AWS 계정에 속하는 경우 Dedicated 인스턴스와 하드웨어를 공유할 수 있습니다.

공용 또는 전용 테넌시가 있는 인스턴스는 Machine API에서 지원됩니다. 공용 테넌시가 있는 인스턴스는 공유 하드웨어에서 실행됩니다. 공용 테넌시는 기본 테넌시입니다. 전용 테넌트가 있는 인스턴스는 단일 테넌트 하드웨어에서 실행됩니다.

12.5.1.2.5.1. 머신 세트를 사용하여 Dedicated 인스턴스 생성

Machine API 통합을 사용하여 Dedicated 인스턴스에서 지원하는 머신을 실행할 수 있습니다. 머신 세트 YAML 파일의 tenancy 필드를 설정하여 AWS에서 전용 인스턴스를 시작합니다.

프로세스

  • providerSpec 필드에서 전용 테넌트를 지정합니다.

    providerSpec:
      placement:
        tenancy: dedicated

12.5.2. Microsoft Azure의 컨트롤 플레인 구성 옵션

컨트롤 플레인 머신 세트의 구성을 변경하고 컨트롤 플레인 머신 세트에서 값을 업데이트하여 기능을 활성화할 수 있습니다. 컨트롤 플레인 머신 세트에 대한 업데이트를 저장하면 컨트롤 플레인 머신 세트 Operator가 구성된 업데이트 전략에 따라 컨트롤 플레인 시스템을 업데이트합니다.

12.5.2.1. Microsoft Azure 클러스터 구성을 위한 샘플 YAML

다음 예제 YAML 스니펫에서는 Azure 클러스터의 공급자 사양 및 실패 도메인 구성을 보여줍니다.

12.5.2.1.1. Azure 공급자 사양 샘플

기존 클러스터에 대한 컨트롤 플레인 머신 세트를 생성할 때 공급자 사양은 설치 프로그램에서 생성한 컨트롤 플레인 Machine CR의 providerSpec 구성과 일치해야 합니다. CR의 실패 도메인 섹션에 설정된 필드를 생략할 수 있습니다.

다음 예에서 < cluster_id >는 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID입니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.

$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster

Azure providerSpec 값 샘플

apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
  name: cluster
  namespace: openshift-machine-api
spec:
# ...
  template:
# ...
      spec:
        providerSpec:
          value:
            acceleratedNetworking: true
            apiVersion: machine.openshift.io/v1beta1
            credentialsSecret:
              name: azure-cloud-credentials 1
              namespace: openshift-machine-api
            diagnostics: {}
            image: 2
              offer: ""
              publisher: ""
              resourceID: /resourceGroups/<cluster_id>-rg/providers/Microsoft.Compute/galleries/gallery_<cluster_id>/images/<cluster_id>-gen2/versions/412.86.20220930 3
              sku: ""
              version: ""
            internalLoadBalancer: <cluster_id>-internal 4
            kind: AzureMachineProviderSpec 5
            location: <region> 6
            managedIdentity: <cluster_id>-identity
            metadata:
              creationTimestamp: null
              name: <cluster_id>
            networkResourceGroup: <cluster_id>-rg
            osDisk: 7
              diskSettings: {}
              diskSizeGB: 1024
              managedDisk:
                storageAccountType: Premium_LRS
              osType: Linux
            publicIP: false
            publicLoadBalancer: <cluster_id> 8
            resourceGroup: <cluster_id>-rg
            subnet: <cluster_id>-master-subnet 9
            userDataSecret:
              name: master-user-data 10
            vmSize: Standard_D8s_v3
            vnet: <cluster_id>-vnet
            zone: "1" 11

1
클러스터의 시크릿 이름을 지정합니다. 이 값은 변경하지 마십시오.
2
컨트롤 플레인 머신 세트의 이미지 세부 정보를 지정합니다.
3
인스턴스 유형과 호환되는 이미지를 지정합니다. 설치 프로그램에서 생성한 Hyper-V generation V2 이미지에는 -gen2 접미사가 있지만 V1 이미지의 접미사 없이 이름이 동일합니다.
4
컨트롤 플레인의 내부 로드 밸런서를 지정합니다. 이 필드는 사전 구성되지 않을 수 있지만 ControlPlaneMachineSet 및 컨트롤 플레인 Machine CR 모두에 필요합니다.
5
클라우드 공급자 플랫폼 유형을 지정합니다. 이 값은 변경하지 마십시오.
6
컨트롤 플레인 시스템을 배치할 리전을 지정합니다.
7
컨트롤 플레인의 디스크 구성을 지정합니다.
8
컨트롤 플레인의 공용 로드 밸런서를 지정합니다.
참고

사용자 정의 아웃 바운드 라우팅이 있는 프라이빗 OpenShift Container Platform 클러스터에서 publicLoadBalancer 매개변수를 생략할 수 있습니다.

9
컨트롤 플레인의 서브넷을 지정합니다.
10
컨트롤 플레인 사용자 데이터 시크릿을 지정합니다. 이 값은 변경하지 마십시오.
11
모든 장애 도메인에 단일 영역을 사용하는 클러스터의 영역 구성을 지정합니다.
참고

클러스터가 각 장애 도메인에 다른 영역을 사용하도록 구성된 경우 이 매개변수는 실패 도메인에 구성됩니다. 각 장애 도메인에 다른 영역을 사용할 때 공급자 사양에 이 값을 지정하면 컨트롤 플레인 머신 세트 Operator에서 해당 영역을 무시합니다.

12.5.2.1.2. 샘플 Azure 실패 도메인 구성

실패 도메인의 컨트롤 플레인 머신 세트 개념은 Azure 가용성 영역의 기존 Azure 개념과 유사합니다. ControlPlaneMachineSet CR은 가능한 경우 컨트롤 플레인 시스템을 여러 개의 장애 도메인에 분배합니다.

컨트롤 플레인 머신 세트에서 Azure 장애 도메인을 구성할 때 가용성 영역 이름을 지정해야 합니다. Azure 클러스터는 여러 영역에 걸쳐 있는 단일 서브넷을 사용합니다.

Azure 실패 도메인 값 샘플

apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
  name: cluster
  namespace: openshift-machine-api
spec:
# ...
  template:
# ...
    machines_v1beta1_machine_openshift_io:
      failureDomains:
        azure:
        - zone: "1" 1
        - zone: "2"
        - zone: "3"
        platform: Azure 2
# ...

1
영역 의 각 인스턴스는 장애 도메인의 Azure 가용성 영역을 지정합니다.
참고

클러스터가 모든 장애 도메인에 단일 영역을 사용하도록 구성된 경우 zone 매개변수는 실패 도메인 구성 대신 공급자 사양에 구성됩니다.

2
클라우드 공급자 플랫폼 이름을 지정합니다. 이 값은 변경하지 마십시오.

12.5.2.2. 컨트롤 플레인 시스템에 대한 Microsoft Azure 기능 활성화

컨트롤 플레인 머신 세트에서 값을 업데이트하여 기능을 활성화할 수 있습니다.

12.5.2.2.1. API 서버를 프라이빗으로 제한

AWS(Amazon Web Services)에 클러스터를 배포한 후 프라이빗 영역만 사용하도록 API 서버를 재구성할 수 있습니다.

사전 요구 사항

  • OpenShift CLI (oc)를 설치합니다.
  • admin 권한이 있는 사용자로 웹 콘솔에 액세스합니다.

프로세스

  1. 클라우드 공급자의 웹 포털 또는 콘솔에서 다음 작업을 수행합니다.

    1. 적절한 로드 밸런서 구성 요소를 찾아서 삭제합니다.
    2. 퍼블릭 영역의 api.$clustername.$yourdomain DNS 항목을 삭제합니다.
  2. 컨트롤 플레인 머신 세트 사용자 정의 리소스에서 다음 표시된 행을 삭제하여 외부 로드 밸런서를 제거합니다.

    # ...
    providerSpec:
      value:
    # ...
        loadBalancers:
        - name: lk4pj-ext 1
          type: network 2
        - name: lk4pj-int
          type: network
    # ...
    1
    -ext 로 끝나는 외부 로드 밸런서의 name 값을 삭제합니다.
    2
    외부 로드 밸런서의 유형 값을 삭제합니다.
12.5.2.2.2. 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 생성 버전 2 VM 이미지를 나타냅니다. OpenShift Container Platform에서 사용되는 기본 인스턴스 유형은 버전 2와 호환됩니다. 버전 1과 호환되는 인스턴스 유형을 사용하려면 rh-ocp-worker-gen1 SKU와 연결된 이미지를 사용합니다. rh-ocp-worker-gen1 SKU는 Hyper-V 버전 1 VM 이미지를 나타냅니다.
중요

Azure Marketplace를 사용하여 이미지 설치는 64비트 ARM 인스턴스가 있는 클러스터에서 지원되지 않습니다.

사전 요구 사항

  • 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-ocp-worker:4.15.2024072409              4.15.2024072409
      rh-ocp-worker  RedHat          rh-ocp-worker-gen1  RedHat:rh-ocp-worker:rh-ocp-worker-gen1:4.15.2024072409         4.15.2024072409

    • 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.15.2024072409              4.15.2024072409
      rh-ocp-worker  redhat-limited  rh-ocp-worker-gen1  redhat-limited:rh-ocp-worker:rh-ocp-worker-gen1:4.15.2024072409         4.15.2024072409

    참고

    컴퓨팅 및 컨트롤 플레인 노드에 사용할 수 있는 최신 이미지를 사용합니다. 필요한 경우 설치 프로세스의 일부로 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. 제안의 이미지 세부 정보, 특히 publisher, offer, sku, version 값을 기록합니다.
  6. 제안의 이미지 세부 정보를 사용하여 머신 세트 YAML 파일의 providerSpec 섹션에 다음 매개변수를 추가합니다.

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

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

12.5.2.2.3. Azure 부팅 진단 활성화

머신 세트에서 생성하는 Azure 머신에서 부팅 진단을 활성화할 수 있습니다.

사전 요구 사항

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

프로세스

  • 스토리지 유형에 적용할 수 있는 diagnostics 구성을 머신 세트 YAML 파일의 providerSpec 필드에 추가합니다.

    • Azure 관리 스토리지 계정의 경우:

      providerSpec:
        diagnostics:
          boot:
            storageAccountType: AzureManaged 1
      1
      Azure 관리 스토리지 계정을 지정합니다.
    • Azure Unmanaged 스토리지 계정의 경우:

      providerSpec:
        diagnostics:
          boot:
            storageAccountType: CustomerManaged 1
            customerManaged:
              storageAccountURI: https://<storage-account>.blob.core.windows.net 2
      1
      Azure Unmanaged 스토리지 계정을 지정합니다.
      2
      <storage-account>를 스토리지 계정 이름으로 바꿉니다.
      참고

      Azure Blob Storage 데이터 서비스만 지원됩니다.

검증

  • Microsoft Azure 포털에서 머신 세트에서 배포한 머신의 부팅 진단 페이지를 검토하고 시스템의 직렬 로그를 볼 수 있는지 확인합니다.
12.5.2.2.4. 울트라 디스크가 있는 머신을 데이터 디스크로 배포하는 머신 세트

Azure에서 실행되는 머신 세트를 생성하여 울트라 디스크가 있는 머신을 배포할 수 있습니다. Ultra 디스크는 가장 까다로운 데이터 워크로드에 사용하기 위한 고성능 스토리지입니다.

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

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

사전 요구 사항

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

프로세스

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

    $ oc -n openshift-machine-api \
    get secret <role>-user-data \ 1
    --template='{{index .data.userData | base64decode}}' | jq > userData.txt 2
    1
    <role>master 로 바꿉니다.
    2
    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" 항목을 지정하여 여러 데이터 디스크를 초기화할 수 있습니다. 여러 개의 "disks" 항목을 지정하는 경우 각 항목의 lun 값이 머신 세트의 값과 일치하는지 확인합니다.
      3
      디스크의 새 파티션의 구성 세부 정보입니다.
      4
      파티션의 레이블을 지정합니다. lun0 의 첫 번째 파티션에 lun0 과 같은 계층적 이름을 사용하는 것이 유용할 수 있습니다.
      5
      파티션의 총 크기(MiB)를 지정합니다.
      6
      파티션을 포맷할 때 사용할 파일 시스템을 지정합니다. 파티션 레이블을 사용하여 파티션을 지정합니다.
      7
      부팅 시 파티션을 마운트할 systemd 장치를 지정합니다. 파티션 레이블을 사용하여 파티션을 지정합니다. 이 구성 파일에서 여러 개의 "partitions" 항목을 지정하여 여러 파티션을 만들 수 있습니다. 여러 개의 "partitions" 항목을 지정하는 경우 각각에 대해 systemd 장치를 지정해야 합니다.
      8
      Wherestorage.filesystems.path 의 값을 지정합니다. What에 대해 storage.filesystems.device 값을 지정합니다.
  3. 다음 명령을 실행하여 template 값을 disableTemplating.txt 라는 파일에 추출합니다.

    $ oc -n openshift-machine-api get secret <role>-user-data \ 1
    --template='{{index .data.disableTemplating | base64decode}}' | jq > disableTemplating.txt
    1
    <role>master 로 바꿉니다.
  4. userData.txt 파일과 disableTemplating.txt 파일을 결합하여 다음 명령을 실행하여 데이터 시크릿 파일을 생성합니다.

    $ oc -n openshift-machine-api create secret generic <role>-user-data-x5 \ 1
    --from-file=userData=userData.txt \
    --from-file=disableTemplating=disableTemplating.txt
    1
    <role>-user-data-x5 의 경우 시크릿 이름을 지정합니다. <role>master 로 바꿉니다.
  5. 다음 명령을 실행하여 컨트롤 플레인 머신 세트 CR을 편집합니다.

    $ oc --namespace openshift-machine-api edit controlplanemachineset.machine.openshift.io cluster
  6. 표시된 위치에 다음 행을 추가합니다.

    apiVersion: machine.openshift.io/v1beta1
    kind: ControlPlaneMachineSet
    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: <role>-user-data-x5 4
    1
    이 머신 세트에서 생성한 노드를 선택하는 데 사용할 라벨을 지정합니다. 이 절차에서는 이 값에 disk.ultrassd 를 사용합니다.
    2 3
    이 라인은 울트라 디스크를 사용할 수 있습니다. dataDisks 의 경우 전체 스탠자를 포함합니다.
    4
    이전에 생성한 사용자 데이터 시크릿을 지정합니다. <role>master 로 바꿉니다.
  7. 변경 사항을 저장하십시오.

    • 기본 RollingUpdate 업데이트 전략을 사용하는 클러스터의 경우 Operator는 변경 사항을 컨트롤 플레인 구성에 자동으로 전파합니다.
    • OnDelete 업데이트 전략을 사용하도록 구성된 클러스터의 경우 컨트롤 플레인 시스템을 수동으로 교체해야 합니다.

검증

  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 시스템에 연결된 블록 장치가 표시됩니다.

다음 단계

  • 컨트롤 플레인에서 울트라 디스크를 사용하려면 컨트롤 플레인의 울트라 디스크 마운트 지점을 사용하도록 워크로드를 재구성합니다.
12.5.2.2.4.2. 울트라 디스크를 활성화하는 머신 세트의 리소스 문제 해결

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

12.5.2.2.4.2.1. 잘못된 울트라 디스크 구성

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

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

StorageAccountType UltraSSD_LRS can be used only when additionalCapabilities.ultraSSDEnabled is set.
  • 이 문제를 해결하려면 머신 세트 구성이 올바른지 확인합니다.
12.5.2.2.4.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>."
  • 이 문제를 해결하려면 지원되는 환경에서 이 기능을 사용하고 있으며 머신 세트 구성이 올바른지 확인합니다.
12.5.2.2.4.2.3. 디스크를 삭제할 수 없음

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

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

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
12.5.2.2.6. 머신 세트를 사용하여 Azure 가상 머신에 대한 신뢰할 수 있는 시작 구성
중요

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

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

OpenShift Container Platform 4.17은 Azure VM(가상 머신)에 대한 신뢰할 수 있는 시작을 지원합니다. 머신 세트 YAML 파일을 편집하여 머신 세트가 배포하는 머신에 사용하는 신뢰할 수 있는 시작 옵션을 구성할 수 있습니다. 예를 들어 Secure Boot 또는 전용 가상 신뢰할 수 있는 플랫폼 모듈(vTPM) 인스턴스와 같은 UEFI 보안 기능을 사용하도록 이러한 머신을 구성할 수 있습니다.

참고

일부 기능 조합은 잘못된 구성을 생성합니다.

표 12.2. UEFI 기능 조합 호환성
Secure Boot[1]vTPM[2]유효한 구성

활성화됨

활성화됨

제공됨

활성화됨

비활성화됨

제공됨

활성화됨

생략됨

제공됨

비활성화됨

활성화됨

제공됨

생략됨

활성화됨

제공됨

비활성화됨

비활성화됨

없음

생략됨

비활성화됨

없음

생략됨

생략됨

없음

  1. secureBoot 필드 사용.
  2. virtualizedTrustedPlatformModule 필드 사용

관련 기능 및 기능에 대한 자세한 내용은 Azure 가상 머신의 신뢰할 수 있는 시작에 대한 Microsoft Azure 설명서를 참조하십시오.

프로세스

  1. 텍스트 편집기에서 기존 머신 세트의 YAML 파일을 열거나 새 머신을 생성합니다.
  2. providerSpec 필드 아래의 다음 섹션을 편집하여 유효한 구성을 제공합니다.

    UEFI Secure Boot 및 vTPM이 활성화된 샘플 유효한 구성

    apiVersion: machine.openshift.io/v1
    kind: ControlPlaneMachineSet
    # ...
    spec:
      template:
        machines_v1beta1_machine_openshift_io:
          spec:
            providerSpec:
              value:
                securityProfile:
                  settings:
                    securityType: TrustedLaunch 1
                    trustedLaunch:
                      uefiSettings: 2
                        secureBoot: Enabled 3
                        virtualizedTrustedPlatformModule: Enabled 4
    # ...

    1
    Azure 가상 머신에 대한 신뢰할 수 있는 시작 기능을 활성화합니다. 이 값은 모든 유효한 구성에 필요합니다.
    2
    사용할 UEFI 보안 기능을 지정합니다. 이 섹션은 모든 유효한 구성에 필요합니다.
    3
    UEFI Secure Boot를 활성화합니다.
    4
    vTPM 사용을 활성화합니다.

검증

  • Azure 포털에서 머신 세트에서 배포한 머신의 세부 정보를 검토하고 신뢰할 수 있는 시작 옵션이 구성한 값과 일치하는지 확인합니다.
12.5.2.2.7. 머신 세트를 사용하여 Azure 기밀 가상 머신 구성
중요

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

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

OpenShift Container Platform 4.17은 Azure 기밀 가상 머신(VM)을 지원합니다.

참고

현재 기밀 VM은 64비트 ARM 아키텍처에서 지원되지 않습니다.

머신 세트 YAML 파일을 편집하여 머신 세트가 배포하는 머신에 사용하는 기밀 VM 옵션을 구성할 수 있습니다. 예를 들어 Secure Boot 또는 전용 가상 신뢰할 수 있는 플랫폼 모듈(vTPM) 인스턴스와 같은 UEFI 보안 기능을 사용하도록 이러한 머신을 구성할 수 있습니다.

주의

모든 인스턴스 유형이 기밀 VM을 지원하는 것은 아닙니다. 기밀 VM을 호환되지 않는 유형으로 사용하도록 구성된 컨트롤 플레인 머신 세트의 인스턴스 유형을 변경하지 마십시오. 호환되지 않는 인스턴스 유형을 사용하면 클러스터가 불안정해질 수 있습니다.

관련 기능 및 기능에 대한 자세한 내용은 기밀 가상 머신에 대한 Microsoft Azure 설명서를 참조하십시오.

프로세스

  1. 텍스트 편집기에서 기존 머신 세트의 YAML 파일을 열거나 새 머신을 생성합니다.
  2. providerSpec 필드 아래의 다음 섹션을 편집합니다.

    샘플 구성

    apiVersion: machine.openshift.io/v1
    kind: ControlPlaneMachineSet
    # ...
    spec:
      template:
        spec:
          providerSpec:
            value:
              osDisk:
                # ...
                managedDisk:
                  securityProfile: 1
                    securityEncryptionType: VMGuestStateOnly 2
                # ...
              securityProfile: 3
                settings:
                    securityType: ConfidentialVM 4
                    confidentialVM:
                      uefiSettings: 5
                        secureBoot: Disabled 6
                        virtualizedTrustedPlatformModule: Enabled 7
              vmSize: Standard_DC16ads_v5 8
    # ...

    1
    기밀 VM을 사용할 때 관리 디스크에 대한 보안 프로필 설정을 지정합니다.
    2
    VMGS(VM 게스트 상태) Blob의 암호화를 활성화합니다. 이 설정을 사용하려면 vTPM을 사용해야 합니다.
    3
    기밀 VM의 보안 프로필 설정을 지정합니다.
    4
    기밀 VM을 사용할 수 있습니다. 이 값은 모든 유효한 구성에 필요합니다.
    5
    사용할 UEFI 보안 기능을 지정합니다. 이 섹션은 모든 유효한 구성에 필요합니다.
    6
    UEFI Secure Boot를 비활성화합니다.
    7
    vTPM 사용을 활성화합니다.
    8
    기밀 VM을 지원하는 인스턴스 유형을 지정합니다.

검증

  • Azure 포털에서 머신 세트에서 배포한 머신의 세부 정보를 검토하고 기밀 VM 옵션이 구성한 값과 일치하는지 확인합니다.
12.5.2.2.8. Microsoft Azure VM용 가속화 네트워킹

가속화 네트워킹은 단일 루트 I/O 가상화(SR-IOV)를 사용하여 Microsoft Azure VM에 더 직접적인 전환 경로를 제공합니다. 이렇게 하면 네트워크 성능이 향상됩니다. 이 기능은 설치 후 활성화할 수 있습니다.

12.5.2.2.8.1. 제한

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

  • 가속화 네트워킹은 Machine API가 작동하는 클러스터에서만 지원됩니다.
  • 가속화 네트워킹에는 vCPU가 4개 이상 포함된 Azure VM 크기가 필요합니다. 이 요구 사항을 충족하기 위해 머신 세트의 vmSize 값을 변경할 수 있습니다. Azure VM 크기에 대한 자세한 내용은 Microsoft Azure 설명서를 참조하십시오.

12.5.2.2.9. 머신 세트를 사용하여 용량 예약 구성

OpenShift Container Platform 버전 4.17 이상에서는 Microsoft Azure 클러스터의 용량 예약 그룹을 사용하여 온디맨드 용량 예약을 지원합니다.

사용자가 정의한 용량 요청의 매개변수와 일치하는 사용 가능한 리소스에 머신을 배포하도록 머신 세트를 구성할 수 있습니다. 이러한 매개변수는 VM 크기, 리전 및 예약할 인스턴스 수를 지정합니다. Azure 서브스크립션 할당량이 용량 요청을 수용할 수 있는 경우 배포에 성공합니다.

이 Azure 인스턴스 유형에 대한 제한 사항 및 제안된 사용 사례를 비롯한 자세한 내용은 온디맨드 용량 예약에 대한 Microsoft Azure 설명서를 참조하십시오.

참고

머신 세트의 기존 용량 예약 구성은 변경할 수 없습니다. 다른 용량 예약 그룹을 사용하려면 머신 세트와 이전 머신 세트가 배포된 머신을 교체해야 합니다.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • OpenShift CLI(oc)를 설치합니다.
  • 용량 예약 그룹을 생성했습니다.

    자세한 내용은 Microsoft Azure 설명서 용량 예약 만들기를 참조하십시오.

프로세스

  1. 텍스트 편집기에서 기존 머신 세트의 YAML 파일을 열거나 새 머신을 생성합니다.
  2. providerSpec 필드 아래의 다음 섹션을 편집합니다.

    샘플 구성

    apiVersion: machine.openshift.io/v1
    kind: ControlPlaneMachineSet
    # ...
    spec:
      template:
        machines_v1beta1_machine_openshift_io:
          spec:
            providerSpec:
              value:
                capacityReservationGroupID: <capacity_reservation_group> 1
    # ...

    1
    시스템이 머신을 배포하도록 설정할 용량 예약 그룹의 ID를 지정합니다.

검증

  • 시스템 배포를 확인하려면 다음 명령을 실행하여 머신 세트에서 생성한 머신을 나열합니다.

    $ oc get machine \
      -n openshift-machine-api \
      -l machine.openshift.io/cluster-api-machine-role=master

    출력에서 나열된 시스템의 특성이 용량 예약의 매개변수와 일치하는지 확인합니다.

12.5.2.2.9.1. 기존 Microsoft Azure 클러스터에서 가속 네트워킹 활성화

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

사전 요구 사항

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

프로세스

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

    providerSpec:
      value:
        acceleratedNetworking: true 1
        vmSize: <azure-vm-size> 2
    1
    이 라인은 가속 네트워킹을 활성화합니다.
    2
    vCPU가 4개 이상인 Azure VM 크기를 지정합니다. VM 크기에 대한 자세한 내용은 Microsoft Azure 설명서를 참조하십시오.

검증

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

12.5.3. Google Cloud Platform의 컨트롤 플레인 구성 옵션

GCP(Google Cloud Platform) 컨트롤 플레인 시스템의 구성을 변경하고 컨트롤 플레인 머신 세트에서 값을 업데이트하여 기능을 활성화할 수 있습니다. 컨트롤 플레인 머신 세트에 대한 업데이트를 저장하면 컨트롤 플레인 머신 세트 Operator가 구성된 업데이트 전략에 따라 컨트롤 플레인 시스템을 업데이트합니다.

12.5.3.1. Google Cloud Platform 클러스터를 구성하는 샘플 YAML

다음 예제 YAML 스니펫에서는 GCP 클러스터의 공급자 사양 및 실패 도메인 구성을 보여줍니다.

12.5.3.1.1. 샘플 GCP 공급자 사양

기존 클러스터에 대한 컨트롤 플레인 머신 세트를 생성할 때 공급자 사양은 설치 프로그램에서 생성한 컨트롤 플레인 머신 CR(사용자 정의 리소스)의 providerSpec 구성과 일치해야 합니다. CR의 실패 도메인 섹션에 설정된 필드를 생략할 수 있습니다.

OpenShift CLI를 사용하여 얻은 값

다음 예제에서는 OpenShift CLI를 사용하여 클러스터의 일부 값을 가져올 수 있습니다.

인프라 ID

<cluster_id> 문자열은 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID입니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.

$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
이미지 경로

<path_to_image> 문자열은 디스크를 생성하는 데 사용된 이미지의 경로입니다. OpenShift CLI가 설치되어 있으면 다음 명령을 실행하여 이미지에 대한 경로를 얻을 수 있습니다.

$ oc -n openshift-machine-api \
  -o jsonpath='{.spec.template.machines_v1beta1_machine_openshift_io.spec.providerSpec.value.disks[0].image}{"\n"}' \
  get ControlPlaneMachineSet/cluster

샘플 GCP providerSpec

apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
  name: cluster
  namespace: openshift-machine-api
spec:
# ...
  template:
# ...
      spec:
        providerSpec:
          value:
            apiVersion: machine.openshift.io/v1beta1
            canIPForward: false
            credentialsSecret:
              name: gcp-cloud-credentials 1
            deletionProtection: false
            disks:
            - autoDelete: true
              boot: true
              image: <path_to_image> 2
              labels: null
              sizeGb: 200
              type: pd-ssd
            kind: GCPMachineProviderSpec 3
            machineType: e2-standard-4
            metadata:
              creationTimestamp: null
            metadataServiceOptions: {}
            networkInterfaces:
            - network: <cluster_id>-network
              subnetwork: <cluster_id>-master-subnet
            projectID: <project_name> 4
            region: <region> 5
            serviceAccounts: 6
            - email: <cluster_id>-m@<project_name>.iam.gserviceaccount.com
              scopes:
              - https://www.googleapis.com/auth/cloud-platform
            shieldedInstanceConfig: {}
            tags:
            - <cluster_id>-master
            targetPools:
            - <cluster_id>-api
            userDataSecret:
              name: master-user-data 7
            zone: "" 8

1
클러스터의 시크릿 이름을 지정합니다. 이 값은 변경하지 마십시오.
2
디스크를 만드는 데 사용된 이미지의 경로를 지정합니다.

GCP Marketplace 이미지를 사용하려면 사용할 제안을 지정합니다.

  • OpenShift Container Platform: https://www.googleapis.com/compute/v1/projects/redhat-marketplace-public/global/images/redhat-coreos-ocp-413-x86-64-202305021736
  • OpenShift Platform Plus: https://www.googleapis.com/compute/v1/projects/redhat-marketplace-public/global/images/redhat-coreos-opp-413-x86-64-202305021736
  • OpenShift Kubernetes Engine: https://www.googleapis.com/compute/v1/projects/redhat-marketplace-public/global/images/redhat-coreos-oke-413-x86-64-202305021736
3
클라우드 공급자 플랫폼 유형을 지정합니다. 이 값은 변경하지 마십시오.
4
클러스터에 사용하는 GCP 프로젝트의 이름을 지정합니다.
5
클러스터의 GCP 리전을 지정합니다.
6
단일 서비스 계정을 지정합니다. 여러 서비스 계정이 지원되지 않습니다.
7
컨트롤 플레인 사용자 데이터 시크릿을 지정합니다. 이 값은 변경하지 마십시오.
8
이 매개변수는 실패 도메인에 구성되며 여기에 빈 값이 표시됩니다. 이 매개변수에 지정된 값이 실패 도메인의 값과 다른 경우 Operator는 실패 도메인의 값으로 덮어씁니다.
12.5.3.1.2. 샘플 GCP 장애 도메인 구성

실패 도메인의 컨트롤 플레인 머신 세트 개념은 영역 의 기존 GCP 개념과 유사합니다. ControlPlaneMachineSet CR은 가능한 경우 컨트롤 플레인 시스템을 여러 개의 장애 도메인에 분배합니다.

컨트롤 플레인 머신 세트에서 GCP 장애 도메인을 구성할 때 사용할 영역 이름을 지정해야 합니다.

GCP 실패 도메인 값 샘플

apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
  name: cluster
  namespace: openshift-machine-api
spec:
# ...
  template:
# ...
    machines_v1beta1_machine_openshift_io:
      failureDomains:
        gcp:
        - zone: <gcp_zone_a> 1
        - zone: <gcp_zone_b> 2
        - zone: <gcp_zone_c>
        - zone: <gcp_zone_d>
        platform: GCP 3
# ...

1
첫 번째 실패 도메인의 GCP 영역을 지정합니다.
2
추가 실패 도메인을 지정합니다. 추가 실패 도메인도 동일한 방식으로 추가됩니다.
3
클라우드 공급자 플랫폼 이름을 지정합니다. 이 값은 변경하지 마십시오.

12.5.3.2. 컨트롤 플레인 시스템의 Google Cloud Platform 기능 활성화

컨트롤 플레인 머신 세트에서 값을 업데이트하여 기능을 활성화할 수 있습니다.

12.5.3.2.1. 머신 세트를 사용하여 영구 디스크 유형 구성

머신 세트가 머신 세트 YAML 파일을 편집하여 머신을 배포하는 영구 디스크 유형을 구성할 수 있습니다.

영구 디스크 유형, 호환성, 지역 가용성 및 제한 사항에 대한 자세한 내용은 영구 디스크에 대한 GCP Compute Engine 설명서를 참조하십시오.

프로세스

  1. 텍스트 편집기에서 기존 머신 세트의 YAML 파일을 열거나 새 머신을 생성합니다.
  2. providerSpec 필드 아래의 다음 행을 편집합니다.

    apiVersion: machine.openshift.io/v1
    kind: ControlPlaneMachineSet
    ...
    spec:
      template:
        spec:
          providerSpec:
            value:
              disks:
                type: pd-ssd 1
    1
    컨트롤 플레인 노드는 pd-ssd 디스크 유형을 사용해야 합니다.

검증

  • Google Cloud 콘솔을 사용하여 머신 세트에서 배포한 시스템의 세부 정보를 검토하고 Type 필드가 구성된 디스크 유형과 일치하는지 확인합니다.
12.5.3.2.2. 머신 세트를 사용하여 기밀성 VM 구성

머신 세트 YAML 파일을 편집하여 머신 세트가 배포하는 머신에 사용하는 기밀성 VM 옵션을 구성할 수 있습니다.

Confidential VM 기능, 기능 및 호환성에 대한 자세한 내용은 Confidential VM 에 대한 GCP Compute Engine 설명서를 참조하십시오.

참고

현재 기밀 VM은 64비트 ARM 아키텍처에서 지원되지 않습니다.

중요

OpenShift Container Platform 4.17은 AMD Secure Encrypted Virtualization Secure Nested Paging (SEV-SNP)이 있는 기밀성 VM과 같은 일부 기밀 컴퓨팅 기능을 지원하지 않습니다.

프로세스

  1. 텍스트 편집기에서 기존 머신 세트의 YAML 파일을 열거나 새 머신을 생성합니다.
  2. providerSpec 필드 아래의 다음 섹션을 편집합니다.

    apiVersion: machine.openshift.io/v1
    kind: ControlPlaneMachineSet
    ...
    spec:
      template:
        spec:
          providerSpec:
            value:
              confidentialCompute: Enabled 1
              onHostMaintenance: Terminate 2
              machineType: n2d-standard-8 3
    ...
    1
    기밀성 VM이 활성화되었는지 여부를 지정합니다. 유효한 값은 Disabled 또는 Enabled 입니다.
    2
    호스트 유지 관리 이벤트 중 하드웨어 또는 소프트웨어 업데이트와 같은 VM의 동작을 지정합니다. 기밀성 VM을 사용하는 시스템의 경우 이 값은 VM을 중지하도록 Terminate 로 설정해야 합니다. 기밀 VM은 실시간 VM 마이그레이션을 지원하지 않습니다.
    3
    기밀성 VM을 지원하는 머신 유형을 지정합니다. 기밀 VM은 N2D 및 C2D 일련의 머신 유형을 지원합니다.

검증

  • Google Cloud 콘솔에서 시스템 세트에서 배포한 시스템의 세부 정보를 검토하고 기밀성 VM 옵션이 구성한 값과 일치하는지 확인합니다.
12.5.3.2.3. 머신 세트를 사용하여 Shielded VM 옵션 구성

머신 세트 YAML 파일을 편집하여 머신 세트가 배포하는 머신에 사용하는 Shielded VM 옵션을 구성할 수 있습니다.

Shielded VM 기능 및 기능에 대한 자세한 내용은 Shielded VM 에 대한 GCP Compute Engine 설명서를 참조하십시오.

프로세스

  1. 텍스트 편집기에서 기존 머신 세트의 YAML 파일을 열거나 새 머신을 생성합니다.
  2. providerSpec 필드 아래의 다음 섹션을 편집합니다.

    apiVersion: machine.openshift.io/v1
    kind: ControlPlaneMachineSet
    # ...
    spec:
      template:
        spec:
          providerSpec:
            value:
              shieldedInstanceConfig: 1
                integrityMonitoring: Enabled 2
                secureBoot: Disabled 3
                virtualizedTrustedPlatformModule: Enabled 4
    # ...
    1
    이 섹션에서는 원하는 모든 Shielded VM 옵션을 지정합니다.
    2
    무결성 모니터링이 활성화되었는지 여부를 지정합니다. 유효한 값은 Disabled 또는 Enabled 입니다.
    참고

    무결성 모니터링이 활성화되면 신뢰할 수 있는 가상 플랫폼 모듈(vTPM)을 비활성화해서는 안 됩니다.

    3
    UEFI Secure Boot가 활성화되었는지 여부를 지정합니다. 유효한 값은 Disabled 또는 Enabled 입니다.
    4
    vTPM이 활성화되었는지 여부를 지정합니다. 유효한 값은 Disabled 또는 Enabled 입니다.

검증

  • Google Cloud 콘솔을 사용하여 머신 세트에서 배포한 머신의 세부 정보를 검토하고 Shielded VM 옵션이 구성한 값과 일치하는지 확인합니다.
12.5.3.2.4. 머신 세트의 고객 관리 암호화 키 활성화

GCP(Google Cloud Platform) Compute Engine을 사용하면 사용자가 암호화 키를 제공하여 디스크의 데이터를 암호화 할 수 있습니다. 키는 고객의 데이터를 암호화하는 것이 아니라 데이터 암호화 키를 암호화하는 데 사용됩니다. 기본적으로 Compute Engine은 Compute Engine 키를 사용하여 이 데이터를 암호화합니다.

Machine API를 사용하는 클러스터에서 고객 관리 키로 암호화를 활성화할 수 있습니다. 먼저 KMS 키를 생성하고 서비스 계정에 올바른 권한을 할당해야 합니다. 서비스 계정에서 키를 사용하려면 KMS 키 이름, 키 링 이름 및 위치가 필요합니다.

참고

KMS 암호화에 전용 서비스 계정을 사용하지 않는 경우 Compute Engine 기본 서비스 계정이 대신 사용됩니다. 전용 서비스 계정을 사용하지 않는 경우 키에 액세스할 수 있는 기본 서비스 계정 권한을 부여해야 합니다. Compute Engine 기본 서비스 계정 이름은 service-<project_number>@compute-system.iam.gserviceaccount.com 패턴을 기반으로 합니다.

프로세스

  1. 특정 서비스 계정이 KMS 키를 사용하도록 허용하고 서비스 계정에 올바른 IAM 역할을 부여하려면 KMS 키 이름, 키 링 이름 및 위치로 다음 명령을 실행합니다.

    $ gcloud kms keys add-iam-policy-binding <key_name> \
      --keyring <key_ring_name> \
      --location <key_ring_location> \
      --member "serviceAccount:service-<project_number>@compute-system.iam.gserviceaccount.com” \
      --role roles/cloudkms.cryptoKeyEncrypterDecrypter
  2. 사용자가 머신 세트 YAML 파일의 providerSpec 필드에 암호화 키를 구성할 수 있습니다. 예를 들면 다음과 같습니다.

    apiVersion: machine.openshift.io/v1
    kind: ControlPlaneMachineSet
    ...
    spec:
      template:
        spec:
          providerSpec:
            value:
              disks:
              - type:
                encryptionKey:
                  kmsKey:
                    name: machine-encryption-key 1
                    keyRing: openshift-encrpytion-ring 2
                    location: global 3
                    projectID: openshift-gcp-project 4
                  kmsKeyServiceAccount: openshift-service-account@openshift-gcp-project.iam.gserviceaccount.com 5
    1
    디스크 암호화에 사용되는 고객 관리 암호화 키의 이름입니다.
    2
    KMS 키가 속한 KMS 키 링의 이름입니다.
    3
    KMS 키 링이 있는 GCP 위치입니다.
    4
    선택 사항: KMS 키 링이 존재하는 프로젝트의 ID입니다. 프로젝트 ID가 설정되지 않은 경우 머신 세트가 사용된 머신 세트의 projectID를 설정합니다.
    5
    선택 사항: 지정된 KMS 키의 암호화 요청에 사용되는 서비스 계정입니다. 서비스 계정이 설정되지 않은 경우 Compute Engine 기본 서비스 계정이 사용됩니다.

    업데이트된 providerSpec 오브젝트 구성을 사용하여 새 머신을 생성하면 디스크 암호화 키가 KMS 키로 암호화됩니다.

12.5.4. Nutanix의 컨트롤 플레인 구성 옵션

컨트롤 플레인 머신 세트의 값을 업데이트하여 Nutanix 컨트롤 플레인 머신의 구성을 변경할 수 있습니다. 컨트롤 플레인 머신 세트에 대한 업데이트를 저장하면 컨트롤 플레인 머신 세트 Operator가 구성된 업데이트 전략에 따라 컨트롤 플레인 시스템을 업데이트합니다.

12.5.4.1. Nutanix 클러스터 구성을 위한 샘플 YAML

다음 예제 YAML 스니펫에서는 Nutanix 클러스터의 공급자 사양 구성을 보여줍니다.

12.5.4.1.1. 샘플 Nutanix 공급자 사양

기존 클러스터에 대한 컨트롤 플레인 머신 세트를 생성할 때 공급자 사양은 설치 프로그램에서 생성한 컨트롤 플레인 머신 CR(사용자 정의 리소스)의 providerSpec 구성과 일치해야 합니다.

OpenShift CLI를 사용하여 얻은 값

다음 예제에서는 OpenShift CLI를 사용하여 클러스터의 일부 값을 가져올 수 있습니다.

인프라 ID

<cluster_id> 문자열은 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID입니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.

$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster

샘플 Nutanix providerSpec

apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
  name: cluster
  namespace: openshift-machine-api
spec:
# ...
  template:
# ...
      spec:
        providerSpec:
          value:
            apiVersion: machine.openshift.io/v1
            bootType: "" 1
            categories: 2
            - key: <category_name>
              value: <category_value>
            cluster: 3
              type: uuid
              uuid: <cluster_uuid>
            credentialsSecret:
              name: nutanix-credentials 4
            image: 5
              name: <cluster_id>-rhcos
              type: name
            kind: NutanixMachineProviderConfig 6
            memorySize: 16Gi 7
            metadata:
              creationTimestamp: null
            project: 8
              type: name
              name: <project_name>
            subnets: 9
            - type: uuid
              uuid: <subnet_uuid>
            systemDiskSize: 120Gi 10
            userDataSecret:
              name: master-user-data 11
            vcpuSockets: 8 12
            vcpusPerSocket: 1 13

1
컨트롤 플레인 시스템이 사용하는 부팅 유형을 지정합니다. 부팅 유형에 대한 자세한 내용은 가상화 된 환경에서 UEFI, Secure Boot 및 TPM 이해를 참조하십시오. 유효한 값은 Legacy,SecureBoot 또는 UEFI 입니다. 기본값은 Legacy 입니다.
참고

OpenShift Container Platform 4.17에서 레거시 부팅 유형을 사용해야 합니다.

2
컨트롤 플레인 시스템에 적용할 하나 이상의 Nutanix Prism 카테고리를 지정합니다. 이 스탠자에는 Prism Central에 존재하는 카테고리 키-값 쌍에 대한 keyvalue 매개변수가 필요합니다. 카테고리에 대한 자세한 내용은 카테고리 관리를 참조하십시오.
3
Nutanix Prism Element 클러스터 구성을 지정합니다. 이 예에서 클러스터 유형은 uuid 이므로 uuid 스탠자가 있습니다.
참고

OpenShift Container Platform 버전 4.15 이상을 사용하는 클러스터는 장애 도메인 구성을 사용할 수 있습니다.

클러스터가 실패 도메인을 사용하도록 구성된 경우 이 매개변수는 실패 도메인에 구성됩니다. 장애 도메인을 사용할 때 공급자 사양에 이 값을 지정하면 Control Plane Machine Set Operator가 이를 무시합니다.

4
클러스터의 시크릿 이름을 지정합니다. 이 값은 변경하지 마십시오.
5
디스크를 만드는 데 사용된 이미지를 지정합니다.
6
클라우드 공급자 플랫폼 유형을 지정합니다. 이 값은 변경하지 마십시오.
7
컨트롤 플레인 시스템에 할당된 메모리를 지정합니다.
8
클러스터에 사용하는 Nutanix 프로젝트를 지정합니다. 이 예에서 프로젝트 유형은 name 이므로 name 스탠자가 있습니다.
9
서브넷 구성을 지정합니다. 이 예에서 서브넷 유형은 uuid 이므로 uuid 스탠자가 있습니다.
참고

OpenShift Container Platform 버전 4.15 이상을 사용하는 클러스터는 장애 도메인 구성을 사용할 수 있습니다.

클러스터가 실패 도메인을 사용하도록 구성된 경우 이 매개변수는 실패 도메인에 구성됩니다. 장애 도메인을 사용할 때 공급자 사양에 이 값을 지정하면 Control Plane Machine Set Operator가 이를 무시합니다.

10
컨트롤 플레인 시스템의 VM 디스크 크기를 지정합니다.
11
컨트롤 플레인 사용자 데이터 시크릿을 지정합니다. 이 값은 변경하지 마십시오.
12
컨트롤 플레인 시스템에 할당된 vCPU 소켓 수를 지정합니다.
13
각 컨트롤 플레인 vCPU 소켓의 vCPU 수를 지정합니다.
12.5.4.1.2. Nutanix 클러스터의 실패 도메인

Nutanix 클러스터에서 장애 도메인 구성을 추가하거나 업데이트하려면 여러 리소스를 조정해야 합니다. 다음 작업이 필요합니다.

  1. 클러스터 인프라 CR(사용자 정의 리소스)을 수정합니다.
  2. 클러스터 컨트롤 플레인 머신 세트 CR을 수정합니다.
  3. 컴퓨팅 머신 세트 CR을 수정하거나 교체합니다.

자세한 내용은 설치 후 구성 콘텐츠의 "기존 Nutanix 클러스터에 장애 도메인 추가"를 참조하십시오.

12.5.5. Red Hat OpenStack Platform의 컨트롤 플레인 구성 옵션

RHOSP(Red Hat OpenStack Platform) 컨트롤 플레인 머신의 구성을 변경하고 컨트롤 플레인 머신 세트에서 값을 업데이트하여 기능을 활성화할 수 있습니다. 컨트롤 플레인 머신 세트에 대한 업데이트를 저장하면 컨트롤 플레인 머신 세트 Operator가 구성된 업데이트 전략에 따라 컨트롤 플레인 시스템을 업데이트합니다.

12.5.5.1. RHOSP(Red Hat OpenStack Platform) 클러스터 구성을 위한 샘플 YAML

다음 예제 YAML 스니펫에서는 RHOSP 클러스터의 공급자 사양 및 실패 도메인 구성을 보여줍니다.

12.5.5.1.1. RHOSP 공급자 사양 샘플

기존 클러스터에 대한 컨트롤 플레인 머신 세트를 생성할 때 공급자 사양은 설치 프로그램에서 생성한 컨트롤 플레인 머신 CR(사용자 정의 리소스)의 providerSpec 구성과 일치해야 합니다.

OpenStack providerSpec 값 샘플

apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
  name: cluster
  namespace: openshift-machine-api
spec:
# ...
  template:
# ...
      spec:
        providerSpec:
          value:
            apiVersion: machine.openshift.io/v1alpha1
            cloudName: openstack
            cloudsSecret:
              name: openstack-cloud-credentials 1
              namespace: openshift-machine-api
            flavor: m1.xlarge 2
            image: ocp1-2g2xs-rhcos
            kind: OpenstackProviderSpec 3
            metadata:
              creationTimestamp: null
            networks:
            - filter: {}
              subnets:
              - filter:
                  name: ocp1-2g2xs-nodes
                  tags: openshiftClusterID=ocp1-2g2xs
            securityGroups:
            - filter: {}
              name: ocp1-2g2xs-master 4
            serverGroupName: ocp1-2g2xs-master
            serverMetadata:
              Name: ocp1-2g2xs-master
              openshiftClusterID: ocp1-2g2xs
            tags:
            - openshiftClusterID=ocp1-2g2xs
            trunk: true
            userDataSecret:
              name: master-user-data

1
클러스터의 시크릿 이름입니다. 이 값은 변경하지 마십시오.
2
컨트롤 플레인의 RHOSP 플레이버 유형입니다.
3
RHOSP 클라우드 공급자 플랫폼 유형입니다. 이 값은 변경하지 마십시오.
4
컨트롤 플레인 시스템 보안 그룹입니다.
12.5.5.1.2. RHOSP 장애 도메인 구성 샘플

실패 도메인의 컨트롤 플레인 머신 세트 개념은 가용성 영역 의 기존 RHOSP(Red Hat OpenStack Platform) 개념과 유사합니다. ControlPlaneMachineSet CR은 가능한 경우 컨트롤 플레인 시스템을 여러 개의 장애 도메인에 분배합니다.

다음 예제에서는 여러 Nova 가용성 영역과 Cinder 가용성 영역을 사용하는 방법을 보여줍니다.

OpenStack 실패 도메인 값 샘플

apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
  name: cluster
  namespace: openshift-machine-api
spec:
# ...
  template:
# ...
    machines_v1beta1_machine_openshift_io:
      failureDomains:
        platform: OpenStack
        openstack:
        - availabilityZone: nova-az0
          rootVolume:
            availabilityZone: cinder-az0
        - availabilityZone: nova-az1
          rootVolume:
            availabilityZone: cinder-az1
        - availabilityZone: nova-az2
          rootVolume:
            availabilityZone: cinder-az2
# ...

12.5.5.2. 컨트롤 플레인 시스템에 대한 RHOSP(Red Hat OpenStack Platform) 기능 활성화

컨트롤 플레인 머신 세트에서 값을 업데이트하여 기능을 활성화할 수 있습니다.

12.5.5.2.1. 컨트롤 플레인 머신 세트를 사용하여 RHOSP 컴퓨팅 플레이버 변경

컨트롤 플레인 머신 세트 사용자 정의 리소스에서 사양을 업데이트하여 컨트롤 플레인 시스템에서 사용하는 RHOSP(Red Hat OpenStack Platform) 컴퓨팅 서비스(Nova) 플레이버를 변경할 수 있습니다.

RHOSP에서 플레이버는 컴퓨팅 인스턴스의 컴퓨팅, 메모리 및 스토리지 용량을 정의합니다. 플레이버 크기를 늘리거나 줄이면 컨트롤 플레인을 수직으로 확장할 수 있습니다.

사전 요구 사항

  • RHOSP 클러스터는 컨트롤 플레인 머신 세트를 사용합니다.

프로세스

  1. providerSpec 필드 아래의 다음 행을 편집합니다.

    providerSpec:
      value:
    # ...
        flavor: m1.xlarge 1
    1
    기존 선택 사항과 동일한 기반이 있는 RHOSP 플레이버 유형을 지정합니다. 예를 들어 m6i.xlargem6i.2xlarge 또는 m6i.4xlarge 로 변경할 수 있습니다. 수직 확장 요구 사항에 따라 더 크거나 작은 플레이버를 선택할 수 있습니다.
  2. 변경 사항을 저장하십시오.

변경 사항을 저장하면 시스템이 선택한 플레이버를 사용하는 시스템으로 교체됩니다.

12.5.6. VMware vSphere의 컨트롤 플레인 구성 옵션

컨트롤 플레인 시스템 세트에서 값을 업데이트하여 VMware vSphere 컨트롤 플레인 시스템의 구성을 변경할 수 있습니다. 컨트롤 플레인 머신 세트에 대한 업데이트를 저장하면 컨트롤 플레인 머신 세트 Operator가 구성된 업데이트 전략에 따라 컨트롤 플레인 시스템을 업데이트합니다.

12.5.6.1. VMware vSphere 클러스터 구성을 위한 샘플 YAML

다음 예제 YAML 스니펫에서는 vSphere 클러스터의 공급자 사양 및 실패 도메인 구성을 보여줍니다.

12.5.6.1.1. VMware vSphere 공급자 사양 샘플

기존 클러스터에 대한 컨트롤 플레인 머신 세트를 생성할 때 공급자 사양은 설치 프로그램에서 생성한 컨트롤 플레인 머신 CR(사용자 정의 리소스)의 providerSpec 구성과 일치해야 합니다.

vSphere providerSpec 값 샘플

apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
  name: cluster
  namespace: openshift-machine-api
spec:
# ...
  template:
# ...
      spec:
        providerSpec:
          value:
            apiVersion: machine.openshift.io/v1beta1
            credentialsSecret:
              name: vsphere-cloud-credentials 1
            diskGiB: 120 2
            kind: VSphereMachineProviderSpec 3
            memoryMiB: 16384 4
            metadata:
              creationTimestamp: null
            network: 5
              devices:
              - networkName: <vm_network_name>
            numCPUs: 4 6
            numCoresPerSocket: 4 7
            snapshot: ""
            template: <vm_template_name> 8
            userDataSecret:
              name: master-user-data 9
            workspace: 10
              datacenter: <vcenter_data_center_name> 11
              datastore: <vcenter_datastore_name> 12
              folder: <path_to_vcenter_vm_folder> 13
              resourcePool: <vsphere_resource_pool> 14
              server: <vcenter_server_ip> 15

1
클러스터의 시크릿 이름을 지정합니다. 이 값은 변경하지 마십시오.
2
컨트롤 플레인 시스템의 VM 디스크 크기를 지정합니다.
3
클라우드 공급자 플랫폼 유형을 지정합니다. 이 값은 변경하지 마십시오.
4
컨트롤 플레인 시스템에 할당된 메모리를 지정합니다.
5
컨트롤 플레인이 배포되는 네트워크를 지정합니다.
참고

클러스터가 실패 도메인을 사용하도록 구성된 경우 이 매개변수는 실패 도메인에 구성됩니다. 장애 도메인을 사용할 때 공급자 사양에 이 값을 지정하면 Control Plane Machine Set Operator가 이를 무시합니다.

6
컨트롤 플레인 시스템에 할당된 CPU 수를 지정합니다.
7
각 컨트롤 플레인 CPU의 코어 수를 지정합니다.
8
사용할 vSphere VM 템플릿을 지정합니다(예: user-5ddjd-rhcos ).
참고

클러스터가 실패 도메인을 사용하도록 구성된 경우 이 매개변수는 실패 도메인에 구성됩니다. 장애 도메인을 사용할 때 공급자 사양에 이 값을 지정하면 Control Plane Machine Set Operator가 이를 무시합니다.

9
컨트롤 플레인 사용자 데이터 시크릿을 지정합니다. 이 값은 변경하지 마십시오.
10
컨트롤 플레인의 작업 공간 세부 정보를 지정합니다.
참고

클러스터가 장애 도메인을 사용하도록 구성된 경우 이러한 매개변수는 실패 도메인에 구성됩니다. 장애 도메인을 사용할 때 공급자 사양에 이러한 값을 지정하면 Control Plane Machine Set Operator가 해당 값을 무시합니다.

11
컨트롤 플레인의 vCenter 데이터 센터를 지정합니다.
12
컨트롤 플레인의 vCenter 데이터 저장소를 지정합니다.
13
vCenter의 vSphere VM 폴더 경로(예: /dc1/vm/user-inst-5ddjd )를 지정합니다.
14
VM의 vSphere 리소스 풀을 지정합니다.
15
vCenter 서버 IP 또는 정규화된 도메인 이름을 지정합니다.
12.5.6.1.2. VMware vSphere 장애 도메인 구성 샘플

VMware vSphere 인프라에서 클러스터 전체 인프라 CRD(Custom Resource Definition), infrastructure .config.openshift.io 에서는 클러스터의 실패 도메인을 정의합니다. ControlPlaneMachineSet CR(사용자 정의 리소스)의 providerSpec 은 컨트롤 플레인 머신 세트가 적절한 장애 도메인에 배포되도록 컨트롤 플레인 머신 세트가 사용하는 장애 도메인의 이름을 지정합니다. 장애 도메인은 컨트롤 플레인 머신 세트, vCenter 데이터 센터, vCenter 데이터 저장소 및 네트워크로 구성된 인프라 리소스입니다.

장애 도메인 리소스를 사용하면 컨트롤 플레인 머신 세트를 사용하여 별도의 클러스터 또는 데이터 센터에 컨트롤 플레인 시스템을 배포할 수 있습니다. 컨트롤 플레인 머신 세트도 정의된 장애 도메인에서 컨트롤 플레인 시스템의 균형을 유지하여 인프라에 내결함성 기능을 제공합니다.

참고

ControlPlaneMachineSet CR에서 ProviderSpec 구성을 수정하면 컨트롤 플레인 머신 세트는 기본 인프라 및 각 장애 도메인 인프라에 배포된 모든 컨트롤 플레인 시스템을 업데이트합니다.

VMware vSphere 장애 도메인 값 샘플

apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
  name: cluster
  namespace: openshift-machine-api
spec:
# ...
  template:
# ...
    machines_v1beta1_machine_openshift_io:
      failureDomains: 1
        platform: VSphere
        vsphere: 2
        - name: <failure_domain_name1>
        - name: <failure_domain_name2>
# ...

1
OpenShift Container Platform 클러스터 노드의 vCenter 위치를 지정합니다.
2
컨트롤 플레인 머신 세트의 이름으로 실패 도메인을 지정합니다.
중요

이 섹션의 각 name 필드 값은 클러스터 전체 인프라 CRD의 failureDomains.name 필드 값과 일치해야 합니다. 다음 명령을 실행하여 failureDomains.name 필드의 값을 찾을 수 있습니다.

$ oc get infrastructure cluster -o=jsonpath={.spec.platformSpec.vsphere.failureDomains[0].name}

name 필드는 ControlPlaneMachineSet CR에 지정할 수 있는 유일한 장애 도메인 필드입니다.

각 장애 도메인의 리소스를 정의하는 클러스터 전체 인프라 CRD의 예는 " vSphere에서 클러스터에 대한 여러 리전 및 영역 연결"을 참조하십시오.

12.5.6.2. 컨트롤 플레인 시스템의 VMware vSphere 기능 활성화

컨트롤 플레인 머신 세트에서 값을 업데이트하여 기능을 활성화할 수 있습니다.

12.5.6.2.1. 머신 세트를 사용하여 머신에 태그 추가

OpenShift Container Platform은 생성된 각 VM(가상 머신)에 클러스터별 태그를 추가합니다. 설치 프로그램은 이러한 태그를 사용하여 클러스터를 제거할 때 삭제할 VM을 선택합니다.

VM에 할당된 클러스터별 태그 외에도 프로비저닝하는 VM에 최대 10개의 vSphere 태그를 추가하도록 머신 세트를 구성할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 계정을 사용하여 vSphere에 설치된 OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
  • 클러스터와 연결된 VMware vCenter 콘솔에 액세스할 수 있습니다.
  • vCenter 콘솔에 태그가 생성되어 있습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  1. vCenter 콘솔을 사용하여 시스템에 추가할 태그의 태그 ID를 찾습니다.

    1. vCenter 콘솔에 로그인합니다.
    2. 메뉴에서 태그 및 사용자 지정 속성을 클릭합니다.
    3. 시스템에 추가할 태그를 선택합니다.
    4. 선택한 태그의 브라우저 URL을 사용하여 태그 ID를 식별합니다.

      태그 URL 예

      https://vcenter.example.com/ui/app/tags/tag/urn:vmomi:InventoryServiceTag:208e713c-cae3-4b7f-918e-4051ca7d1f97:GLOBAL/permissions

      태그 ID 예

      urn:vmomi:InventoryServiceTag:208e713c-cae3-4b7f-918e-4051ca7d1f97:GLOBAL

  2. 텍스트 편집기에서 기존 머신 세트의 YAML 파일을 열거나 새 머신을 생성합니다.
  3. providerSpec 필드 아래의 다음 행을 편집합니다.

    apiVersion: machine.openshift.io/v1
    kind: ControlPlaneMachineSet
    # ...
    spec:
      template:
        spec:
          providerSpec:
            value:
              tagIDs: 1
              - <tag_id_value> 2
    # ...
    1
    이 시스템이 프로비저닝한 머신에 추가할 최대 10개의 태그 목록을 지정합니다.
    2
    시스템에 추가할 태그 값을 지정합니다. For example, urn:vmomi:InventoryServiceTag:208e713c-cae3-4b7f-918e-4051ca7d1f97:GLOBAL.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.