4.7. Operator 기반 브로커 배포에 대한 리소스 제한 및 요청 구성


Operator 기반 브로커 배포를 생성할 때 배포의 브로커 Pod는 OpenShift 클러스터의 노드의 StatefulSet에서 실행됩니다. 배포에 대해 사용자 정의 리소스(CR) 인스턴스를 구성하여 각 Pod에서 실행되는 브로커 컨테이너에서 사용하는 host-node 컴퓨팅 리소스를 지정할 수 있습니다. CPU 및 메모리(RAM)에 대한 제한 및 요청 값을 지정하면 브로커 Pod의 안정성을 보장할 수 있습니다.

중요
  • CR을 처음 배포하기 전에 브로커 배포의 CR 인스턴스에 제한 및 요청에 대한 구성을 추가해야 합니다. 이미 실행 중인 브로커 배포에 구성을 추가할 수 없습니다.
  • Red Hat은 특정 메시징 시스템 사용 사례와 구현한 결과 아키텍처를 기반으로 하므로 제한 및 요청에 대한 값을 권장할 수 없습니다. 그러나 프로덕션 환경에 맞게 구성하기 전에 개발 환경에서 이러한 값을 테스트하고 조정하는 것이 좋습니다.
  • Operator는 각 브로커 Pod를 시작할 때 Init Container 라는 컨테이너 유형을 실행합니다. 각 브로커 컨테이너에 대해 구성하는 모든 리소스 제한 및 요청은 각 Init Container에도 적용됩니다. 브로커 배포에서 Init Container 사용에 대한 자세한 내용은 4.1절. “Operator에서 브로커 구성을 생성하는 방법” 을 참조하십시오.

다음 제한 및 요청 값을 지정할 수 있습니다.

CPU 제한
Pod에서 실행되는 각 브로커 컨테이너의 경우 이 값은 컨테이너에서 사용할 수 있는 최대 호스트 노드 CPU 양입니다. 브로커 컨테이너가 지정된 CPU 제한을 초과하려고 하면 OpenShift에서 컨테이너를 제한합니다. 이렇게 하면 노드에서 실행되는 Pod 수에 관계없이 컨테이너의 성능이 일관되게 유지됩니다.
메모리 제한
Pod에서 실행되는 각 브로커 컨테이너의 경우 이 값은 컨테이너에서 사용할 수 있는 최대 호스트 노드 메모리 양입니다. 브로커 컨테이너가 지정된 메모리 제한을 초과하려고 하면 OpenShift에서 컨테이너를 종료합니다. 브로커 Pod가 다시 시작됩니다.
CPU 요청

Pod에서 실행되는 각 브로커 컨테이너의 경우 이 값은 컨테이너가 요청하는 호스트 노드 CPU의 양입니다. OpenShift 스케줄러는 포드 배치 중에 CPU 요청 값을 고려하여 충분한 컴퓨팅 리소스가 있는 노드에 브로커 Pod를 바인딩합니다.

CPU 요청 값은 브로커 컨테이너를 실행하는 데 필요한 최소 CPU 양입니다. 그러나 노드에 CPU에 대한 경합이 없는 경우 컨테이너에서 사용 가능한 모든 CPU를 사용할 수 있습니다. CPU 제한을 지정한 경우 컨테이너가 해당 CPU 사용량을 초과할 수 없습니다. 노드에 CPU 경합이 있는 경우 CPU 요청 값은 OpenShift가 모든 컨테이너의 CPU 사용량을 평가할 수 있는 방법을 제공합니다.

메모리 요청

Pod에서 실행되는 각 브로커 컨테이너의 경우 이 값은 컨테이너에서 요청하는 호스트 노드 메모리 양입니다. OpenShift 스케줄러는 포드 배치 중에 메모리 요청 값을 고려하여 충분한 컴퓨팅 리소스가 있는 노드에 브로커 Pod를 바인딩합니다.

메모리 요청 값은 브로커 컨테이너를 실행하는 데 필요한 최소 메모리 양입니다. 그러나 컨테이너는 가능한 한 많은 사용 가능한 메모리를 사용할 수 있습니다. 메모리 제한을 지정한 경우 브로커 컨테이너는 해당 메모리 사용량을 초과할 수 없습니다.

CPU는 밀리코어라는 단위로 측정됩니다. OpenShift 클러스터의 각 노드는 운영 체제를 검사하여 노드의 CPU 코어 수를 확인합니다. 그런 다음 노드는 해당 값을 1000으로 곱하여 총 용량을 표현합니다. 예를 들어 노드에 두 개의 코어가 있는 경우 노드의 CPU 용량은 2000m 로 표시됩니다. 따라서 단일 코어의 1/10을 사용하려면 100m 값을 지정합니다.

메모리는 바이트 단위로 측정됩니다. 바이트 표기법 (E, P, T, G, M, K) 또는 바이너리 동등한 값 (Ei, Pi, Ti, Gi, Mi, Ki)을 사용하여 값을 지정할 수 있습니다. 지정한 값에 단위가 포함되어야 합니다.

4.7.1. 브로커 리소스 제한 및 요청 구성

다음 예는 배포의 Pod에서 실행되는 각 브로커 컨테이너의 CPU 및 메모리에 대한 제한 및 요청을 설정하기 위해 브로커 배포에 대한 기본 CR(사용자 정의 리소스) 인스턴스를 구성하는 방법을 보여줍니다.

