10.10. 커널 부팅 매개변수를 설정하여 호스팅된 클러스터에 대한 고급 노드 튜닝


호스팅된 제어 평면에서 보다 고급 튜닝을 수행하려면 커널 부팅 매개변수 설정이 필요하며, 이 경우 노드 튜닝 연산자를 사용할 수도 있습니다. 다음 예제에서는 방대한 페이지를 예약하여 노드 풀을 만드는 방법을 보여줍니다.

프로세스

  1. 크기가 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
    Copy to Clipboard Toggle word wrap
    참고

    .spec.recommend.match 필드는 의도적으로 비워두었습니다. 이 경우, 이 Tuned 객체는 이 ConfigMap 객체가 참조되는 노드 풀의 모든 노드에 적용됩니다. 동일한 하드웨어 구성을 가진 노드를 동일한 노드 풀로 그룹화합니다. 그렇지 않으면 TuneD 피연산자는 동일한 노드 풀을 공유하는 두 개 이상의 노드에 대해 충돌하는 커널 매개변수를 계산할 수 있습니다.

  2. 관리 클러스터에 ConfigMap 오브젝트를 생성합니다.

    $ oc --kubeconfig="<management_cluster_kubeconfig>" create -f tuned-hugepages.yaml 
    1
    Copy to Clipboard Toggle word wrap
    1
    <management_cluster_kubeconfig>를 관리 클러스터 kubeconfig 파일의 이름으로 바꾸세요.
  3. NodePool 매니페스트 YAML 파일을 만들고, NodePool 의 업그레이드 유형을 사용자 지정하고, spec.tuningConfig 섹션에서 만든 ConfigMap 객체를 참조합니다. hcp CLI를 사용하여 NodePool 매니페스트를 만들고 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
    Copy to Clipboard Toggle word wrap
    1
    <hosted_cluster_name>을 호스팅 클러스터의 이름으로 바꾸세요.
    2
    <nodepool_name>을 노드 풀의 이름으로 바꾸세요.
    3
    <nodepool_replicas>를 노드 풀 복제본 수(예: 2 )로 바꾸세요.
    4
    <instance_type>을 인스턴스 유형(예: m5.2xlarge )으로 바꾸세요.
    참고

    hcp create 명령의 --render 플래그는 비밀을 렌더링하지 않습니다. 비밀을 렌더링하려면 hcp create 명령에서 --render--render-sensitive 플래그를 모두 사용해야 합니다.

  4. 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
    Copy to Clipboard Toggle word wrap
    참고

    새로운 MachineConfig 객체를 적용할 때 불필요한 노드 재생성을 방지하려면 .spec.management.upgradeType을 InPlace 로 설정합니다. Replace 업그레이드 유형을 사용하면 노드가 완전히 삭제되고 TuneD 피연산자가 계산한 새 커널 부팅 매개변수를 적용할 때 새 노드로 기존 노드를 대체할 수 있습니다.

  5. 관리 클러스터에 NodePool을 생성합니다.

    $ oc --kubeconfig="<management_cluster_kubeconfig>" create -f hugepages-nodepool.yaml
    Copy to Clipboard Toggle word wrap

검증

노드를 사용할 수 있게 되면 컨테이너화된 TuneD 데몬은 적용된 TuneD 프로필을 기반으로 필요한 커널 부팅 매개변수를 계산합니다. 노드가 준비되고 생성된 MachineConfig 객체를 적용하기 위해 한 번 재부팅하면 TuneD 프로필이 적용되었고 커널 부팅 매개변수가 설정되었는지 확인할 수 있습니다.

  1. 호스트 클러스터에서 Tuned 오브젝트를 나열합니다.

    $ oc --kubeconfig="<hosted_cluster_kubeconfig>" get tuned.tuned.openshift.io \
      -n openshift-cluster-node-tuning-operator
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                 AGE
    default              123m
    hugepages-8dfb1fed   1m23s
    rendered             123m
    Copy to Clipboard Toggle word wrap

  2. 호스팅된 클러스터의 Profile 오브젝트를 나열합니다.

    $ oc --kubeconfig="<hosted_cluster_kubeconfig>" get profile.tuned.openshift.io \
      -n openshift-cluster-node-tuning-operator
    Copy to Clipboard Toggle word wrap

    출력 예

    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
    Copy to Clipboard Toggle word wrap

    NodePool 의 작업자 노드 모두 openshift-node-hugepages 프로필이 적용됩니다.

  3. 튜닝이 올바르게 적용되었는지 확인하려면 노드에서 디버그 쉘을 시작하고 /proc/cmdline 을 확인합니다.

    $ oc --kubeconfig="<hosted_cluster_kubeconfig>" \
      debug node/nodepool-1-worker-1 -- chroot /host cat /proc/cmdline
    Copy to Clipboard Toggle word wrap

    출력 예

    BOOT_IMAGE=(hd0,gpt3)/ostree/rhcos-... hugepagesz=2M hugepages=50
    Copy to Clipboard Toggle word wrap

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat