7.13. 더 높은 VM 워크로드 밀도 구성
VM(가상 머신) 수를 늘리려면 RAM(메모리) 양을 과다 할당하여 클러스터에서 더 높은 VM 워크로드 밀도를 구성할 수 있습니다.
높은 워크로드 밀도를 구성하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
다음 워크로드는 특히 높은 워크로드 밀도에 적합합니다.
- 많은 유사한 워크로드
- 사용되지 않는 워크로드
오버 커밋된 메모리는 워크로드 밀도가 높을 수 있지만 고도로 사용되는 시스템의 워크로드 성능을 저하시킬 수 있습니다.
7.13.1. wasp-agent 를 사용하여 더 높은 VM 워크로드 밀도 구성 링크 복사링크가 클립보드에 복사되었습니다!
wasp-agent
구성 요소를 사용하면 OpenShift Container Platform 클러스터에서 스왑 리소스를 VM(가상 머신) 워크로드에 할당할 수 있습니다. 스왑 사용은 작업자 노드에서만 지원됩니다.
스왑 리소스는 Burstable
Quality of Service(QoS) 클래스의 VM(가상 머신 워크로드)에만 할당할 수 있습니다. 보장된
QoS 클래스의 VM Pod 및 VM에 속하지 않는 QoS 클래스의 Pod는 리소스를 스왑할 수 없습니다.
QoS 클래스에 대한 설명은 Pod용 서비스 품질 구성 (Kubernetes 문서)을 참조하십시오.
사전 요구 사항
-
oc
도구를 사용할 수 있습니다. - cluster-admin 역할을 사용하여 클러스터에 로그인되어 있습니다.
- 메모리 초과 커밋 비율이 정의됩니다.
- 노드는 작업자 풀에 속합니다.
프로세스
다음 명령을 입력하여 권한 있는 서비스 계정을 생성합니다.
oc adm new-project wasp
$ oc adm new-project wasp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create sa -n wasp wasp
$ oc create sa -n wasp wasp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc adm policy add-cluster-role-to-user cluster-admin -n wasp -z wasp
$ oc adm policy add-cluster-role-to-user cluster-admin -n wasp -z wasp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc adm policy add-scc-to-user -n wasp privileged -z wasp
$ oc adm policy add-scc-to-user -n wasp privileged -z wasp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고wasp-agent
구성 요소는 OCI 후크를 배포하여 노드 수준에서 컨테이너의 스왑 사용을 활성화합니다. 낮은 수준의 특성을 사용하려면DaemonSet
오브젝트에 권한을 부여해야 합니다.deploy
wasp-agent
:다음과 같이
DaemonSet
오브젝트를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
RH 포털에서 최신 URL을 가져오고 생성된
DaemonSet
오브젝트에 URL을 입력합니다.
스왑을 허용하도록
kubelet
서비스를 구성합니다.예제에 표시된 대로
KubeletConfiguration
파일을 생성합니다.KubeletConfiguration
파일 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터가 기존
KubeletConfiguration
파일을 이미 사용하고 있는 경우spec
섹션에 다음을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행합니다.
$ oc wait mcp worker --for condition=Updated=True
$ oc wait mcp worker --for condition=Updated=True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음과 같이
MachineConfig
오브젝트를 생성하여 스왑을 프로비저닝합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow best-case 시나리오를 위한 스왑 공간이 충분한 경우 오버 커밋된 RAM으로 프로비저닝된 스왑 공간이 있는지 확인하십시오. 다음 공식을 사용하여 노드에서 프로비저닝할 스왑 공간의 양을 계산합니다.
NODE_SWAP_SPACE = NODE_RAM * (MEMORY_OVER_COMMIT_PERCENT / 100% - 1)
NODE_SWAP_SPACE = NODE_RAM * (MEMORY_OVER_COMMIT_PERCENT / 100% - 1)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제:
NODE_SWAP_SPACE = 16 GB * (150% / 100% - 1) = 16 GB * (1.5 - 1) = 16 GB * (0.5) = 8 GB
NODE_SWAP_SPACE = 16 GB * (150% / 100% - 1) = 16 GB * (1.5 - 1) = 16 GB * (0.5) = 8 GB
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같이 경고 규칙을 배포합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예와 같이 OpenShift Container Platform 웹 콘솔을 사용하거나 HyperConverged CR(사용자 정의 리소스) 파일을 편집하여 메모리 과다 할당을 사용하도록 OpenShift Virtualization을 구성합니다.
예제:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 클러스터의 컴퓨팅 노드에 모든 구성을 적용합니다.
oc patch --type=merge \ -f <../manifests/hco-set-memory-overcommit.yaml> \ --patch-file <../manifests/hco-set-memory-overcommit.yaml>
$ oc patch --type=merge \ -f <../manifests/hco-set-memory-overcommit.yaml> \ --patch-file <../manifests/hco-set-memory-overcommit.yaml>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고모든 구성을 적용한 후에는 모든
MachineConfigPool
롤아웃이 완료된 후에만 스왑 기능을 완전히 사용할 수 있습니다.
검증
wasp-agent
의 배포를 확인하려면 다음 명령을 실행합니다.oc rollout status ds wasp-agent -n wasp
$ oc rollout status ds wasp-agent -n wasp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 배포에 성공하면 다음 메시지가 표시됩니다.
daemon set "wasp-agent" successfully rolled out
daemon set "wasp-agent" successfully rolled out
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 스왑이 올바르게 프로비저닝되었는지 확인하려면 다음을 수행하십시오.
다음 명령을 실행합니다.
oc get nodes -l node-role.kubernetes.io/worker
$ oc get nodes -l node-role.kubernetes.io/worker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 제공된 목록에서 노드를 선택하고 다음 명령을 실행합니다.
oc debug node/<selected-node> -- free -m
$ oc debug node/<selected-node> -- free -m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 스왑이 올바르게 프로비저닝되면 0보다 큰 양이 표시되고 다음과 유사합니다.
Expand 합계
사용됨
무료
공유됨
buff/cache
사용 가능
mEM:
31846
23155
1044
6014
14483
8690
swap:
8191
2337
5854
다음 명령을 실행하여 OpenShift Virtualization 메모리 과다 할당 구성을 확인합니다.
oc get -n openshift-cnv HyperConverged kubevirt-hyperconverged -o jsonpath="{.spec.higherWorkloadDensity.memoryOvercommitPercentage}"
$ oc get -n openshift-cnv HyperConverged kubevirt-hyperconverged -o jsonpath="{.spec.higherWorkloadDensity.memoryOvercommitPercentage}" 150
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 반환된 값(예:
150
)은 이전에 구성한 값과 일치해야 합니다.