6.9. 커널 부팅 매개변수를 설정하여 호스팅 클러스터의 고급 노드 튜닝
호스트 컨트롤 플레인은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
커널 부팅 매개변수를 설정해야 하는 호스팅 컨트롤 플레인의 고급 튜닝을 위해 Node Tuning Operator를 사용할 수도 있습니다. 다음 예제에서는 대규모 페이지가 예약된 노드 풀을 생성하는 방법을 보여줍니다.
절차
크기가 2MB인 10개의 대규모 페이지를 생성하기 위한
Tuned오브젝트 매니페스트가 포함된ConfigMap오브젝트를 생성합니다.tuned-hugepages.yaml이라는 파일에 이ConfigMap매니페스트를 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고.spec.recommend.match필드는 의도적으로 비어 있습니다. 이 경우 이Tuned오브젝트는 이ConfigMap오브젝트가 참조되는 노드 풀의 모든 노드에 적용됩니다. 동일한 하드웨어 구성을 가진 노드를 동일한 노드 풀로 그룹화합니다. 그렇지 않으면 TuneD 피연산자가 동일한 노드 풀을 공유하는 두 개 이상의 노드에 대해 충돌하는 커널 매개변수를 계산할 수 있습니다.관리 클러스터에
ConfigMap오브젝트를 생성합니다.oc --kubeconfig="<management_cluster_kubeconfig>" create -f tuned-hugepages.yaml
$ oc --kubeconfig="<management_cluster_kubeconfig>" create -f tuned-hugepages.yaml1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- &
lt;management_cluster_kubeconfig>를 관리 클러스터kubeconfig파일의 이름으로 바꿉니다.
NodePool매니페스트 YAML 파일을 생성하고NodePool의 업그레이드 유형을 사용자 지정하고spec.tuningConfig섹션에서 생성한ConfigMap오브젝트를 참조합니다.NodePool매니페스트를 생성하고hypershiftCLI를 사용하여hugepages-nodepool.yaml이라는 파일에 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고hcp create명령의--render플래그는 시크릿을 렌더링하지 않습니다. 보안을 렌더링하려면hcp create명령에서--render및--render-sensitive플래그를 모두 사용해야 합니다.hugepages-nodepool.yaml파일에서.spec.management.upgradeType을InPlace.Place.spec.tuningConfig로 설정하고 생성한tuned-hugepagesConfigMap오브젝트를 참조하도록 .spec.tuningConfig를 설정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고새
MachineConfig개체를 적용할 때 노드의 불필요한 재생성을 방지하려면.spec.management.upgradeType을InPlace로 설정합니다.Replace업그레이드 유형을 사용하는 경우 TuneD 피연산자가 계산된 새 커널 부팅 매개변수를 적용하면 노드가 완전히 삭제되고 새 노드가 교체될 수 있습니다.관리 클러스터에
NodePool을 생성합니다.oc --kubeconfig="<management_cluster_kubeconfig>" create -f hugepages-nodepool.yaml
$ oc --kubeconfig="<management_cluster_kubeconfig>" create -f hugepages-nodepool.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
노드를 사용할 수 있게 되면 컨테이너화된 TuneD 데몬은 적용된 TuneD 프로필을 기반으로 필요한 커널 부팅 매개변수를 계산합니다. 노드가 준비되고 재부팅되면 생성된 MachineConfig 오브젝트를 적용한 후 TuneD 프로필이 적용되고 커널 부팅 매개변수가 설정되어 있는지 확인할 수 있습니다.
호스팅 클러스터의
Tuned오브젝트를 나열합니다.oc --kubeconfig="<hosted_cluster_kubeconfig>" get tuned.tuned.openshift.io -n openshift-cluster-node-tuning-operator
$ oc --kubeconfig="<hosted_cluster_kubeconfig>" get tuned.tuned.openshift.io -n openshift-cluster-node-tuning-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME AGE default 123m hugepages-8dfb1fed 1m23s rendered 123m
NAME AGE default 123m hugepages-8dfb1fed 1m23s rendered 123mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 호스팅된 클러스터의
Profile오브젝트를 나열합니다.oc --kubeconfig="<hosted_cluster_kubeconfig>" get profile.tuned.openshift.io -n openshift-cluster-node-tuning-operator
$ oc --kubeconfig="<hosted_cluster_kubeconfig>" get profile.tuned.openshift.io -n openshift-cluster-node-tuning-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME TUNED APPLIED DEGRADED AGE nodepool-1-worker-1 openshift-node True False 132m nodepool-1-worker-2 openshift-node True False 131m hugepages-nodepool-worker-1 openshift-node-hugepages True False 4m8s hugepages-nodepool-worker-2 openshift-node-hugepages True False 3m57s
NAME TUNED APPLIED DEGRADED AGE nodepool-1-worker-1 openshift-node True False 132m nodepool-1-worker-2 openshift-node True False 131m hugepages-nodepool-worker-1 openshift-node-hugepages True False 4m8s hugepages-nodepool-worker-2 openshift-node-hugepages True False 3m57sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새
NodePool의 두 작업자 노드에는openshift-node-hugepages프로필이 적용됩니다.튜닝이 올바르게 적용되었는지 확인하려면 노드에서 디버그 쉘을 시작하고
/proc/cmdline을 확인합니다.oc --kubeconfig="<hosted_cluster_kubeconfig>" debug node/nodepool-1-worker-1 -- chroot /host cat /proc/cmdline
$ oc --kubeconfig="<hosted_cluster_kubeconfig>" debug node/nodepool-1-worker-1 -- chroot /host cat /proc/cmdlineCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
BOOT_IMAGE=(hd0,gpt3)/ostree/rhcos-... hugepagesz=2M hugepages=50
BOOT_IMAGE=(hd0,gpt3)/ostree/rhcos-... hugepagesz=2M hugepages=50Copy to Clipboard Copied! Toggle word wrap Toggle overflow