4.17. OpenShift Container Platform 노드에서 브로커 Pod 배치 제어


노드 선택기, 허용 오차 또는 유사성 및 유사성 방지 규칙을 사용하여 OpenShift Container Platform 노드에 AMQ Broker Pod 배치를 제어할 수 있습니다.

노드 선택기
노드 선택기를 사용하면 특정 노드에 브로커 Pod를 예약할 수 있습니다.
허용 오차
허용 오차를 사용하면 톨러레이션이 노드에 구성된 테인트와 일치하는 경우 노드에 브로커 Pod를 예약할 수 있습니다. 일치하는 Pod 허용 오차가 없으면 테인트를 사용하면 노드에서 Pod 수락을 거부할 수 있습니다.
affinity/Anti-affinity
노드 유사성 규칙은 노드의 라벨에 따라 Pod를 예약할 수 있는 노드를 제어합니다. Pod 유사성 및 유사성 방지 규칙은 해당 노드에서 이미 실행 중인 Pod에 따라 Pod를 예약할 수 있는 노드를 제어합니다.

4.17.1. 노드 선택기를 사용하여 특정 노드에 Pod 배치

노드 선택기는 노드 레이블에 키-값 쌍이 일치하는 노드에 브로커 Pod를 예약해야 하는 키-값 쌍을 지정합니다.

다음 예제에서는 특정 노드에서 브로커 Pod를 예약하도록 노드 선택기를 구성하는 방법을 보여줍니다.

사전 요구 사항

프로세스

  1. 기본 브로커 CRD를 기반으로 CR(사용자 정의 리소스) 인스턴스를 생성합니다.

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

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

        oc login -u <user> -p <password> --server=<host:port>
        Copy to Clipboard Toggle word wrap
      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 인스턴스를 구성할 수 있습니다.

  2. CR의 deploymentPlan 섹션에서 nodeSelector 섹션을 추가하고 Pod의 노드를 선택하기 위해 일치시킬 노드 레이블을 추가합니다. 예를 들면 다음과 같습니다.

    spec:
        deploymentPlan:
          nodeSelector:
            app: broker1
    Copy to Clipboard Toggle word wrap

    이 예에서 브로커 Pod는 app: broker1 레이블이 있는 노드에 예약됩니다.

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

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

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

        $ oc project <project_name>
        Copy to Clipboard Toggle word wrap
      3. CR 인스턴스를 생성합니다.

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

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

추가 리소스

OpenShift Container Platform의 노드 선택기에 대한 자세한 내용은 OpenShift Container Platform 설명서의 노드 선택기를 사용하여 특정 노드에 Pod 배치를 참조하십시오.

4.17.2. 허용 오차를 사용하여 Pod 배치 제어

테인트 및 허용 오차는 특정 노드에서 Pod를 예약할 수 있는지 여부를 제어합니다. 테인트를 사용하면 Pod에 일치하는 톨러레이션이 없으면 노드에서 Pod 일정을 거부할 수 있습니다. 테인트를 사용하여 일치하는 톨러레이션이 있는 브로커 Pod와 같은 특정 Pod용으로 노드가 예약되도록 노드에서 Pod를 제외할 수 있습니다.

일치하는 허용 오차가 있으면 브로커 Pod를 노드에 예약할 수 있지만 해당 노드에서 Pod가 예약되는 것을 보장하지는 않습니다. 테인트가 구성된 노드에 브로커 Pod가 예약되도록 하려면 선호도 규칙을 구성할 수 있습니다. 자세한 내용은 다음을 참조하십시오. 4.17.3절. “유사성 및 유사성 방지 규칙을 사용하여 Pod 배치 제어”

다음 예제에서는 노드에 구성된 테인트와 일치하도록 허용 오차를 구성하는 방법을 보여줍니다.

