17장. 워크로드 파티셔닝


중요

워크로드 파티션은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

리소스가 제한된 환경에서는 워크로드 파티셔닝을 사용하여 OpenShift Container Platform 서비스, 클러스터 관리 워크로드 및 인프라 Pod를 분리하여 예약된 CPU 세트에서 실행할 수 있습니다.

클러스터 관리에 필요한 예약된 CPU의 최소 수는 4개의 CPU HT(Hyper-Threads)입니다. 워크로드 파티셔닝을 사용하면 클러스터 관리 Pod 세트와 클러스터 관리 워크로드 파티션에 포함하기 위한 일반적인 애드온 Operator 세트에 주석을 답니다. 이러한 Pod는 일반적으로 최소 크기 CPU 구성 내에서 작동합니다. 최소 클러스터 관리 Pod 세트 이외의 추가 Operator 또는 워크로드에 추가 CPU를 워크로드 파티션에 추가해야 합니다.

워크로드 파티셔닝은 표준 Kubernetes 스케줄링 기능을 사용하여 사용자 워크로드를 플랫폼 워크로드에서 격리합니다.

워크로드 파티셔닝에는 다음 변경이 필요합니다.

  1. install-config.yaml 파일에서 추가 필드 cpu>-<ingMode를 추가합니다.

    apiVersion: v1
    baseDomain: devcluster.openshift.com
    cpuPartitioningMode: AllNodes 1
    compute:
      - architecture: amd64
        hyperthreading: Enabled
        name: worker
        platform: {}
        replicas: 3
    controlPlane:
      architecture: amd64
      hyperthreading: Enabled
      name: master
      platform: {}
      replicas: 3
    1
    설치 시 CPU 파티셔닝을 위한 클러스터를 설정합니다. 기본값은 None 입니다.
    참고

    워크로드 파티션은 클러스터 설치 중에만 활성화할 수 있습니다. 워크로드 파티션 설치 후 비활성화할 수 없습니다.

  2. 성능 프로필에서 분리예약된 CPU를 지정합니다.

    권장되는 성능 프로파일 구성

    apiVersion: performance.openshift.io/v2
    kind: PerformanceProfile
    metadata:
      name: openshift-node-performance-profile
    spec:
      additionalKernelArgs:
      - "rcupdate.rcu_normal_after_boot=0"
      - "efi=runtime"
      - "module_blacklist=irdma"
      cpu:
        isolated: 2-51,54-103
        reserved: 0-1,52-53
      hugepages:
        defaultHugepagesSize: 1G
        pages:
          - count: 32
            size: 1G
            node: 0
      machineConfigPoolSelector:
        pools.operator.machineconfiguration.openshift.io/master: ""
      nodeSelector:
        node-role.kubernetes.io/master: ''
      numa:
        topologyPolicy: "restricted"
      realTimeKernel:
        enabled: true
      workloadHints:
        realTime: true
        highPowerConsumption: false
        perPodPowerManagement: false

    표 17.1. 단일 노드 OpenShift 클러스터에 대한 PerformanceProfile CR 옵션
    PerformanceProfile CR 필드설명

    metadata.name

    name 이 관련 GitOps ZTP CR(사용자 정의 리소스)에 설정된 다음 필드와 일치하는지 확인합니다.

    • TunedPerformancePatch.yaml에서 include=openshift-node-performance-${PerformanceProfile.metadata.name}
    • 이름: validatorCRs/informDuValidator.yaml의 50-performance-${PerformanceProfile.metadata.name}

    spec.additionalKernelArgs

    "EFI=runtime" 은 클러스터 호스트에 대해 UEFI 보안 부팅을 구성합니다.

    spec.cpu.isolated

    분리된 CPU를 설정합니다. 모든 하이퍼 스레딩 쌍이 일치하는지 확인합니다.

    중요

    예약 및 분리된 CPU 풀은 겹치지 않아야 하며 함께 사용 가능한 모든 코어에 걸쳐 있어야 합니다. 고려하지 않은 CPU 코어로 인해 시스템에서 정의되지 않은 동작이 발생합니다.

    spec.cpu.reserved

    예약된 CPU를 설정합니다. 워크로드 파티셔닝이 활성화되면 시스템 프로세스, 커널 스레드 및 시스템 컨테이너 스레드가 이러한 CPU로 제한됩니다. 분리되지 않은 모든 CPU는 예약해야 합니다.

    spec.hugepages.pages

    • 대규모 페이지 수 설정 (count)
    • 대규모 페이지 크기(크기)를 설정합니다.
    • nodehugepages 가 할당된 NUMA 노드로 설정합니다(노드)

    spec.realTimeKernel

    실시간 커널을 사용하려면 enabledtrue 로 설정합니다.

    spec.workloadHints

    workloadHints 를 사용하여 다른 워크로드 유형에 대한 최상위 플래그 세트를 정의합니다. 예제 구성은 짧은 대기 시간과 높은 성능을 위해 클러스터를 구성합니다.

워크로드 파티셔닝으로 플랫폼 pod의 확장된 management.workload.openshift.io/cores 리소스 유형을 도입합니다. kubelet은 해당 리소스 내에서 풀에 할당된 Pod의 리소스 및 CPU 요청을 알립니다. 워크로드 파티셔닝이 활성화되면 management.workload.openshift.io/cores 리소스를 사용하면 스케줄러에서 기본 cpuset 뿐만 아니라 호스트의 cpushares 용량에 따라 Pod를 올바르게 할당할 수 있습니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.