4.10. 브로커 상태 점검 구성

liveness 및 readiness 프로브를 사용하여 실행 중인 브로커 컨테이너에 대해 정기적인 상태 점검을 구성할 수 있습니다. 활성 상태 프로브는 브로커의 HTTP 포트를 ping하여 브로커가 실행 중인지 확인합니다. 준비 상태 프로브는 브로커가 브로커에 대해 구성된 각 어셉터 포트에 대한 연결을 열어 네트워크 트래픽을 허용할 수 있는지 확인합니다.

기본 활성 및 준비 상태 프로브를 사용하여 HTTP 및 어셉터 포트에 대한 연결을 열어 브로커의 상태를 확인하는 제한은 이러한 검사에서 브로커 파일 시스템의 기본 문제를 식별할 수 없다는 것입니다. 브로커의 명령줄 유틸리티인 artemis 를 활성 상태 또는 준비 상태 프로브 구성에 통합하여 브로커에게 메시지 전송을 포함하는 보다 포괄적인 상태 점검을 생성할 수 있습니다.

4.10.1. 활성 상태 프로브 및 준비 상태 프로브 구성

다음 예제에서는 활성 상태 프로브를 사용하여 상태 점검을 실행하도록 브로커 배포의 기본 CR(사용자 정의 리소스) 인스턴스를 구성하는 방법을 보여줍니다.

사전 요구 사항

절차

  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 인스턴스를 시작합니다. 왼쪽 창에서 AdministrationCustom Resource Definitions 를 클릭합니다.
      3. ActiveMQArtemis CRD를 클릭합니다.
      4. Instances 탭을 클릭합니다.
      5. Create ActiveMQArtemis 를 클릭합니다.

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

  2. 활성 상태 프로브를 구성하려면 CR의 deploymentPlan 섹션에서 livenessProbe 섹션을 추가합니다. 예를 들면 다음과 같습니다.

    spec:
      deploymentPlan:
        livenessProbe:
          initialDelaySeconds: 5
          periodSeconds: 5
    initialDelaySeconds
    컨테이너를 시작한 후 프로브가 실행되기 전의 지연(초)입니다. 기본값은 5 입니다.
    periodSeconds

    프로브가 실행되는 간격(초)입니다. 기본값은 5 입니다.

    참고

    활성 상태 프로브를 구성하지 않거나 구성된 프로브에서 처리기가 없는 경우 AMQ Operator는 다음 구성이 있는 기본 TCP 프로브를 생성합니다. 기본 TCP 프로브는 지정된 포트에서 브로커 컨테이너에 대한 소켓을 열려고 시도합니다.

    spec:
      deploymentPlan:
        livenessProbe:
          tcpSocket:
            port: 8181
          initialDelaySeconds: 30
          timeoutSeconds: 5
  3. CR의 deploymentPlan 섹션에서 준비 상태 프로브를 구성하려면 readinessProbe 섹션을 추가합니다. 예를 들면 다음과 같습니다.

    spec:
      deploymentPlan:
        readinessProbe:
          initialDelaySeconds: 5
          periodSeconds: 5

    준비 상태 프로브를 구성하지 않으면 기본 제공 스크립트 가 모든 수락자가 연결을 허용할 수 있는지 확인합니다.

  4. 보다 포괄적인 상태 점검을 구성하려면 artemis 검사 명령줄 유틸리티를 liveness 또는 readiness 프로브 구성에 추가합니다.

    1. 브로커에 대한 전체 클라이언트 연결을 생성하는 상태 점검을 구성하려면 livenessProbe 또는 readinessProbe 섹션에서 exec 섹션을 추가합니다. exec 섹션에서 command 섹션을 추가합니다. command 섹션에서 artemis 검사 노드 명령 구문을 추가합니다. 예를 들면 다음과 같습니다.

      spec:
        deploymentPlan:
          readinessProbe:
            exec:
              command:
                - bash
                - '-c'
                - /home/jboss/amq-broker/bin/artemis
                - check
                - node
                - '--silent'
                - '--acceptor'
                - <acceptor name>
                - '--user'
                - $AMQ_USER
                - '--password'
                - $AMQ_PASSWORD
            initialDelaySeconds: 30
            timeoutSeconds: 5

      기본적으로 artemis check node 명령은 artemis 라는 어셉터의 URI를 사용합니다. 브로커에 artemis 라는 어셉터가 있는 경우 명령에서 --acceptor <acceptor name > 옵션을 제외할 수 있습니다.

      참고

      $AMQ_USER$AMQ_PASSWORD 는 AMQ Operator에 의해 구성된 환경 변수입니다.

    2. 메시지를 생성하고 사용하는 상태 점검을 구성하려면 broker 파일 시스템의 상태를 livenessProbe 또는 readinessProbe 섹션에서 검증합니다. exec 섹션을 추가합니다. exec 섹션에서 command 섹션을 추가합니다. 명령 섹션에서 artemis 검사 대기열 명령 구문을 추가합니다. 예를 들면 다음과 같습니다.

      spec:
        deploymentPlan:
          readinessProbe:
            exec:
              command:
                - bash
                - '-c'
                - /home/jboss/amq-broker/bin/artemis
                - check
                - queue
                - '--name'
                - livenessqueue
                - '--produce'
                - "1"
                - '--consume'
                - "1"
                - '--silent'
                - '--user'
                - $AMQ_USER
                - '--password'
                - $AMQ_PASSWORD
            initialDelaySeconds: 30
            timeoutSeconds: 5
      참고

      지정한 큐 이름은 브로커에 구성하고 anycastroutingType 이 있어야 합니다. 예를 들면 다음과 같습니다.

      apiVersion: broker.amq.io/v1beta1
      kind: ActiveMQArtemisAddress
      metadata:
        name: livenessqueue
        namespace: activemq-artemis-operator
      spec:
        addressName: livenessqueue
        queueConfiguration:
          purgeOnNoConsumers: false
          maxConsumers: -1
          durable: true
          enabled: true
        queueName: livenessqueue
        routingType: anycast
  5. 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 구성을 완료하면 생성을 클릭합니다.

추가 리소스

OpenShift Container Platform의 활성 상태 프로브 및 준비 상태 프로브에 대한 자세한 내용은 OpenShift Container Platform 설명서의 상태 점검을 사용하여 애플리케이션 상태 모니터링 을 참조하십시오.