중요
  • CR을 처음 배포하기 전에 브로커 배포의 CR 인스턴스에 제한 및 요청에 대한 구성을 추가해야 합니다. 이미 실행 중인 브로커 배포에 구성을 추가할 수 없습니다.
  • Red Hat은 특정 메시징 시스템 사용 사례와 구현한 결과 아키텍처를 기반으로 하므로 제한 및 요청에 대한 값을 권장할 수 없습니다. 그러나 프로덕션 환경에 맞게 구성하기 전에 개발 환경에서 이러한 값을 테스트하고 조정하는 것이 좋습니다.

사전 요구 사항

프로세스

  1. 브로커 배포에 대한 CR(사용자 정의 리소스) 인스턴스 구성을 시작합니다.

    1. OpenShift 명령줄 인터페이스 사용:

      1. 배포를 생성하는 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 OpenShift에 로그인합니다.

        oc login -u <user> -p <password> --server=<host:port>
      2. 다운로드 및 추출한 Operator 설치 아카이브의 deploy/crs 디렉터리에 포함된 broker_activemqartemis_cr.yaml 이라는 샘플 CR 파일을 엽니다.
    2. OpenShift Container Platform 웹 콘솔 사용:

      1. 배포를 생성하는 프로젝트에 CR을 배포할 권한이 있는 사용자로 콘솔에 로그인합니다.
      2. 기본 브로커 CRD를 기반으로 새 CR 인스턴스를 시작합니다. 왼쪽 창에서 Administration Custom Resource Definitions 를 클릭합니다.
      3. ActiveMQArtemis CRD를 클릭합니다.
      4. Instances 탭을 클릭합니다.
      5. Create ActiveMQArtemis 를 클릭합니다.

        콘솔에서 YAML 편집기가 열리고 CR 인스턴스를 구성할 수 있습니다.

    기본 브로커 배포의 경우 아래 표시된 구성과 유사할 수 있습니다.

    apiVersion: broker.amq.io/v1beta1
    kind: ActiveMQArtemis
    metadata:
      name: ex-aao
    spec:
      deploymentPlan:
        size: 1
        image: placeholder
        requireLogin: false
        persistenceEnabled: true
        journalType: nio
        messageMigration: true

    broker_activemqartemis_cr.yaml 샘플 CR 파일에서 image 속성이 자리 표시자 의 기본값으로 설정되어 있는지 확인합니다. 이 값은 기본적으로 image 속성이 배포에 사용할 브로커 컨테이너 이미지를 지정하지 않음을 나타냅니다. Operator에서 사용할 적절한 브로커 컨테이너 이미지를 결정하는 방법을 알아보려면 2.7절. “Operator에서 컨테이너 이미지를 선택하는 방법” 를 참조하십시오.

  2. CR의 deploymentPlan 섹션에서 resources 섹션을 추가합니다. 제한요청 하위 섹션을 추가합니다. 각 하위 섹션에 cpumemory 속성을 추가하고 값을 지정합니다. 예를 들면 다음과 같습니다.

    spec:
      deploymentPlan:
        size: 1
        image: placeholder
        requireLogin: false
        persistenceEnabled: true
        journalType: nio
        messageMigration: true
        resources:
          limits:
            cpu: "500m"
            memory: "1024M"
          requests:
            cpu: "250m"
            memory: "512M"
    limits.cpu
    배포에서 Pod에서 실행되는 각 브로커 컨테이너는 이 양의 호스트 노드 CPU 사용량을 초과할 수 없습니다.
    limits.memory
    배포에서 Pod에서 실행되는 각 브로커 컨테이너는 이 양의 호스트 노드 메모리 사용량을 초과할 수 없습니다.
    requests.cpu
    배포의 Pod에서 실행되는 각 브로커 컨테이너는 이 양의 host-node CPU를 요청합니다. 이 값은 브로커 컨테이너를 실행하는 데 필요한 최소 CPU 양입니다.
    requests.memory

    배포의 Pod에서 실행되는 각 브로커 컨테이너는 이 양의 호스트 노드 메모리를 요청합니다. 이 값은 브로커 컨테이너를 실행하는 데 필요한 최소 메모리 양입니다.

    참고

    리소스에 대한 제한을 지정하고 요청을 지정하지 않으면 브로커 컨테이너에서 해당 리소스에 대해 구성된 제한 값을 요청합니다. 예를 들어 다음 구성에서 브로커 컨테이너는 500m cpu 및 1024M 메모리의 구성된 제한 값을 요청합니다.

    spec:
      deploymentPlan:
        size: 3
        ...
        resources:
          limits:
            cpu: "500m"
            memory: "1024M"
    중요

    요청된 메모리 및 CPU의 정확한 양을 제어하고 배포에 여러 브로커가 있는 경우 각 브로커 컨테이너에 동일한 값이 요청되도록 요청을 설정하지 않고 제한을 설정합니다.

  3. CR 인스턴스를 배포합니다.

    1. OpenShift 명령줄 인터페이스 사용:

      1. CR 파일을 저장합니다.
      2. 브로커 배포를 생성하는 프로젝트로 전환합니다.

        $ oc project <project_name>
      3. CR 인스턴스를 생성합니다.

        $ oc create -f <path/to/custom_resource_instance>.yaml
    2. OpenShift 웹 콘솔 사용:

      1. CR 구성을 완료하면 생성 을 클릭합니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동