6.9. 커널 부팅 매개변수를 설정하여 호스팅 클러스터의 고급 노드 튜닝
호스트 컨트롤 플레인은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
커널 부팅 매개변수를 설정해야 하는 호스팅 컨트롤 플레인의 고급 튜닝을 위해 Node Tuning Operator를 사용할 수도 있습니다. 다음 예제에서는 대규모 페이지가 예약된 노드 풀을 생성하는 방법을 보여줍니다.
프로세스
크기가 2MB인 10개의 대규모 페이지를 생성하기 위한
Tuned
오브젝트 매니페스트가 포함된ConfigMap
오브젝트를 생성합니다.tuned-hugepages.yaml
이라는 파일에 이ConfigMap
매니페스트를 저장합니다.apiVersion: v1 kind: ConfigMap metadata: name: tuned-hugepages namespace: clusters data: tuning: | apiVersion: tuned.openshift.io/v1 kind: Tuned metadata: name: hugepages namespace: openshift-cluster-node-tuning-operator spec: profile: - data: | [main] summary=Boot time configuration for hugepages include=openshift-node [bootloader] cmdline_openshift_node_hugepages=hugepagesz=2M hugepages=50 name: openshift-node-hugepages recommend: - priority: 20 profile: openshift-node-hugepages
참고.spec.recommend.match
필드는 의도적으로 비어 있습니다. 이 경우 이Tuned
오브젝트는 이ConfigMap
오브젝트가 참조되는 노드 풀의 모든 노드에 적용됩니다. 동일한 하드웨어 구성을 가진 노드를 동일한 노드 풀로 그룹화합니다. 그렇지 않으면 TuneD 피연산자가 동일한 노드 풀을 공유하는 두 개 이상의 노드에 대해 충돌하는 커널 매개변수를 계산할 수 있습니다.관리 클러스터에
ConfigMap
오브젝트를 생성합니다.$ oc --kubeconfig="$MGMT_KUBECONFIG" create -f tuned-hugepages.yaml
NodePool
매니페스트 YAML 파일을 생성하고NodePool
의 업그레이드 유형을 사용자 지정하고spec.tuningConfig
섹션에서 생성한ConfigMap
오브젝트를 참조합니다.NodePool
매니페스트를 생성하고hypershift
CLI를 사용하여hugepages-nodepool.yaml
이라는 파일에 저장합니다.NODEPOOL_NAME=hugepages-example INSTANCE_TYPE=m5.2xlarge NODEPOOL_REPLICAS=2 hypershift create nodepool aws \ --cluster-name $CLUSTER_NAME \ --name $NODEPOOL_NAME \ --node-count $NODEPOOL_REPLICAS \ --instance-type $INSTANCE_TYPE \ --render > hugepages-nodepool.yaml
hugepages-nodepool.yaml
파일에서.spec.management.upgradeType
을InPlace
.Place.spec.tuningConfig
로 설정하고 생성한tuned-hugepages
ConfigMap
오브젝트를 참조하도록 .spec.tuningConfig를 설정합니다.apiVersion: hypershift.openshift.io/v1alpha1 kind: NodePool metadata: name: hugepages-nodepool namespace: clusters ... spec: management: ... upgradeType: InPlace ... tuningConfig: - name: tuned-hugepages
참고새
MachineConfig
개체를 적용할 때 노드의 불필요한 재생성을 방지하려면.spec.management.upgradeType
을InPlace
로 설정합니다.Replace
업그레이드 유형을 사용하는 경우 TuneD 피연산자가 계산된 새 커널 부팅 매개변수를 적용하면 노드가 완전히 삭제되고 새 노드가 교체될 수 있습니다.관리 클러스터에
NodePool
을 생성합니다.$ oc --kubeconfig="$MGMT_KUBECONFIG" create -f hugepages-nodepool.yaml
검증
노드를 사용할 수 있게 되면 컨테이너화된 TuneD 데몬은 적용된 TuneD 프로필을 기반으로 필요한 커널 부팅 매개변수를 계산합니다. 노드가 준비되고 재부팅되면 생성된 MachineConfig
오브젝트를 적용한 후 TuneD 프로필이 적용되고 커널 부팅 매개변수가 설정되어 있는지 확인할 수 있습니다.
호스팅 클러스터의
Tuned
오브젝트를 나열합니다.$ oc --kubeconfig="$HC_KUBECONFIG" get tuned.tuned.openshift.io -n openshift-cluster-node-tuning-operator
출력 예
NAME AGE default 123m hugepages-8dfb1fed 1m23s rendered 123m
호스팅된 클러스터의
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 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
새
NodePool
의 두 작업자 노드에는openshift-node-hugepages
프로필이 적용됩니다.튜닝이 올바르게 적용되었는지 확인하려면 노드에서 디버그 쉘을 시작하고
/proc/cmdline
을 확인합니다.$ oc --kubeconfig="$HC_KUBECONFIG" debug node/nodepool-1-worker-1 -- chroot /host cat /proc/cmdline
출력 예
BOOT_IMAGE=(hd0,gpt3)/ostree/rhcos-... hugepagesz=2M hugepages=50
추가 리소스
호스트 컨트롤 플레인에 대한 자세한 내용은 Hosted Control Planes for Red Hat OpenShift Container Platform (기술 프리뷰) 을 참조하십시오.