2장. Machine API를 사용하여 컴퓨팅 머신 관리
2.1. AWS에서 컴퓨팅 머신 세트 생성 링크 복사링크가 클립보드에 복사되었습니다!
Amazon Web Services(AWS)의 OpenShift Container Platform 클러스터에서 특정 목적에 맞는 다른 컴퓨팅 머신 세트를 만들 수 있습니다. 예를 들어, 지원되는 워크로드를 새 머신으로 이동할 수 있도록 인프라 머신 세트 및 관련 머신을 작성할 수 있습니다.
머신 API가 작동하는 클러스터에서만 고급 머신 관리 및 스케일링 기능을 사용할 수 있습니다. 사용자 제공 인프라가 있는 클러스터는 Machine API를 사용하기 위해 추가적인 검증 및 구성이 필요합니다.
인프라 플랫폼 유형이 none
인 클러스터는 Machine API를 사용할 수 없습니다. 이러한 제한은 클러스터에 연결된 컴퓨팅 머신이 해당 기능을 지원하는 플랫폼에 설치된 경우에도 적용됩니다. 설치 후에는 이 매개변수를 변경할 수 없습니다.
클러스터의 플랫폼 유형을 보려면 다음 명령을 실행하세요.
oc get infrastructure cluster -o jsonpath='{.status.platform}'
$ oc get infrastructure cluster -o jsonpath='{.status.platform}'
2.1.1. AWS의 컴퓨팅 머신 세트 사용자 정의 리소스에 대한 샘플 YAML 링크 복사링크가 클립보드에 복사되었습니다!
샘플 YAML은 us-east-1a
Amazon Web Services(AWS) 로컬 영역에서 실행되는 컴퓨팅 머신 세트를 정의하고 node-role.kubernetes.io/<role>: ""
로 레이블이 지정된 노드를 생성합니다.
이 샘플에서 <infrastructure_id>
는 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로 하는 인프라 ID 레이블이며 <role>
은 추가할 노드 레이블입니다.
- 1
- 클러스터를 프로비저닝할 때 설정한 클러스터 ID를 기반으로하는 인프라 ID를 지정합니다. OpenShift CLI 패키지가 설치되어 있으면 다음 명령을 실행하여 인프라 ID를 얻을 수 있습니다.
oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 2
- 인프라 ID, 역할 노드 레이블, 영역을 지정합니다.
- 3
- 추가할 역할 노드 레이블을 지정합니다.
- 4
- OpenShift Container Platform 노드의 AWS 영역에 유효한 Red Hat Enterprise Linux CoreOS(RHCOS) Amazon Machine Image(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>
$ oc -n openshift-machine-api \ -o jsonpath='{.spec.template.spec.providerSpec.value.ami.id}{"\n"}' \ get machineset/<infrastructure_id>-<role>-<zone>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 5
- 영역 이름을 지정합니다(예:
us-east-1a)
. - 6
- 예를 들어
us-east-1과
같이 지역을 지정합니다. - 7
- 인프라 ID와 영역을 지정합니다.
- 8
- 선택 사항: 클러스터에 대한 사용자 정의 태그 데이터를 지정합니다. 예를 들어
Email:admin-email@example.com
의name:value
쌍을 지정하여 관리자 연락처 이메일 주소를 추가할 수 있습니다.참고사용자 정의 태그는
install-config.yml
파일에서 설치하는 동안 지정할 수도 있습니다.install-config.yml
파일과 머신 세트에 동일한name
데이터가 있는 태그가 포함된 경우 머신 세트의 태그 값이install-config.yml
파일의 태그 값보다 우선합니다.
2.1.2. 컴퓨팅 머신 세트 생성 링크 복사링크가 클립보드에 복사되었습니다!
설치 프로그램에서 생성한 컴퓨팅 머신 세트 외에도 고유한 머신 세트를 생성하여 선택한 특정 워크로드의 머신 컴퓨팅 리소스를 동적으로 관리할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 클러스터를 배포합니다.
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로oc
에 로그인합니다.
프로세스
컴퓨팅 머신 세트 CR(사용자 정의 리소스) 샘플이 포함된 새 YAML 파일을 만들고
<file_name>.yaml
이라는 이름을 지정합니다.<clusterID>
및<role>
매개 변수 값을 설정해야 합니다.선택 사항: 특정 필드에 설정할 값이 확실하지 않은 경우 클러스터에서 기존 컴퓨팅 머신 세트를 확인할 수 있습니다.
클러스터의 컴퓨팅 머신 세트를 나열하려면 다음 명령을 실행합니다.
oc get machinesets -n openshift-machine-api
$ oc get machinesets -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 컴퓨팅 머신 세트 CR(사용자 정의 리소스)의 값을 보려면 다음 명령을 실행합니다.
oc get machineset <machineset_name> \ -n openshift-machine-api -o yaml
$ oc get machineset <machineset_name> \ -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 명령을 실행하여
MachineSet
CR을 생성합니다.oc create -f <file_name>.yaml
$ oc create -f <file_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 다른 가용성 영역에 컴퓨팅 머신 세트가 필요한 경우 이 프로세스를 반복하여 더 많은 컴퓨팅 머신 세트를 만듭니다.
검증
다음 명령을 실행하여 컴퓨팅 머신 세트 목록을 확인합니다.
oc get machineset -n openshift-machine-api
$ oc get machineset -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 컴퓨팅 머신 세트를 사용할 수 있으면
DESIRED
및CURRENT
값이 일치합니다. 컴퓨팅 머신 세트를 사용할 수 없는 경우 몇 분 기다렸다가 명령을 다시 실행합니다.
2.1.3. 클러스터 자동 스케일러의 GPU 머신 세트 레이블 지정 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 자동 확장기가 GPU 지원 노드를 배포하는 데 사용할 수 있는 머신을 나타내기 위해 머신 세트 레이블을 사용할 수 있습니다.
사전 요구 사항
- 귀하의 클러스터는 클러스터 자동 확장기를 사용합니다.
프로세스
GPU 지원 노드를 배포하는 데 사용할 클러스터 자동 확장기에 대한 머신을 생성하려는 머신 세트에서
cluster-api/accelerator
레이블을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 영숫자 문자(
-
,_
, 또는.)
로 구성되고 영숫자 문자로 시작하고 끝나는 원하는 레이블을 지정하세요. 예를 들어, Nvidia T4 GPU를 나타내려면nvidia-t4를
사용하고, A10G GPU를 나타내려면nvidia-a10g를
사용할 수 있습니다.참고ClusterAutoscaler
CR의spec.resourceLimits.gpus.type
매개변수에 대해 이 레이블의 값을 지정해야 합니다. 자세한 내용은 "클러스터 자동 확장 리소스 정의"를 참조하세요.
2.1.4. 머신 세트를 사용하여 Elastic Fabric Adapter 인스턴스에 대한 배치 그룹에 머신 할당 링크 복사링크가 클립보드에 복사되었습니다!
기존 AWS 배치 그룹 내의 Elastic Fabric Adapter (EFA) 인스턴스에 머신을 배포하도록 머신 세트를 구성할 수 있습니다.
EFA 인스턴스에는 배치 그룹이 필요하지 않으며, EFA를 구성하는 것 외의 목적으로 배치 그룹을 사용할 수 있습니다. 이 예제에서는 두 가지를 모두 사용하여 지정된 배치 그룹 내의 머신에 대한 네트워크 성능을 개선할 수 있는 구성을 보여줍니다.
사전 요구 사항
AWS 콘솔에서 배치 그룹을 생성했습니다.
참고생성한 배치 그룹 유형에 대한 규칙과 제한 사항이 의도한 사용 사례와 호환되는지 확인하세요.
프로세스
- 텍스트 편집기에서 기존 머신 세트의 YAML 파일을 열거나 새 파일을 만듭니다.
providerSpec
필드 아래의 다음 줄을 편집하세요.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
AWS 콘솔에서 머신 세트가 생성한 머신을 찾아 머신 속성에서 다음을 확인하세요.
-
배치 그룹 필드에는 머신 세트의
placementGroupName
매개변수에 대해 지정한 값이 있습니다. -
파티션 번호 필드에는 머신 세트의
placementGroupPartition
매개변수에 대해 지정한 값이 있습니다. - 인터페이스 유형 필드는 EFA를 사용한다는 것을 나타냅니다.
-
배치 그룹 필드에는 머신 세트의
2.1.5. Amazon EC2 인스턴스 메타데이터 서비스에 대한 머신 세트 옵션 링크 복사링크가 클립보드에 복사되었습니다!
머신 세트를 사용하면 Amazon EC2 인스턴스 메타데이터 서비스(IMDS)의 특정 버전을 사용하는 머신을 만들 수 있습니다. 머신 세트는 IMDSv1과 IMDSv2를 모두 사용할 수 있는 머신이나 IMDSv2를 사용해야 하는 머신을 만들 수 있습니다.
OpenShift Container Platform 버전 4.6 이하로 생성된 AWS 클러스터에서 IMDSv2를 사용하려면 부트 이미지를 업데이트해야 합니다. 자세한 내용은 "업데이트된 부트 이미지"를 참조하세요.
원하는 IMDS 구성으로 새로운 컴퓨팅 머신을 배포하려면 적절한 값을 사용하여 컴퓨팅 머신 세트 YAML 파일을 만듭니다. 머신 세트가 확장되면 기존 머신 세트를 편집하여 원하는 IMDS 구성으로 새 머신을 만들 수도 있습니다.
IMDSv2가 필요한 머신을 생성하기 위해 머신 세트를 구성하기 전에 AWS 메타데이터 서비스와 상호 작용하는 모든 워크로드가 IMDSv2를 지원하는지 확인하세요.
2.1.5.1. 머신 세트를 사용하여 IMDS 구성 링크 복사링크가 클립보드에 복사되었습니다!
머신의 머신 세트 YAML 파일에서 metadataServiceOptions.authentication
값을 추가하거나 편집하여 IMDSv2를 사용해야 하는지 여부를 지정할 수 있습니다.
사전 요구 사항
- IMDSv2를 사용하려면 AWS 클러스터가 OpenShift Container Platform 버전 4.7 이상으로 생성되어야 합니다.
프로세스
providerSpec
필드 아래에 다음 줄을 추가하거나 편집하세요.providerSpec: value: metadataServiceOptions: authentication: Required
providerSpec: value: metadataServiceOptions: authentication: Required
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- IMDSv2를 요구하려면 매개변수 값을
필수
로 설정합니다. IMDSv1과 IMDSv2를 모두 사용하려면 매개변수 값을Optional
로 설정합니다. 값을 지정하지 않으면 IMDSv1과 IMDSv2가 모두 허용됩니다.
2.1.6. 머신을 Dedicated 인스턴스로 배포하는 머신 세트 링크 복사링크가 클립보드에 복사되었습니다!
AWS에서 실행 중인 머신 세트를 생성하여 머신을 Dedicated 인스턴스로 배포할 수 있습니다. Dedicated 인스턴스는 단일 고객 전용 하드웨어의 VPC(가상 프라이빗 클라우드)에서 실행됩니다. 이러한 Amazon EC2 인스턴스는 호스트 하드웨어 수준에서 물리적으로 분리됩니다. Dedicated 인스턴스의 분리는 인스턴스가 하나의 유료 계정에 연결된 다른 AWS 계정에 속하는 경우에도 발생합니다. 하지만 전용이 아닌 다른 인스턴스는 동일한 AWS 계정에 속하는 경우 Dedicated 인스턴스와 하드웨어를 공유할 수 있습니다.
공용 또는 전용 테넌시가 있는 인스턴스는 Machine API에서 지원됩니다. 공용 테넌시가 있는 인스턴스는 공유 하드웨어에서 실행됩니다. 공용 테넌시는 기본 테넌시입니다. 전용 테넌트가 있는 인스턴스는 단일 테넌트 하드웨어에서 실행됩니다.
2.1.6.1. 머신 세트를 사용하여 Dedicated 인스턴스 생성 링크 복사링크가 클립보드에 복사되었습니다!
Machine API 통합을 사용하여 Dedicated 인스턴스에서 지원하는 머신을 실행할 수 있습니다. 머신 세트 YAML 파일의 tenancy
필드를 설정하여 AWS에서 전용 인스턴스를 시작합니다.
프로세스
providerSpec
필드에서 전용 테넌트를 지정합니다.providerSpec: placement: tenancy: dedicated
providerSpec: placement: tenancy: dedicated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.1.7. 머신을 Spot 인스턴스로 배포하는 머신 세트 링크 복사링크가 클립보드에 복사되었습니다!
AWS에서 실행되는 컴퓨팅 머신 세트를 생성하고 머신을 보장되지 않은 스팟 인스턴스로 배포하면 비용을 절감할 수 있습니다. Spot 인스턴스는 사용되지 않는 AWS EC2 용량을 사용하며 온 디맨드 인스턴스보다 저렴합니다. 일괄 처리 또는 상태 비저장, 수평적으로 확장 가능한 워크로드와 같이 인터럽트를 허용할 수 있는 워크로드에 Spot 인스턴스를 사용할 수 있습니다.
AWS EC2는 언제든지 Spot 인스턴스를 종료할 수 있습니다. AWS는 중단이 발생하면 사용자에게 2 분 동안 경고 메세지를 보냅니다. OpenShift Container Platform은 AWS가 종료에 대한 경고를 발행할 때 영향을 받는 인스턴스에서 워크로드를 제거하기 시작합니다.
다음과 같은 이유로 Spot 인스턴스를 사용할 때 중단될 수 있습니다.
- 인스턴스 가격이 최대 가격을 초과합니다.
- Spot 인스턴스에 대한 수요가 증가합니다.
- Spot 인스턴스의 공급이 감소합니다.
AWS가 인스턴스를 종료하면 Spot 인스턴스 노드에서 실행중인 종료 프로세스가 머신 리소스를 삭제합니다. 컴퓨팅 머신 세트 복제본
수량을 충족하기 위해 컴퓨팅 머신 세트는 Spot 인스턴스를 요청하는 머신을 생성합니다.
2.1.7.1. 컴퓨팅 머신 세트를 사용하여 Spot 인스턴스 생성 링크 복사링크가 클립보드에 복사되었습니다!
AWS에서 Spot Instance를 시작하려면 컴퓨팅 머신 세트 YAML 파일에 spotMarketOptions를
추가하세요.
프로세스
providerSpec
필드 아래에 다음 행을 추가합니다.providerSpec: value: spotMarketOptions: {}
providerSpec: value: spotMarketOptions: {}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 옵션으로
spotMarketOptions.maxPrice
필드를 설정하여 Spot 인스턴스의 비용을 제한할 수 있습니다. 예를 들어maxPrice: '2.50'
을 설정할 수 있습니다.maxPrice
가 설정된 경우 이 값은 시간당 최대 Spot 가격으로 사용됩니다. 이 값이 설정되지 않은 경우 기본적으로 최대 가격은 온 디맨드 인스턴스 가격까지 청구됩니다.참고기본적인 온 디맨드 가격을
maxPrice
값으로 사용하여 Spot 인스턴스의 최대 가격을 설정하지 않는 것이 좋습니다.
2.1.8. 머신 세트를 사용하여 용량 예약 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 버전 4.19 이상에서는 ML을 위한 온디맨드 용량 예약 및 용량 블록을 포함하여 Amazon Web Services 클러스터의 용량 예약을 지원합니다.
사용자가 정의한 용량 요청의 매개변수와 일치하는 사용 가능한 리소스에 머신을 배포하도록 머신 세트를 구성할 수 있습니다. 이러한 매개변수는 예약하려는 인스턴스 유형, 지역 및 인스턴스 수를 지정합니다. 용량 예약이 용량 요청을 수용할 수 있는 경우 배포가 성공합니다.
이 AWS 제품에 대한 제한 사항 및 제안된 사용 사례를 포함한 자세한 내용은 AWS 설명서의 온디맨드 용량 예약 및 ML용 용량 블록을 참조하세요.
사전 요구 사항
-
cluster-admin
권한이 있는 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc
)를 설치합니다. - ML에 대한 주문형 용량 예약 또는 용량 블록을 구매했습니다. 자세한 내용은 AWS 설명서의 온디맨드 용량 예약 및 ML에 대한 용량 블록을 참조하세요.
프로세스
- 텍스트 편집기에서 기존 머신 세트의 YAML 파일을 열거나 새 파일을 만듭니다.
providerSpec
필드 아래의 다음 섹션을 편집하세요.샘플 구성
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
시스템 배포를 확인하려면 다음 명령을 실행하여 머신 세트에서 생성한 머신을 나열합니다.
oc get machines.machine.openshift.io \ -n openshift-machine-api \ -l machine.openshift.io/cluster-api-machineset=<machine_set_name>
$ oc get machines.machine.openshift.io \ -n openshift-machine-api \ -l machine.openshift.io/cluster-api-machineset=<machine_set_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
<machine_set_name>
은 컴퓨팅 머신 세트의 이름입니다.출력에서 나열된 시스템의 특성이 용량 예약의 매개변수와 일치하는지 확인합니다.
2.1.9. 기존 OpenShift Container Platform 클러스터에 GPU 노드 추가 링크 복사링크가 클립보드에 복사되었습니다!
기본 컴퓨팅 머신 세트 구성을 복사하고 수정하여 AWS EC2 클라우드 공급자를 위한 GPU 지원 머신 세트와 머신을 생성할 수 있습니다.
지원되는 인스턴스 유형에 대한 자세한 내용은 다음 NVIDIA 설명서를 참조하세요.
프로세스
다음 명령을 실행하여 기존 노드, 머신, 머신 세트를 확인하세요. 각 노드는 특정 AWS 지역과 OpenShift Container Platform 역할을 갖춘 머신 정의의 인스턴스입니다.
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
openshift-machine-api
네임스페이스에 있는 머신과 머신 세트를 확인하세요. 각 컴퓨팅 머신 세트는 AWS 지역 내의 다른 가용성 영역과 연결됩니다. 설치 프로그램은 가용성 영역 전반에 걸쳐 컴퓨팅 머신의 부하를 자동으로 분산합니다.oc get machinesets -n openshift-machine-api
$ oc get machinesets -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
openshift-machine-api
네임스페이스에 있는 머신을 확인하세요. 현재 각 머신 세트에는 하나의 컴퓨팅 머신만 있지만, 특정 지역 및 영역에 노드를 추가하도록 컴퓨팅 머신 세트를 확장할 수 있습니다.oc get machines -n openshift-machine-api | grep worker
$ oc get machines -n openshift-machine-api | grep worker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 기존 컴퓨트
MachineSet
정의 중 하나의 복사본을 만들고 결과를 JSON 파일에 출력합니다. 이는 GPU 지원 컴퓨팅 머신 세트 정의의 기초가 됩니다.oc get machineset preserve-dsoc12r4-ktjfc-worker-us-east-2a -n openshift-machine-api -o json > <output_file.json>
$ oc get machineset preserve-dsoc12r4-ktjfc-worker-us-east-2a -n openshift-machine-api -o json > <output_file.json>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow JSON 파일을 편집하고 새
MachineSet
정의에 다음과 같은 변경 사항을 적용합니다.-
Worker를
GPU
로 교체합니다. 이것이 새로운 기계 세트의 이름이 될 것입니다. 새로운
MachineSet
정의의 인스턴스 유형을 NVIDIA Tesla T4 GPU를 포함하는g4dn
으로 변경합니다. AWSg4dn
인스턴스 유형에 대한 자세한 내용은 가속 컴퓨팅을 참조하십시오.jq .spec.template.spec.providerSpec.value.instanceType preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a.json
$ jq .spec.template.spec.providerSpec.value.instanceType preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a.json "g4dn.xlarge"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <output_file.json>
파일은preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a.json
으로 저장됩니다.
-
preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a.json
에서 다음 필드를 업데이트합니다.-
.metadata.name을
gpu를
포함하는 이름으로 변경합니다. -
새로운
.metadata.name
과 일치하도록.spec.selector.matchLabels["machine.openshift.io/cluster-api-machineset"]을 설정합니다
. -
.spec.template.metadata.labels["machine.openshift.io/cluster-api-machineset"]을
새로운.metadata.name
과 일치시킵니다. -
.spec.template.spec.providerSpec.value.instanceType
을g4dn.xlarge
으로 설정합니다.
-
변경 사항을 확인하려면 다음 명령을 실행하여 원래 컴퓨팅 정의와 새 GPU 사용 노드 정의의
diff
를 수행합니다.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 -
$ 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 -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 정의에서 GPU 지원 컴퓨팅 머신 세트를 만듭니다.
oc create -f preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a.json
$ oc create -f preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
machineset.machine.openshift.io/preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a created
machineset.machine.openshift.io/preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 생성한 머신 세트를 확인하세요.
oc -n openshift-machine-api get machinesets | grep gpu
$ oc -n openshift-machine-api get machinesets | grep gpu
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MachineSet 복제본 수가
1
로 설정되어 새로운Machine
객체가 자동으로 생성됩니다.출력 예
preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a 1 1 1 1 4m21s
preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a 1 1 1 1 4m21s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 머신 세트가 생성한
머신
객체를 확인하세요.oc -n openshift-machine-api get machines | grep gpu
$ oc -n openshift-machine-api get machines | grep gpu
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a running g4dn.xlarge us-east-2 us-east-2a 4m36s
preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a running g4dn.xlarge us-east-2 us-east-2a 4m36s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
노드에 대한 네임스페이스를 지정할 필요는 없습니다. 노드 정의는 클러스터 범위입니다.
2.1.10. 노드 기능 검색 연산자 배포 링크 복사링크가 클립보드에 복사되었습니다!
GPU 지원 노드를 생성한 후에는 GPU 지원 노드를 검색하여 예약해야 합니다. 이렇게 하려면 NFD(Node Feature Discovery) Operator를 설치하세요. NFD 운영자는 노드의 하드웨어 장치 기능을 식별합니다. 이는 인프라 노드에서 하드웨어 리소스를 식별하고 카탈로그화하여 OpenShift Container Platform에서 사용할 수 있도록 하는 일반적인 문제를 해결합니다.
프로세스
- OpenShift Container Platform 콘솔에서 OperatorHub 의 Node Feature Discovery Operator를 설치합니다.
-
OperatorHub 에 NFD Operator를 설치한 후, 설치된 Operator 목록에서 Node Feature Discovery를 선택하고 인스턴스 생성을 선택합니다. 이렇게 하면 각 컴퓨팅 노드에 대해
nfd-master
및nfd-worker
, 하나의nfd-worker
Pod가openshift-nfd
네임스페이스에 설치됩니다. 다음 명령을 실행하여 Operator가 설치되고 실행 중인지 확인하세요.
oc get pods -n openshift-nfd
$ oc get pods -n openshift-nfd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE nfd-controller-manager-8646fcbb65-x5qgk 2/2 Running 7 (8h ago) 1d
NAME READY STATUS RESTARTS AGE nfd-controller-manager-8646fcbb65-x5qgk 2/2 Running 7 (8h ago) 1d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 콘솔에서 설치된 Oerator를 찾아 '노드 기능 검색 만들기'를 선택합니다.
-
생성 을 선택하여 NFD 사용자 정의 리소스를 빌드합니다. 이렇게 하면
openshift-nfd
네임스페이스에 NFD 포드가 생성되어 OpenShift Container Platform 노드에서 하드웨어 리소스를 폴링하고 카탈로그화합니다.
검증
빌드가 성공적으로 완료되면 다음 명령을 실행하여 각 노드에서 NFD 포드가 실행 중인지 확인하세요.
oc get pods -n openshift-nfd
$ oc get pods -n openshift-nfd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NFD 운영자는 공급업체 PCI ID를 사용하여 노드의 하드웨어를 식별합니다. NVIDIA는 PCI ID
10de를
사용합니다.다음 명령을 실행하여 NFD 운영자가 발견한 NVIDIA GPU를 확인하세요.
oc describe node ip-10-0-132-138.us-east-2.compute.internal | egrep 'Roles|pci'
$ oc describe node ip-10-0-132-138.us-east-2.compute.internal | egrep 'Roles|pci'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 10de는
GPU 지원 노드의 노드 기능 목록에 나타납니다. 이는 NFD 운영자가 GPU 지원 MachineSet에서 노드를 올바르게 식별했음을 의미합니다.