5.2. OpenShift Virtualization 구성 요소를 위한 노드 지정
베어 메탈 노드의 VM(가상 머신)의 기본 예약이 적합합니다. 선택적으로 노드 배치 규칙을 구성하여 OpenShift Virtualization Operator, 워크로드 및 컨트롤러를 배포할 노드를 지정할 수 있습니다.
OpenShift Virtualization을 설치한 후 일부 구성 요소에 대한 노드 배치 규칙을 구성할 수 있지만 워크로드에 대한 노드 배치 규칙을 구성하려면 가상 머신이 존재할 수 없습니다.
5.2.1. OpenShift Virtualization 구성 요소의 노드 배치 규칙 정보
다음 작업에 노드 배치 규칙을 사용할 수 있습니다.
- 가상화 워크로드를 위한 노드에만 가상 머신을 배포합니다.
- 인프라 노드에만 Operator를 배포합니다.
- 워크로드 분리를 유지 관리합니다.
오브젝트에 따라, 다음 규칙 유형 중 하나 이상을 사용할 수 있습니다.
- nodeSelector
- 이 필드에서 지정하는 키-값 쌍으로 라벨이 지정된 노드에 Pod를 예약할 수 있습니다. 노드에는 나열된 모든 쌍과 정확히 일치하는 라벨이 있어야 합니다.
- 유사성
- 더 많은 표현 구문을 사용하여 노드와 Pod의 일치 규칙을 설정할 수 있습니다. 유사성을 사용하면 규칙 적용 방법을 보다 자세하게 설정할 수 있습니다. 예를 들어 규칙은 요구 사항이 아닌 기본 설정임을 지정할 수 있습니다. 규칙이 기본 설정인 경우 규칙이 충족되지 않으면 Pod가 계속 예약됩니다.
- 허용 오차
- 일치하는 테인트가 있는 노드에 Pod를 예약할 수 있습니다. 테인트가 노드에 적용되는 경우, 해당 노드는 테인트를 허용하는 Pod만 허용합니다.
5.2.2. 노드 배치 규칙 적용
					명령줄을 사용하여 Subscription,HyperConverged 또는 HostPathProvisioner 오브젝트를 편집하여 노드 배치 규칙을 적용할 수 있습니다.
				
사전 요구 사항
- 
							ocCLI 툴이 설치되어 있습니다.
- 클러스터 관리자 권한으로 로그인되어 있습니다.
프로세스
- 다음 명령을 실행하여 기본 편집기에서 오브젝트를 편집합니다. - oc edit <resource_type> <resource_name> -n {CNVNamespace}- $ oc edit <resource_type> <resource_name> -n {CNVNamespace}- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 파일을 저장하여 변경 사항을 적용합니다.
5.2.3. 노드 배치 규칙 예
					Subscription,HyperConverged 또는 HostPathProvisioner 오브젝트를 편집하여 OpenShift Virtualization 구성 요소에 대한 노드 배치 규칙을 지정할 수 있습니다.
				
5.2.3.1. 서브스크립션 오브젝트 노드 배치 규칙 예
						OLM이 OpenShift Virtualization Operator를 배포하는 노드를 지정하려면, OpenShift Virtualization 설치 중에 서브스크립션 오브젝트를 편집합니다.
					
						현재는 웹 콘솔을 사용하여 서브스크립션 오브젝트에 대한 노드 배치 규칙을 구성할 수 없습니다.
					
						Subscription 오브젝트는 유사성 노드 pplacement 규칙을 지원하지 않습니다.
					
nodeSelector 규칙이 있는 Subscription 오브젝트의 예
- 1
- OLM은example.io/example-infra-key = example-infra-value레이블이 지정된 노드에 OpenShift Virtualization Operator를 배포합니다.
허용 오차 규칙이 있는 Subscription 오브젝트의 예
- 1
- OLM은key = virtualization:NoSchedule테인트에 레이블이 지정된 노드에 OpenShift Virtualization Operator를 배포합니다. 허용 오차가 일치하는 Pod만 이러한 노드에 예약됩니다.
5.2.3.2. HyperConverged 오브젝트 노드 배치 규칙 예
						OpenShift Virtualization이 구성 요소를 배포하는 노드를 지정하려면 OpenShift Virtualization을 설치하는 동안 생성한 HyperConverged CR(사용자 정의 리소스) 파일에서 nodePlacement 오브젝트를 편집할 수 있습니다.
					
nodeSelector 규칙이 있는 HyperConverged 오브젝트의 예
유사성 규칙이 있는 HyperConverged 오브젝트의 예
허용 오차 규칙이 있는 HyperConverged 오브젝트의 예
- 1
- OpenShift Virtualization 구성 요소로 예약된 노드는key = virtualization:NoSchedule테인트로 레이블이 지정됩니다. 허용 오차가 일치하는 Pod만 예약된 노드에 예약됩니다.
5.2.3.3. HostPathProvisioner 오브젝트 노드 배치 규칙의 예
						직접 또는 웹 콘솔을 사용하여 HostPathProvisioner 오브젝트를 편집할 수 있습니다.
					
동일한 노드에 hostpath 프로비전 프로그램 및 OpenShift Virtualization 구성 요소를 예약해야 합니다. 예약하지 않으면 hostpath 프로비전 프로그램을 사용하는 가상화 Pod를 실행할 수 없습니다. 가상 머신을 실행할 수 없습니다.
HPP(Hostpath provisioner) 스토리지 클래스를 사용하여 VM(가상 머신)을 배포한 후 노드 선택기를 사용하여 동일한 노드에서 hostpath 프로비저너 Pod를 제거할 수 있습니다. 그러나 VM을 삭제하기 전에 먼저 특정 노드의 경우 해당 변경 사항을 되돌리고 Pod가 실행될 때까지 기다려야 합니다.
						hostpath 프로비전 프로그램을 설치할 때 생성하는 HostPathProvisioner 오브젝트의 spec.workload 필드에 nodeSelector,affinity 또는 tolerations 를 지정하여 노드 배치 규칙을 구성할 수 있습니다.
					
nodeSelector 규칙이 있는 HostPathProvisioner 오브젝트의 예
- 1
- 워크로드는example.io/example-workloads-key = example-workloads-value라벨이 지정된 노드에 배치됩니다.