2.2. AWS에서 컴퓨팅 머신 세트 생성

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

중요

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

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

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

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

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

이 샘플 YAML은 us-east-1a AWS(Amazon Web Services) 영역에서 실행되는 컴퓨팅 머신 세트를 정의하고 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
  name: <infrastructure_id>-<role>-<zone> 2
  namespace: openshift-machine-api
spec:
  replicas: 1
  selector:
    matchLabels:
      machine.openshift.io/cluster-api-cluster: <infrastructure_id> 3
      machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>-<zone> 4
  template:
    metadata:
      labels:
        machine.openshift.io/cluster-api-cluster: <infrastructure_id> 5
        machine.openshift.io/cluster-api-machine-role: <role> 6
        machine.openshift.io/cluster-api-machine-type: <role> 7
        machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>-<zone> 8
    spec:
      metadata:
        labels:
          node-role.kubernetes.io/<role>: "" 9
      providerSpec:
        value:
          ami:
            id: ami-046fe691f52a953f9 10
          apiVersion: awsproviderconfig.openshift.io/v1beta1
          blockDevices:
            - ebs:
                iops: 0
                volumeSize: 120
                volumeType: gp2
          credentialsSecret:
            name: aws-cloud-credentials
          deviceIndex: 0
          iamInstanceProfile:
            id: <infrastructure_id>-worker-profile 11
          instanceType: m6i.large
          kind: AWSMachineProviderConfig
          placement:
            availabilityZone: <zone> 12
            region: <region> 13
          securityGroups:
            - filters:
                - name: tag:Name
                  values:
                    - <infrastructure_id>-worker-sg 14
          subnet:
            filters:
              - name: tag:Name
                values:
                  - <infrastructure_id>-private-<zone> 15
          tags:
            - name: kubernetes.io/cluster/<infrastructure_id> 16
              value: owned
            - name: <custom_tag_name> 17
              value: <custom_tag_value> 18
          userDataSecret:
            name: worker-user-data
1 3 5 11 14 16
클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID를 지정합니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
2 4 8
인프라 ID, 역할 노드 레이블 및 영역을 지정합니다.
6 7 9
추가할 역할 노드 레이블을 지정합니다.
10
OpenShift Container Platform 노드의 AWS 영역에 유효한 RHCOS(Red Hat Enterprise Linux CoreOS) Amazon 머신 이미지(AMI)를 지정합니다. AWS Marketplace 이미지를 사용하려면 AWS Marketplace에서 OpenShift Container Platform 서브스크립션을 완료해야 리전의 AMI ID를 가져와야 합니다.
$ oc -n openshift-machine-api \
    -o jsonpath='{.spec.template.spec.providerSpec.value.ami.id}{"\n"}' \
    get machineset/<infrastructure_id>-<role>-<zone>
17 18
선택 사항: 클러스터의 사용자 정의 태그 데이터를 지정합니다. 예를 들어 이메일 :admin-email@example.com의 name:value 쌍을 지정하여 관리자 연락처 이메일 주소를 추가할 수 있습니다.
참고

install-config.yml 파일에서 설치 중에 사용자 지정 태그를 지정할 수도 있습니다. install-config.yml 파일과 머신 세트에 동일한 이름 데이터가 있는 태그가 포함된 경우 머신 세트의 태그 값이 install-config.yml 파일의 태그 값보다 우선합니다.

12
영역을 지정합니다(예: us-east-1a ).
13
리전을 지정합니다(예: us-east-1).
15
인프라 ID 및 영역을 지정합니다.

2.2.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
  4. 다른 가용성 영역에 컴퓨팅 머신 세트가 필요한 경우 이 프로세스를 반복하여 더 많은 컴퓨팅 머신 세트를 생성합니다.

검증

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

    $ 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.2.3. Amazon EC2 인스턴스 메타데이터 서비스에 대한 머신 세트 옵션

머신 세트를 사용하여 특정 버전의 Amazon EC2 Instance Metadata Service(IMDS)를 사용하는 머신을 생성할 수 있습니다. 머신 세트는 IMDSv1 및 IMDSv2 또는 IMDSv2 사용을 필요로 하는 머신 모두를 사용할 수 있는 머신을 생성할 수 있습니다.