사전 요구 사항

  • CR 인스턴스를 사용하여 기본 브로커 배포를 생성하는 방법을 숙지해야 합니다. 3.4.1절. “기본 브로커 인스턴스 배포”을 참조하십시오.
  • 브로커 Pod 예약을 위해 예약할 노드에 테인트를 적용합니다. 테인트는 키, 값 및 효과로 구성됩니다. 테인트 효과에 따라 다음이 결정됩니다.

    • 노드의 기존 Pod가 제거됨
    • 기존 Pod는 노드에 남아 있을 수 있지만 일치하는 톨러레이션이 없으면 새 Pod를 예약할 수 없습니다.
    • 필요한 경우 새 Pod를 노드에 예약할 수 있지만 기본 설정은 노드에서 새 Pod를 예약하지 않는 것입니다.

테인트 적용에 대한 자세한 내용은 OpenShift Container Platform 설명서에서 노드 테인트를 사용하여 Pod 배치 제어를 참조하십시오.

프로세스

  1. 기본 브로커 CRD를 기반으로 CR(사용자 정의 리소스) 인스턴스를 생성합니다.

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

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

        oc login -u <user> -p <password> --server=<host:port>
        Copy to Clipboard Toggle word wrap
      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 인스턴스를 구성할 수 있습니다.

  2. CR의 deploymentPlan 섹션에서 tolerations 섹션을 추가합니다. 허용 오차 섹션에서 일치하려는 노드 테인트에 대한 허용 오차를 추가합니다. 예를 들면 다음과 같습니다.

    spec:
         deploymentPlan:
            tolerations:
            - key: "app"
              value: "amq-broker"
              effect: "NoSchedule"
    Copy to Clipboard Toggle word wrap

    이 예에서 허용 오차는 app=amq-broker:NoSchedule 의 노드 테인트와 일치하므로 이 테인트가 구성된 노드에서 Pod를 예약할 수 있습니다.

참고

브로커 Pod가 올바르게 예약되도록 하려면 CR의 tolerations 섹션에 tolerationsSeconds 속성을 지정하지 마십시오.

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

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

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

        $ oc project <project_name>
        Copy to Clipboard Toggle word wrap
      3. CR 인스턴스를 생성합니다.

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

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

추가 리소스

OpenShift Container Platform의 테인트 및 허용 오차에 대한 자세한 내용은 OpenShift Container Platform 설명서의 노드 테인트를 사용하여 Pod 배치 제어를 참조하십시오.

4.17.3. 유사성 및 유사성 방지 규칙을 사용하여 Pod 배치 제어

노드 유사성, Pod 유사성 또는 Pod 유사성 방지 규칙을 사용하여 Pod 배치를 제어할 수 있습니다. 노드 유사성을 사용하면 Pod에서 대상 노드 그룹에 대한 유사성을 지정할 수 있습니다. Pod 유사성 및 유사성 방지를 사용하면 노드에서 이미 실행 중인 다른 Pod를 기준으로 Pod를 예약할 수 있거나 예약할 수 없는 방법에 대한 규칙을 지정할 수 있습니다.

4.17.3.1. 노드 유사성 규칙을 사용하여 Pod 배치 제어

노드 유사성을 사용하면 브로커 Pod에서 해당 Pod를 배치할 수 있는 노드 그룹에 대한 선호도를 지정할 수 있습니다. Pod에 생성하는 유사성 규칙과 동일한 키-값 쌍이 있는 라벨이 있는 모든 노드에 브로커 Pod를 예약할 수 있습니다.

다음 예제에서는 노드 유사성 규칙을 사용하여 Pod 배치를 제어하도록 브로커를 구성하는 방법을 보여줍니다.

사전 요구 사항

  • CR 인스턴스를 사용하여 기본 브로커 배포를 생성하는 방법을 숙지해야 합니다. 3.4.1절. “기본 브로커 인스턴스 배포”을 참조하십시오.
  • OpenShift Container Platform 클러스터의 노드에 공통 레이블을 할당하여 브로커 Pod를 예약할 수 있습니다(예: zone: emea ).

