6.3.5. 노드에서 스왑 메모리 사용 활성화
노드에서 스왑 메모리 사용을 활성화하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
노드별로 OpenShift Container Platform 워크로드에 대한 스왑 메모리 사용을 활성화할 수 있습니다.
스왑 메모리를 활성화하면 워크로드 성능 및 리소스 부족 처리에 부정적인 영향을 미칠 수 있습니다. 컨트롤 플레인 노드에서 스왑 메모리를 활성화하지 마십시오.
스왑 메모리를 활성화하려면 kubeletconfig CR(사용자 정의 리소스)을 생성하여 swapbehavior 매개변수를 설정합니다. 제한되거나 무제한 스왑 메모리를 설정할 수 있습니다.
제한:
LimitedSwap값을 사용하여 스왑 메모리 워크로드가 사용할 수 있는 양을 제한합니다. OpenShift Container Platform에서 관리하지 않는 노드의 모든 워크로드는 여전히 스왑 메모리를 사용할 수 있습니다.LimitedSwap동작은 Linux 제어 그룹 버전 1 (cgroups v1) 또는 버전 2 (cgroup v 2):에서 노드가 실행 중인지에 따라 다릅니다.- cgroup v2 : OpenShift Container Platform 워크로드는 설정된 경우 Pod의 메모리 제한까지 메모리와 스왑의 조합을 사용할 수 있습니다.
- cgroup v1: OpenShift Container Platform 워크로드는 스왑 메모리를 사용할 수 없습니다.
-
무제한:
UnlimitedSwap값을 사용하여 워크로드가 시스템 제한까지 요청한 만큼 스왑 메모리를 사용할 수 있습니다.
kubelet은 이 구성없이 스왑 메모리가 없으면 시작되지 않으므로 노드에서 스왑 메모리를 활성화하기 전에 OpenShift Container Platform에서 스왑 메모리를 활성화해야 합니다. 노드에 스왑 메모리가 없는 경우 OpenShift Container Platform에서 스왑 메모리를 활성화하면 적용되지 않습니다.
사전 요구 사항
- 버전 4.10 이상을 사용하는 실행 중인 OpenShift Container Platform 클러스터가 있어야 합니다.
- 관리 권한이 있는 사용자로 클러스터에 로그인했습니다.
클러스터에서
TechPreviewNoUpgrade기능 세트를 활성화했습니다( 노드클러스터 작업 기능 게이트를 사용한 기능 활성화참조). 참고TechPreviewNoUpgrade기능 세트를 활성화하면 취소할 수 없으며 마이너 버전 업데이트가 허용되지 않습니다. 이러한 기능 세트는 프로덕션 클러스터에서는 권장되지 않습니다.-
노드에서 cgroup v2가 활성화된 경우
swapaccount=1커널 인수를 설정하여 노드에서 스왑 계정을 활성화해야 합니다.
프로세스
스왑 메모리를 허용하려는 머신 구성 풀에 사용자 지정 레이블을 적용합니다.
$ oc label machineconfigpool worker kubelet-swap=enabledCR(사용자 정의 리소스)을 생성하여 스왑 설정을 활성화하고 구성합니다.
apiVersion: machineconfiguration.openshift.io/v1 kind: KubeletConfig metadata: name: swap-config spec: machineConfigPoolSelector: matchLabels: kubelet-swap: enabled kubeletConfig: failSwapOn: false1 memorySwap: swapBehavior: LimitedSwap2 #...- 시스템에서 스왑 메모리를 활성화합니다.