2.2.7. 기존 OpenShift Container Platform 클러스터에 GPU 노드 추가
기본 컴퓨팅 머신 세트 구성을 복사하고 수정하여 GPU 지원 머신 세트 및 AWS EC2 클라우드 공급자의 머신을 생성할 수 있습니다.
지원되는 인스턴스 유형에 대한 자세한 내용은 다음 NVIDIA 설명서를 참조하십시오.
절차
다음 명령을 실행하여 기존 노드, 시스템 및 머신 세트를 확인합니다. 각 노드는 특정 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.26.0 ip-10-0-58-24.us-east-2.compute.internal Ready control-plane,master 3d17h v1.26.0 ip-10-0-68-148.us-east-2.compute.internal Ready worker 3d17h v1.26.0 ip-10-0-68-68.us-east-2.compute.internal Ready control-plane,master 3d17h v1.26.0 ip-10-0-72-170.us-east-2.compute.internal Ready control-plane,master 3d17h v1.26.0 ip-10-0-74-50.us-east-2.compute.internal Ready worker 3d17h v1.26.0다음 명령을 실행하여
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다음 명령을 실행하여
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다음 명령을 실행하여 기존 컴퓨팅
MachineSet정의 중 하나의 사본을 만들고 결과를 JSON 파일로 출력합니다. GPU 지원 컴퓨팅 머신 세트 정의의 기반이 됩니다.$ oc get machineset preserve-dsoc12r4-ktjfc-worker-us-east-2a -n openshift-machine-api -o json > <output_file.json>JSON 파일을 편집하고 새
MachineSet정의를 다음과 같이 변경합니다.-
worker를gpu로 바꿉니다. 이는 새 머신 세트의 이름이 됩니다. 새
MachineSet정의의 인스턴스 유형을 NVIDIA T4 GPU를 포함하는g4dn으로 변경합니다. AWSg4dn인스턴스 유형에 대한 자세한 내용은 가속 컴퓨팅 을 참조하십시오.$ 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으로 저장됩니다.
-
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.
-
변경 사항을 확인하려면 다음 명령을 실행하여 원래 컴퓨팅 정의와 새 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",다음 명령을 실행하여 정의에서 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
검증
다음 명령을 실행하여 생성한 머신 세트를 확인합니다.
$ oc -n openshift-machine-api get machinesets | grep gpuMachineSet 복제본 수가
1로 설정되어 새Machine오브젝트가 자동으로 생성됩니다.출력 예
preserve-dsoc12r4-ktjfc-worker-gpu-us-east-2a 1 1 1 1 4m21s다음 명령을 실행하여 머신 세트에서 생성된
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
노드의 네임스페이스를 지정할 필요가 없습니다. 노드 정의는 클러스터 범위가 지정되었습니다.