6.8. 호스팅된 클러스터에서 노드 튜닝 구성
호스트 컨트롤 플레인은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
호스팅된 클러스터의 노드에 노드 수준 튜닝을 설정하려면 Node Tuning Operator를 사용할 수 있습니다. 호스팅된 컨트롤 플레인에서는 Tuned
오브젝트가 포함된 구성 맵을 생성하고 노드 풀에서 해당 구성 맵을 참조하여 노드 튜닝을 구성할 수 있습니다.
프로세스
유효한 tuned 매니페스트를 포함하는 구성 맵을 생성하고 노드 풀에서 매니페스트를 참조합니다. 다음 예제에서
Tuned
매니페스트는 값이 있는tuned-1-node-label
노드 라벨이 포함된 노드에서vm.dirty_ratio
를 55로 설정하는 프로필을 정의합니다.tuned-1.yaml
이라는 파일에 다음ConfigMap
매니페스트를 저장합니다.apiVersion: v1 kind: ConfigMap metadata: name: tuned-1 namespace: clusters data: tuning: | apiVersion: tuned.openshift.io/v1 kind: Tuned metadata: name: tuned-1 namespace: openshift-cluster-node-tuning-operator spec: profile: - data: | [main] summary=Custom OpenShift profile include=openshift-node [sysctl] vm.dirty_ratio="55" name: tuned-1-profile recommend: - priority: 20 profile: tuned-1-profile
참고Tuned 사양의
spec.recommend
섹션에 있는 항목에 레이블을 추가하지 않으면 노드 풀 기반 일치로 가정하므로spec.recommend
섹션의 우선 순위 프로필이 풀의 노드에 적용됩니다. Tuned.spec.recommend.match
섹션에서 레이블 값을 설정하여 더 세분화된 node-label-based 일치를 수행할 수 있지만 노드 풀의.spec.management.upgradeType
값을InPlace
로 설정하지 않으면 업그레이드 중에 노드 라벨이 유지되지 않습니다.관리 클러스터에
ConfigMap
오브젝트를 생성합니다.$ oc --kubeconfig="$MGMT_KUBECONFIG" create -f tuned-1.yaml
노드 풀을 편집하거나 생성하여 노드 풀의
spec.tuningConfig
필드에서ConfigMap
오브젝트를 참조합니다. 이 예에서는 2개의 노드가 포함된nodepool-1
이라는NodePool
만 있다고 가정합니다.apiVersion: hypershift.openshift.io/v1alpha1 kind: NodePool metadata: ... name: nodepool-1 namespace: clusters ... spec: ... tuningConfig: - name: tuned-1 status: ...
참고여러 노드 풀에서 동일한 구성 맵을 참조할 수 있습니다. 호스트 컨트롤 플레인에서 Node Tuning Operator는 노드 풀 이름과 네임스페이스의 해시를 구분하기 위해 Tuned CR의 이름에 추가합니다. 이 경우 동일한 호스팅 클러스터의 Tuned CR에서 동일한 이름의 TuneD 프로필을 여러 개 생성하지 마십시오.
검증
이제 Tuned
매니페스트가 포함된 ConfigMap
오브젝트를 생성하고 NodePool
에서 참조했기 때문에 Node Tuning Operator는 Tuned
오브젝트를 호스트 클러스터에 동기화합니다. 어떤 Tuned
오브젝트가 정의되고 각 노드에 적용되는 TuneD 프로필을 확인할 수 있습니다.
호스팅 클러스터의
Tuned
오브젝트를 나열합니다.$ oc --kubeconfig="$HC_KUBECONFIG" get tuned.tuned.openshift.io -n openshift-cluster-node-tuning-operator
출력 예
NAME AGE default 7m36s rendered 7m36s tuned-1 65s
호스팅된 클러스터의
Profile
오브젝트를 나열합니다.$ oc --kubeconfig="$HC_KUBECONFIG" get profile.tuned.openshift.io -n openshift-cluster-node-tuning-operator
출력 예
NAME TUNED APPLIED DEGRADED AGE nodepool-1-worker-1 tuned-1-profile True False 7m43s nodepool-1-worker-2 tuned-1-profile True False 7m14s
참고사용자 정의 프로필이 생성되지 않으면
openshift-node
프로필이 기본적으로 적용됩니다.튜닝이 올바르게 적용되었는지 확인하려면 노드에서 디버그 쉘을 시작하고 sysctl 값을 확인합니다.
$ oc --kubeconfig="$HC_KUBECONFIG" debug node/nodepool-1-worker-1 -- chroot /host sysctl vm.dirty_ratio
출력 예
vm.dirty_ratio = 55