참고

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

기존 머신의 IMDS 구성을 변경하려면 해당 머신을 관리하는 머신 세트 YAML 파일을 편집합니다. 기본 IMDS 구성을 사용하여 새 컴퓨팅 머신을 배포하려면 적절한 값을 사용하여 컴퓨팅 머신 세트 YAML 파일을 생성합니다.

중요

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

2.2.3.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를 둘 다 사용하도록 허용하려면 매개 변수 값을 선택적으로 설정합니다. 값을 지정하지 않으면 IMDSv1 및 IMDSv2가 모두 허용됩니다.

2.2.4. 머신을 Dedicated 인스턴스로 배포하는 머신 세트

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

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

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

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

절차

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

    providerSpec:
      placement:
        tenancy: dedicated

2.2.5. 머신을 Spot 인스턴스로 배포하는 머신 세트

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

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

다음과 같은 이유로 Spot 인스턴스를 사용할 때 중단될 수 있습니다.

  • 인스턴스 가격이 최대 가격을 초과합니다.
  • Spot 인스턴스에 대한 수요가 증가합니다.
  • Spot 인스턴스의 공급이 감소합니다.

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

2.2.5.1. 컴퓨팅 머신 세트를 사용하여 Spot 인스턴스 생성

컴퓨팅 머신 세트 YAML 파일에 spotMarketOptions 를 추가하여 AWS에서 Spot 인스턴스를 시작할 수 있습니다.

절차

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

    providerSpec:
      value:
        spotMarketOptions: {}

    선택 옵션으로 spotMarketOptions.maxPrice 필드를 설정하여 Spot 인스턴스의 비용을 제한할 수 있습니다. 예를 들어 maxPrice: '2.50'을 설정할 수 있습니다.

    maxPrice가 설정된 경우 이 값은 시간당 최대 Spot 가격으로 사용됩니다. 이 값이 설정되지 않은 경우 기본적으로 최대 가격은 온 디맨드 인스턴스 가격까지 청구됩니다.

    참고

    기본적인 온 디맨드 가격을 maxPrice 값으로 사용하여 Spot 인스턴스의 최대 가격을 설정하지 않는 것이 좋습니다.

2.2.6. 기존 OpenShift Container Platform 클러스터에 GPU 노드 추가

기본 컴퓨팅 머신 세트 구성을 복사하고 수정하여 GPU 지원 머신 세트 및 AWS EC2 클라우드 공급자의 머신을 생성할 수 있습니다.

지원되는 인스턴스 유형에 대한 자세한 내용은 다음 NVIDIA 설명서를 참조하십시오.

절차

  1. 다음 명령을 실행하여 기존 노드, 시스템 및 머신 세트를 확인합니다. 각 노드는 특정 AWS 리전 및 OpenShift Container Platform 역할이 있는 머신 정의의 인스턴스입니다.

    $ oc get nodes

    출력 예

    NAME                                        STATUS   ROLES                  AGE     VERSION
    ip-10-0-52-50.us-east-2.compute.internal    Ready    worker                 3d17h   v1.25.4+86bd4ff
    ip-10-0-58-24.us-east-2.compute.internal    Ready    control-plane,master   3d17h   v1.25.4+86bd4ff
    ip-10-0-68-148.us-east-2.compute.internal   Ready    worker                 3d17h   v1.25.4+86bd4ff
    ip-10-0-68-68.us-east-2.compute.internal    Ready    control-plane,master   3d17h   v1.25.4+86bd4ff
    ip-10-0-72-170.us-east-2.compute.internal   Ready    control-plane,master   3d17h   v1.25.4+86bd4ff
    ip-10-0-74-50.us-east-2.compute.internal    Ready    worker                 3d17h   v1.25.4+86bd4ff

  2. 다음 명령을 실행하여 openshift-machine-api 네임스페이스에 있는 머신 및 머신 세트를 확인합니다. 각 컴퓨팅 머신 세트는 AWS 리전 내의 다른 가용성 영역과 연결되어 있습니다. 설치 프로그램은 가용 영역 전체에 컴퓨팅 시스템을 자동으로 로드합니다.

    $ oc get machinesets -n openshift-machine-api

    출력 예

    NAME                                        DESIRED   CURRENT   READY   AVAILABLE   AGE
    preserve-dsoc12r4-ktjfc-worker-us-east-2a   1         1         1       1           3d11h
    preserve-dsoc12r4-ktjfc-worker-us-east-2b   2         2         2       2           3d11h

  3. 다음 명령을 실행하여 openshift-machine-api 네임스페이스에 있는 시스템을 확인합니다. 현재 머신 세트당 하나의 컴퓨팅 머신만 있지만 특정 리전 및 영역에서 노드를 추가하도록 컴퓨팅 머신 세트를 확장할 수 있었습니다.

    $ oc get machines -n openshift-machine-api | grep worker

    출력 예

    preserve-dsoc12r4-ktjfc-worker-us-east-2a-dts8r      Running   m5.xlarge   us-east-2   us-east-2a   3d11h
    preserve-dsoc12r4-ktjfc-worker-us-east-2b-dkv7w      Running   m5.xlarge   us-east-2   us-east-2b   3d11h
    preserve-dsoc12r4-ktjfc-worker-us-east-2b-k58cw      Running   m5.xlarge   us-east-2   us-east-2b   3d11h

  4. 다음 명령을 실행하여 기존 컴퓨팅 MachineSet 정의 중 하나의 사본을 만들고 결과를 JSON 파일로 출력합니다. GPU 지원 컴퓨팅 머신 세트 정의의 기반이 됩니다.

    $ oc get machineset preserve-dsoc12r4-ktjfc-worker-us-east-2a -n openshift-machine-api -o json > <output_file.json>
  5. JSON 파일을 편집하고 새 MachineSet 정의를 다음과 같이 변경합니다.

    • workergpu 로 바꿉니다. 이는 새 머신 세트의 이름이 됩니다.
    • MachineSet 정의의 인스턴스 유형을 NVIDIA T4 GPU를 포함하는 g4dn 으로 변경합니다. AWS g4dn 인스턴스 유형에 대한 자세한 내용은 가속 컴퓨팅 을 참조하십시오.

      $ jq .spec.template.spec.providerSpec.value.instanceType preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a.json
      
      "g4dn.xlarge"

      < output_file.json > 파일은 preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a.json 으로 저장됩니다.

  6. preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a.json 에서 다음 필드를 업데이트합니다.

    • gpu 를 포함하는 이름의 .metadata.name.
    • 새로운 .metadata.name 과 일치하도록 .spec.selector.matchLabels["machine.openshift.io/cluster-api-machineset"].
    • 새로운 .metadata.name 과 일치하는 .spec.template.metadata.labels["machine.openshift.io/cluster-api-machineset"] 입니다.
    • .spec.template.spec.providerSpec.value.instanceType 에서 g4dn.xlarge.
  7. 변경 사항을 확인하려면 다음 명령을 실행하여 원래 컴퓨팅 정의와 새 GPU 지원 노드 정의를 수행합니다.

    $ oc -n openshift-machine-api get preserve-dsoc12r4-ktjfc-worker-us-east-2a -o json | diff preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a.json -

    출력 예

    10c10
    
    < "name": "preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a",
    ---
    > "name": "preserve-dsoc12r4-ktjfc-worker-us-east-2a",
    
    21c21
    
    < "machine.openshift.io/cluster-api-machineset": "preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a"
    ---
    > "machine.openshift.io/cluster-api-machineset": "preserve-dsoc12r4-ktjfc-worker-us-east-2a"
    
    31c31
    
    < "machine.openshift.io/cluster-api-machineset": "preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a"
    ---
    > "machine.openshift.io/cluster-api-machineset": "preserve-dsoc12r4-ktjfc-worker-us-east-2a"
    
    60c60
    
    < "instanceType": "g4dn.xlarge",
    ---
    > "instanceType": "m5.xlarge",

  8. 다음 명령을 실행하여 정의에서 GPU 지원 컴퓨팅 머신 세트를 생성합니다.

    $ oc create -f preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a.json

    출력 예

    machineset.machine.openshift.io/preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a created

