8.6. 노드에서 Linux cgroup 버전 구성
기본적으로 OpenShift Container Platform에서는 클러스터에서 Linux 제어 그룹 버전 1 (cgroup v1)을 사용합니다. 필요한 경우 node.config
오브젝트를 편집하여 Linux 제어 그룹 버전 2 (cgroup v2)로 전환할 수 있습니다. OpenShift Container Platform에서 cgroup v2를 활성화하면 클러스터의 모든 cgroup 버전 1 컨트롤러 및 계층이 비활성화됩니다.
cgroup v2는 Linux cgroup API의 현재 버전입니다. cgroup v2는 통합 계층 구조, 더 안전한 하위 트리 위임, pressure stayll Information 과 같은 새로운 기능, 향상된 리소스 관리 및 격리를 포함하여 cgroup v1에 비해 몇 가지 개선 사항을 제공합니다. 그러나 cgroup v2에는 cgroup v1과 다른 CPU, 메모리, I/O 관리 특성이 있습니다. 따라서 일부 워크로드는 cgroup v2를 실행하는 클러스터의 메모리 또는 CPU 사용량에 약간의 차이가 있을 수 있습니다.
- cgroup 파일 시스템에 의존하는 타사 모니터링 및 보안 에이전트를 실행하는 경우 에이전트를 cgroup v2를 지원하는 버전으로 업데이트합니다.
- cgroup v2를 구성하고 Pod 및 컨테이너 모니터링을 위한 독립 실행형 데몬 세트로 cAdvisor를 실행하는 경우 cAdvisor를 v0.43.0 이상으로 업데이트합니다.
Java 애플리케이션을 배포하는 경우 다음 패키지와 같이 cgroup v2를 완전히 지원하는 버전을 사용합니다.
- OpenJDK / HotSpot: jdk8u372, 11.0.16, 15 이상
- IBM Semeru Runtimes: jdk8u345-b01, 11.0.16.0, 17.0.4.0, 18.0.2.0 이상
- IBM SDK Java Technology Edition 버전(IBM Java): 8.0.7.15 이상
8.6.1. Linux cgroup 구성 링크 복사링크가 클립보드에 복사되었습니다!
node.config
오브젝트를 편집하여 Linux 제어 그룹 버전 1 (cgroup v1) 또는 Linux 제어 그룹 버전 2 (cgroup v2)를 활성화할 수 있습니다. 기본값은 cgroup v1입니다.
현재 cgroup v2에서는 CPU 부하 분산을 비활성화하지 않습니다. 따라서 cgroup v2가 활성화된 경우 성능 프로필에서 원하는 동작을 얻지 못할 수 있습니다. 성능 프로필을 사용하는 경우에는 cgroup v2를 활성화하는 것은 권장되지 않습니다.
사전 요구 사항
- 버전 4.12 이상을 사용하는 OpenShift Container Platform 클러스터가 실행 중입니다.
- 관리 권한이 있는 사용자로 클러스터에 로그인했습니다.
절차
노드에서 cgroup v2를 활성화합니다.
node.config
오브젝트를 편집합니다.oc edit nodes.config/cluster
$ oc edit nodes.config/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.cgroupMode
매개변수를 편집합니다.node.config
오브젝트의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- cgroup v1에 cgroup
v2
또는v1
을 활성화하려면 v2를 지정합니다.
검증
머신 구성에서 새 머신 구성이 추가되었는지 확인합니다.
oc get mc
$ oc get mc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 예상대로 새 머신 구성이 생성됩니다.
새 머신 구성에 새
kernelArguments
가 추가되었는지 확인합니다.oc describe mc <name>
$ oc describe mc <name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cgroup v1의 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cgroup v2 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드의 스케줄링이 비활성화되어 있는지 확인합니다. 이는 변경 사항이 적용 중임을 나타냅니다.
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드가
Ready
상태가 되면 해당 노드의 디버그 세션을 시작합니다.oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 디버그 쉘 내에서
/host
를 root 디렉터리로 설정합니다.chroot /host
sh-4.4# chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sys/fs/cgroup/cgroup2fs
또는sys/fs/cgroup/tmpfs
파일이 노드에 있는지 확인합니다.stat -c %T -f /sys/fs/cgroup
$ stat -c %T -f /sys/fs/cgroup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cgroup v1의 출력 예
tmp2fs
tmp2fs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cgroup v2 출력 예
cgroup2fs
cgroup2fs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow