5.9. 커널 부팅 매개변수를 설정하여 호스팅된 클러스터의 고급 노드 튜닝
커널 부팅 매개변수를 설정해야 하는 호스팅된 컨트롤 플레인의 고급 튜닝의 경우 Node Tuning Operator를 사용할 수도 있습니다. 다음 예제에서는 대규모 페이지가 예약된 노드 풀을 생성하는 방법을 보여줍니다.
프로세스
크기가 2MB인 대규모 페이지 10개를 생성하기 위한
Tuned
오브젝트 매니페스트가 포함된ConfigMap
오브젝트를 생성합니다. 이ConfigMap
매니페스트를tuned-hugepages.yaml
이라는 파일에 저장합니다.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="<management_cluster_kubeconfig>" create -f tuned-hugepages.yaml 1
- 1
- &
lt;management_cluster_kubeconfig&
gt;를 관리 클러스터kubeconfig
파일의 이름으로 바꿉니다.
NodePool
매니페스트 YAML 파일을 생성하고NodePool
의 업그레이드 유형을 사용자 지정하고spec.tuningConfig
섹션에서 생성한ConfigMap
오브젝트를 참조합니다.NodePool
매니페스트를 생성하고hcp
CLI를 사용하여hugepages-nodepool.yaml
이라는 파일에 저장합니다.$ hcp create nodepool aws \ --cluster-name <hosted_cluster_name> \1 --name <nodepool_name> \2 --node-count <nodepool_replicas> \3 --instance-type <instance_type> \4 --render > hugepages-nodepool.yaml
참고hcp create
명령의--render
플래그는 시크릿을 렌더링하지 않습니다. 보안을 렌더링하려면hcp create
명령에서--render
및--render-sensitive
플래그를 모두 사용해야 합니다.hugepages-nodepool.yaml
파일에서.spec.management.upgradeType
을InPlace
로 설정하고.spec.tuningConfig
를 설정하여 사용자가 생성한tuned-hugepages
ConfigMap
오브젝트를 참조합니다.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
로 설정합니다. 업그레이드교체
유형을 사용하는 경우 노드가 완전히 삭제되고 TuneD 피연산자가 계산된 새 커널 부팅 매개변수를 적용할 때 새 노드가 대체될 수 있습니다.관리 클러스터에서
NodePool
을 생성합니다.$ oc --kubeconfig="<management_cluster_kubeconfig>" create -f hugepages-nodepool.yaml
검증
노드를 사용할 수 있게 되면 컨테이너화된 TuneD 데몬은 적용된 TuneD 프로필을 기반으로 필요한 커널 부팅 매개변수를 계산합니다. 생성된 MachineConfig
오브젝트를 적용하기 위해 노드를 준비하고 재부팅한 후 TuneD 프로필이 적용되고 커널 부팅 매개변수가 설정되었는지 확인할 수 있습니다.
호스트 클러스터에서
Tuned
오브젝트를 나열합니다.$ oc --kubeconfig="<hosted_cluster_kubeconfig>" get tuned.tuned.openshift.io -n openshift-cluster-node-tuning-operator
출력 예
NAME AGE default 123m hugepages-8dfb1fed 1m23s rendered 123m
호스팅된 클러스터의
Profile
오브젝트를 나열합니다.$ oc --kubeconfig="<hosted_cluster_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="<hosted_cluster_kubeconfig>" debug node/nodepool-1-worker-1 -- chroot /host cat /proc/cmdline
출력 예
BOOT_IMAGE=(hd0,gpt3)/ostree/rhcos-... hugepagesz=2M hugepages=50
추가 리소스
호스팅된 컨트롤 플레인에 대한 자세한 내용은 호스팅 컨트롤 플레인 을 참조하십시오.