검증

  1. 다음 명령을 실행하여 생성한 머신 세트를 확인합니다.

    $ oc -n openshift-machine-api get machinesets | grep gpu

    MachineSet 복제본 수가 1 로 설정되어 새 Machine 오브젝트가 자동으로 생성됩니다.

    출력 예

    preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a   1         1         1       1           4m21s

  2. 다음 명령을 실행하여 머신 세트에서 생성된 Machine 오브젝트를 표시합니다.

    $ oc -n openshift-machine-api get machines | grep gpu

    출력 예

    preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a    running    g4dn.xlarge   us-east-2   us-east-2a  4m36s

노드의 네임스페이스를 지정할 필요가 없습니다. 노드 정의는 클러스터 범위가 지정되었습니다.

2.2.7. Node Feature Discovery Operator 배포

GPU 지원 노드가 생성되면 예약할 수 있도록 GPU 지원 노드를 검색해야 합니다. 이렇게 하려면 NFD(Node Feature Discovery) Operator를 설치합니다. NFD Operator는 노드의 하드웨어 장치 기능을 식별합니다. OpenShift Container Platform에서 사용할 수 있도록 인프라 노드에서 하드웨어 리소스를 식별하고 카탈로그하는 일반적인 문제를 해결합니다.

절차

  1. OpenShift Container Platform 콘솔의 OperatorHub 에서 Node Feature Discovery Operator를 설치합니다.
  2. OperatorHub 에 NFD Operator를 설치한 후 설치된 Operator 목록에서 Node Feature Discovery 를 선택하고 인스턴스 생성 을 선택합니다. 이렇게 하면 openshift-nfd 네임스페이스에 각 컴퓨팅 노드에 대해 nfd-masternfd-worker Pod가 하나씩 설치됩니다.
  3. 다음 명령을 실행하여 Operator가 설치되어 실행되고 있는지 확인합니다.

    $ oc get pods -n openshift-nfd

    출력 예

    NAME                                       READY    STATUS     RESTARTS   AGE
    
    nfd-controller-manager-8646fcbb65-x5qgk    2/2      Running 7  (8h ago)   1d

  4. 콘솔에서 설치된 Oerator로 이동하여 Create Node Feature Discovery 를 선택합니다.
  5. 생성 을 선택하여 NFD 사용자 정의 리소스를 빌드합니다. 이렇게 하면 openshift-nfd 네임스페이스에 NFD Pod가 생성되어 OpenShift Container Platform 노드에서 하드웨어 리소스에 대해 폴링하고 카탈로그를 작성합니다.

검증

  1. 성공적으로 빌드한 후 다음 명령을 실행하여 NFD Pod가 각 노드에서 실행되고 있는지 확인합니다.

    $ oc get pods -n openshift-nfd

    출력 예

    NAME                                       READY   STATUS      RESTARTS        AGE
    nfd-controller-manager-8646fcbb65-x5qgk    2/2     Running     7 (8h ago)      12d
    nfd-master-769656c4cb-w9vrv                1/1     Running     0               12d
    nfd-worker-qjxb2                           1/1     Running     3 (3d14h ago)   12d
    nfd-worker-xtz9b                           1/1     Running     5 (3d14h ago)   12d

    NFD Operator는 공급 업체 PCI ID를 사용하여 노드에서 하드웨어를 식별합니다. NVIDIA는 PCI ID 10de 를 사용합니다.

  2. 다음 명령을 실행하여 NFD Operator에서 검색한 NVIDIA GPU를 확인합니다.

    $ oc describe node ip-10-0-132-138.us-east-2.compute.internal | egrep 'Roles|pci'

    출력 예

    Roles: worker
    
    feature.node.kubernetes.io/pci-1013.present=true
    
    feature.node.kubernetes.io/pci-10de.present=true
    
    feature.node.kubernetes.io/pci-1d0f.present=true

    10de 는 GPU 지원 노드의 노드 기능 목록에 표시됩니다. 즉, NFD Operator가 GPU 지원 MachineSet에서 노드를 올바르게 식별했습니다.