8장. 확인된 문제
이 섹션에서는 AMQ Broker 7.11에서 알려진 문제에 대해 설명합니다.
ENTMQBR-8106 - AMQ Broker Drainer Pod가 CR에서 MessageMigration을 변경한 후 제대로 작동하지 않음
실행 중인 브로커 배포에서
messageMigration
속성의 값을 변경할 수 없습니다. 이 문제를 해결하려면 새ActiveMQ Artemis
CR에서messageMigration
속성에 필요한 값을 설정하고 새 브로커 배포를 생성해야 합니다.
ENTMQBR-8166 - UseClientAuth=true가 있는 자체 서명된 인증서로 인해 Jolokia와 Operator의 통신을 방지합니다.
ActiveMQ Artemis
CR의console
섹션에서useClientAuth
속성이true
로 설정된 경우 Operator는 브로커에서 특정 기능을 구성할 수 없습니다. Operator 로그에원격 오류: tls: bad 인증서로 끝나는 오류
메시지가 표시됩니다.
ENTMQBR-7385 - 느린 소비자의 페더링 큐 주변의 메시지 플로핑
로컬 애플리케이션 사용자가 매우 느리거나 메시지를 사용할 수 없는 경우 페더레이션 연결을 통해 메시지를 백과 사용하여 애플리케이션 소비자가 마지막으로 사용하기 전에 여러 번 보낼 수 있습니다.
ENTMQBR-7820 - [Operator] 7.11.0 OPR1 Operator 로그에 나열된 지원 버전이 올바르지 않음
Operator 로그는 다음 AMQ Broker 이미지 버전 : 7.10.00.1 7.10.2 7.11.0 7.8.1 7.8.2 7.8.3 7.9.0 7.9.2 7.9.3 7.9.3 7.9.4에 대한 지원이 나열됩니다. Operator는 실제로 7.10.0으로 시작하는 AMQ Broker 이미지 버전을 지원합니다.
ENTMQBR-7359 - 7.10.0 Operator로 인증 정보 시크릿의 현재 처리로 변경
Operator는 시크릿의 브로커에 연결하기 위해 관리자 사용자 이름 및 암호를 저장합니다. 기본 시크릿 이름은 <
custom-resource-name> -credentials-secret
형식으로 되어 있습니다. 시크릿을 수동으로 생성하거나 Operator에서 보안을 생성하도록 허용할 수 있습니다.adminUser
및adminPassword
속성이 7.10.0 이전의 사용자 정의 리소스에 구성된 경우 Operator는 이러한 속성의 값을 사용하여 수동으로 생성된 시크릿을 업데이트합니다. 7.10.0부터 Operator는 더 이상 수동으로 생성된 시크릿을 업데이트하지 않습니다. 따라서 CR에서adminUser
및adminPassword
속성 값을 변경하는 경우 다음 중 하나를 수행해야 합니다.- 새 사용자 이름 및 암호로 시크릿을 업데이트
-
보안을 삭제하고 Operator에서 보안을 생성하도록 허용합니다. Operator에서 시크릿을 생성할 때 CR에 지정된 경우
adminUser
및adminPassword
속성 값을 추가합니다. 이러한 속성이 CR에 없는 경우 Operator는 보안에 대한 임의의 인증 정보를 생성합니다.
ENTMQBR-7111 - 7.10 버전의 Operator는 업그레이드하는 동안 StatefulSet을 제거하는 경향이 있습니다.
AMQ Broker Operator 7.10.0으로 업그레이드 중인 경우 새 Operator는 조정 프로세스 중 각 배포에 대한 기존 StatefulSet을 자동으로 삭제합니다. Operator가 StatefulSet을 삭제하면 기존 브로커 Pod가 삭제되어 일시적인 브로커 중단이 발생합니다.
다음 명령을 실행하여 이 문제를 해결하기 위해 Operator에서 StatefulSet: oc delete statefulset < statefulset-name > --cascade=orphan을 삭제하기 전에 StatefulSet을 수동으로 삭제하고 실행 중인 Pod를 분리할 수 있습니다.
업그레이드 프로세스 중에 StatefulSet을 수동으로 삭제하면 새 Operator에서 실행 중인 Pod를 삭제하지 않고 StatefulSet을 조정할 수 있습니다. 자세한 내용은 OpenShift에 AMQ Broker 를 배포 할 때 OperatorHub를 사용하여 Operator 업그레이드를 참조하십시오.
ENTMQBR-6473 - 스키마 URL 변경으로 인한 호환되지 않는 구성
버전 7.9 또는 7.10 인스턴스가 있는 이전 릴리스의 브로커 인스턴스 구성을 사용하려는 경우 스키마 URL 변경으로 인한 호환되지 않는 구성이 있으면 브로커가 충돌합니다. 이 문제를 해결하려면 Linux의 7.9.0에서 7.10.0으로 요약된 대로 관련 구성 파일의 스키마 URL을 업데이트합니다.
ENTMQBR-4813 대규모 메시지 및 여러 C++ 구독자가 포함된 ENTMQBR-48Exception
AMQP 프로토콜을 사용하는 여러 C++ publisher 클라이언트가 구독자 및 브로커와 동일한 호스트에서 실행되고 있고 게시자가 대규모 메시지를 전송하는 경우 구독자 중 하나가 충돌합니다.
ENTMQBR-5749 - OperatorHub에 표시되는 지원되지 않는 Operator 제거
OperatorHub에서 Operator 배포에 언급된 Operator 및 Operator 채널만 지원됩니다. Operator 게시와 관련된 기술적 이유로 OperatorHub에 다른 Operator 및 채널이 표시되고 무시해야 합니다. 다음 목록은 참조를 위해 표시되는 Operator는 표시되지만 지원되지는 않음을 보여줍니다.
- Red Hat Integration - AMQ Broker LTS - 모든 채널
- Red Hat Integration - AMQ Broker - alpha, current, current-76
ENTMQBR-569 - Open>-<re에서 AMQP로 ID를 변환하면 ID를 바이너리로 보냅니다.
A-MQ 6 OpenECDHEre 클라이언트에서 AMQP 클라이언트로 교차 프로토콜을 통신할 때 추가 정보가 애플리케이션 메시지 속성에 인코딩됩니다. 이는 브로커가 내부적으로 사용하는 일반 정보이며 무시할 수 있습니다.
ENTMQBR-655 - [AMQP] fill
-validated-user
가 활성화된 경우 메시지를 전송할 수 없음AMQP 프로토콜을 사용하여 생성된 메시지에서는 설정 옵션
populate-validated-user
가 지원되지 않습니다.
ENTMQBR-1875 - [AMQ 7, ha, 복제된 저장소] 백업 브로커는 이동하지 않고 "live" 또는 종료되지 않음 - ActiveMQIllegegegegalStateException errorType=ILLEGAL_STATE message=AMQ119026: Backup Server가 라이브와 동기화되지 않았습니다.
백업 브로커가 기본 브로커와 동기화하는 동안 기본 브로커의 페이징 디스크를 제거하면 주 서버가 실패합니다. 또한 백업 브로커는 기본 브로커와 계속 동기화되기 때문에 실시간 상태가 될 수 없습니다.
ENTMQBR-2068 - 일부 메시지가 수신되었지만 HA 장애 조치, 장애 복구 시나리오 중에 전달되지 않음
현재 OpenWire 클라이언트가 메시지를 보내는 동안 브로커가 백업으로 장애 조치되면 장애 조치가 발생할 때 브로커로 전달되는 메시지가 손실될 수 있습니다. 이 문제를 해결하려면 브로커가 메시지를 승인하기 전에 메시지를 지속해야 합니다.
ENTMQBR-3331 - Stateful set 컨트롤러가 CreateContainerError에서 복구할 수 없으므로 Operator를 차단합니다.
AMQ Broker Operator가 구성 오류가 있는 CR(사용자 정의 리소스)에서 상태 저장 세트를 생성하는 경우 오류가 해결되면 상태 저장 세트 컨트롤러에서 업데이트된 상태 저장 세트를 롤아웃할 수 없습니다.
예를 들어 기본 브로커 CR의
image
특성 값이 잘못 입력되면 상태 저장 세트 컨트롤러에서 생성한 첫 번째 Pod의 상태가보류 중
상태로 유지됩니다. 그런 다음 맞춤 오류를 수정하고 CR 변경 사항을 적용하면 AMQ Broker Operator에서 상태 저장 세트를 업데이트합니다. 그러나 Kubernetes 알려진 문제로 인해 상태 저장 세트 컨트롤러에서 업데이트된 상태 저장 세트를 롤아웃하지 못합니다. 컨트롤러는보류 중
상태의 Pod가준비
상태가 될 때까지 무기한 대기하므로 새 Pod가 배포되지 않습니다.이 문제를 해결하려면 상태 저장 세트 컨트롤러에서 새 Pod를 배포할 수 있도록
Pending
상태인 Pod를 삭제해야 합니다.보류
중 상태의 Pod를 확인하려면oc get pods --field-selector=status.phase=Pending
명령을 사용합니다. Pod를 삭제하려면oc delete pod <pod name> 명령을
사용합니다.
ENTMQBR-3846 - MQTT 클라이언트가 브로커 재시작 시 다시 연결하지 않음
브로커를 다시 시작하거나 브로커가 장애 조치되면 활성 브로커가 이전에 연결된 MQTT 클라이언트의 연결을 복원하지 않습니다. 이 문제를 해결하려면 MQTT 클라이언트를 다시 연결하려면 클라이언트에서 수동으로
subscribe()
메서드를 호출해야 합니다.
ENTMQBR-4127 - AMQ Broker Operator: OpenShift에서 생성한 경로 이름이 너무 길 수 있습니다.
Operator 기반 배포의 각 브로커 Pod에 대해 Operator에서 AMQ Broker 관리 콘솔에 액세스하기 위해 생성하는 경로의 기본 이름에는 사용자 정의 리소스(CR) 인스턴스 이름, OpenShift 프로젝트의 이름, OpenShift 클러스터 이름이 포함됩니다. 예를 들면
my-broker-deployment-wconsj-0-svc-rte-my-openshift-project.my-openshift-domain
입니다. 이러한 이름 중 일부가 긴 경우 기본 경로 이름은 OpenShift에서 적용하는 63자 제한을 초과할 수 있습니다. 이 경우 OpenShift Container Platform 웹 콘솔에서 경로는Rejected
.이 문제를 해결하려면 OpenShift Container Platform 웹 콘솔을 사용하여 경로 이름을 수동으로 편집합니다. 콘솔에서 경로를 클릭합니다. 오른쪽 상단의 작업 드롭다운 메뉴에서
경로 편집
을 선택합니다. YAML 편집기에서spec.host
속성을 찾아 값을 편집합니다.
ENTMQBR-4140 - AMQ Broker Operator:
storage.size
가 부적절하게 지정된 경우 설치를 사용할 수 없습니다.영구 스토리지 배포의 브로커에 필요한 PVC(영구 볼륨 클레임) 크기를 지정하도록 CR(사용자 정의 리소스) 인스턴스의
storage.size
속성을 구성하는 경우 이 값을 올바르게 지정하지 않으면 Operator 설치를 사용할 수 없게 됩니다. 예를 들어storage.size
의 값을1
로 설정한다고 가정합니다(즉, 단위를 지정하지 않고). 이 경우 Operator는 CR을 사용하여 브로커 배포를 생성할 수 없습니다. 또한 CR을 제거하고storage.size
가 올바르게 지정된 새 버전을 배포하더라도 Operator는 여전히 이 CR을 사용하여 예상대로 배포를 생성할 수 없습니다.이 문제를 해결하려면 먼저 Operator를 중지합니다. OpenShift Container Platform 웹 콘솔에서 배포를 클릭합니다. AMQ Broker Operator에 해당하는 Pod의 추가 옵션 메뉴(세 개의 수직점)를 클릭합니다. Pod 개수 편집 을 클릭하고 값을
0
으로 설정합니다. Operator Pod가 중지되면storage.size
가 올바르게 지정된 새 버전의 CR을 생성합니다. 그런 다음 Operator를 다시 시작하려면 Pod 개수 편집 을 다시 클릭하고 값을 다시1
로 설정합니다.
ENTMQBR-4141 - AMQ Broker Operator: 영구 볼륨 크기를 늘리려면 상태 저장 세트를 다시 생성한 후에도 수동 개입이 필요합니다.
영구 스토리지 배포에서 브로커가 요구하는 PVC(영구 볼륨 클레임) 크기를 늘리려는 경우 추가 수동 단계없이 변경 사항이 적용되지 않습니다. 예를 들어 사용자 정의 리소스(CR) 인스턴스의
storage.size
속성을 구성하여 PVC의 초기 크기를 지정한다고 가정합니다. 다른 값을storage.size
로 지정하도록 CR을 수정하면 기존 브로커는 원래 PVC 크기를 계속 사용합니다. 배포를 0 브로커로 축소한 다음 원래 번호로 백업하는 경우에도 마찬가지입니다. 그러나 추가 브로커를 추가하기 위해 배포 크기를 확장하면 새 브로커는 새 PVC 크기를 사용합니다.이 문제를 해결하고 배포의 모든 브로커가 동일한 PVC 크기를 사용하는지 확인하려면 OpenShift Container Platform 웹 콘솔을 사용하여 배포에 사용되는 PVC 크기를 확장합니다. 콘솔에서
을 클릭합니다. 배포를 클릭합니다. 오른쪽 상단의 작업 드롭다운 메뉴에서 PVC 확장을 선택하고
새 값을 입력합니다.