프로세스

  1. 기본 브로커 CRD를 기반으로 CR(사용자 정의 리소스) 인스턴스를 생성합니다.

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

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

        oc login -u <user> -p <password> --server=<host:port>
        Copy to Clipboard Toggle word wrap
      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 인스턴스를 구성할 수 있습니다.

  2. CR의 deploymentPlan 섹션에서 affinity,nodeAffinity,requiredDuringSchedulingIgnoredDuringExecution, nodeSelectorTerms 섹션을 추가합니다. nodeSelectorTerms 섹션에서 - matchExpressions 매개변수를 추가하고 일치시킬 노드 레이블의 key-value 문자열을 지정합니다. 예를 들면 다음과 같습니다.

    spec:
      deploymentPlan:
        affinity:
          nodeAffinity:
            requiredDuringSchedulingIgnoredDuringExecution:
              nodeSelectorTerms:
              - matchExpressions:
                - key: zone
                  operator: In
                  values:
                  - emea
    Copy to Clipboard Toggle word wrap

    이 예에서 유사성 규칙을 사용하면 키가 zone 이고 값이 emea 인 모든 노드에서 Pod를 예약할 수 있습니다.

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

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

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

        $ oc project <project_name>
        Copy to Clipboard Toggle word wrap
      3. CR 인스턴스를 생성합니다.

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

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

추가 리소스

OpenShift Container Platform의 유사성 규칙에 대한 자세한 내용은 OpenShift Container Platform 설명서의 노드 유사성 규칙을 사용하여 노드에 대한 Pod 배치 제어를 참조하십시오.

4.17.3.2. 유사성 방지 규칙을 사용하여 다른 Pod에 상대적인 Pod 배치

유사성 방지 규칙을 사용하면 노드에서 이미 실행 중인 Pod의 라벨에 따라 브로커 Pod를 예약할 수 있는 Openshift 노드를 제한할 수 있습니다.

유사성 방지 규칙을 사용하여 단일 장애 지점을 생성하는 동일한 Openshift 노드에 여러 브로커 Pod가 예약되지 않도록 할 수 있습니다.

사전 요구 사항

프로세스

  1. 첫 번째 브로커 배포의 ActiveMQArtemis CR 인스턴스를 편집합니다.
  2. CR의 deploymentPlan 섹션에서 labels 섹션을 추가합니다. 두 번째 배포의 레이블을 기반으로 anti-affinity 규칙을 생성할 수 있도록 브로커의 식별 레이블을 생성합니다. 예를 들면 다음과 같습니다.

    spec:
      ...
        deploymentPlan:
          labels:
            name: broker1
    Copy to Clipboard Toggle word wrap
  3. CR을 저장합니다.
  4. 두 번째 브로커 배포를 위해 ActiveMQArtemis CR 인스턴스를 편집합니다.
  5. CR의 deploymentPlan 섹션에서 affinity,podAntiAffinity,requiredDuringSchedulingIgnoredDuringExecution, labelSelector 섹션을 추가합니다. labelSelector 섹션에서 matchExpressions 매개변수를 추가하고 일치시킬 레이블의 키-값 문자열을 지정합니다. 이 배포의 Pod는 일치하는 라벨이 있는 Pod가 포함된 노드에 예약할 수 없습니다.

    spec:
      deploymentPlan:
        affinity:
          podAntiAffinity:
            requiredDuringSchedulingIgnoredDuringExecution:
              - labelSelector:
                  matchExpressions:
                    - key: name
                      operator: In
                      values:
                        - broker1
                topologyKey: topology.kubernetes.io/zone
    Copy to Clipboard Toggle word wrap

    이 예에서 Pod 유사성 방지 규칙은 Pod가 name 이고 값이 broker1 인 Pod와 동일한 노드에 배치되지 않으며, 이는 첫 번째 배포의 브로커에 할당된 레이블입니다.

  6. CR을 저장합니다.

추가 리소스

OpenShift Container Platform의 유사성 규칙에 대한 자세한 내용은 OpenShift Container Platform 설명서의 노드 유사성 규칙을 사용하여 노드에 대한 Pod 배치 제어를 참조하십시오.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동