4.10. 브로커 상태 점검 구성
liveness 및 readiness 프로브를 사용하여 실행 중인 브로커 컨테이너에 대해 정기적인 상태 점검을 구성할 수 있습니다. 활성 상태 프로브는 브로커의 HTTP 포트를 ping하여 브로커가 실행 중인지 확인합니다. 준비 상태 프로브는 브로커가 브로커에 대해 구성된 각 어셉터 포트에 대한 연결을 열어 네트워크 트래픽을 허용할 수 있는지 확인합니다.
기본 활성 및 준비 상태 프로브를 사용하여 HTTP 및 어셉터 포트에 대한 연결을 열어 브로커의 상태를 확인하는 제한은 이러한 검사에서 브로커 파일 시스템의 기본 문제를 식별할 수 없다는 것입니다. 브로커의 명령줄 유틸리티인 artemis
를 활성 상태 또는 준비 상태 프로브 구성에 통합하여 브로커에게 메시지 전송을 포함하는 보다 포괄적인 상태 점검을 생성할 수 있습니다.
4.10.1. 활성 상태 프로브 및 준비 상태 프로브 구성
다음 예제에서는 활성 상태 프로브를 사용하여 상태 점검을 실행하도록 브로커 배포의 기본 CR(사용자 정의 리소스) 인스턴스를 구성하는 방법을 보여줍니다.
사전 요구 사항
- CR 인스턴스를 사용하여 기본 브로커 배포를 생성하는 방법에 대해 잘 알고 있어야 합니다. 3.4.1절. “기본 브로커 인스턴스 배포”을 참조하십시오.
절차
CR 인스턴스를 생성합니다.
OpenShift 명령줄 인터페이스 사용:
브로커 배포의 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 OpenShift에 로그인합니다.
oc login -u <user> -p <password> --server=<host:port>
-
다운로드 및 추출한 Operator 설치 아카이브의
deploy/crs
디렉터리에 포함된broker_activemqartemis_cr.yaml
이라는 샘플 CR 파일을 엽니다.
OpenShift Container Platform 웹 콘솔 사용:
- 브로커 배포를 위해 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 콘솔에 로그인합니다.
-
기본 브로커 CRD를 기반으로 새 CR 인스턴스를 시작합니다. 왼쪽 창에서
를 클릭합니다. - ActiveMQArtemis CRD를 클릭합니다.
- Instances 탭을 클릭합니다.
Create ActiveMQArtemis 를 클릭합니다.
콘솔에서 YAML 편집기가 열리고 CR 인스턴스를 구성할 수 있습니다.
활성 상태 프로브를 구성하려면 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
CR의
deploymentPlan
섹션에서 준비 상태 프로브를 구성하려면readinessProbe
섹션을 추가합니다. 예를 들면 다음과 같습니다.spec: deploymentPlan: readinessProbe: initialDelaySeconds: 5 periodSeconds: 5
준비 상태 프로브를 구성하지 않으면 기본 제공 스크립트 가 모든 수락자가 연결을 허용할 수 있는지 확인합니다.
보다 포괄적인 상태 점검을 구성하려면
artemis
검사 명령줄 유틸리티를 liveness 또는 readiness 프로브 구성에 추가합니다.브로커에 대한 전체 클라이언트 연결을 생성하는 상태 점검을 구성하려면
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에 의해 구성된 환경 변수입니다.메시지를 생성하고 사용하는 상태 점검을 구성하려면 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
참고지정한 큐 이름은 브로커에 구성하고
anycast
의routingType
이 있어야 합니다. 예를 들면 다음과 같습니다.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
CR 인스턴스를 배포합니다.
OpenShift 명령줄 인터페이스 사용:
- CR 파일을 저장합니다.
브로커 배포를 생성하는 프로젝트로 전환합니다.
$ oc project <project_name>
CR 인스턴스를 생성합니다.
$ oc create -f <path/to/custom_resource_instance>.yaml
OpenShift 웹 콘솔 사용:
- CR 구성을 완료하면 생성을 클릭합니다.
추가 리소스
OpenShift Container Platform의 활성 상태 프로브 및 준비 상태 프로브에 대한 자세한 내용은 OpenShift Container Platform 설명서의 상태 점검을 사용하여 애플리케이션 상태 모니터링 을 참조하십시오.