Red Hat Integration 2022.q3 릴리스 정보
Red Hat Integration의 새로운 기능
초록
1장. Red Hat Integration
Red Hat Integration은 하이브리드 및 멀티클라우드 환경에서 컨테이너 기반 통합 서비스를 생성, 확장 및 배포하기 위한 포괄적인 통합 및 이벤트 처리 기술입니다. Red Hat Integration은 조직이 디지털 환경에서 필요한 애플리케이션과 시스템 간에 데이터를 연결하고 공유하는 데 사용할 수 있는 민첩하고 분산된 API 중심 솔루션을 제공합니다.
Red Hat Integration에는 다음과 같은 기능이 포함되어 있습니다.
- 실시간 메시지
- 데이터 센터 간 메시지 스트리밍
- API 연결
- 애플리케이션 커넥터
- 엔터프라이즈 통합 패턴
- API 관리
- 데이터 변환
- 서비스 구성 및 오케스트레이션
추가 리소스
2장. Camel Extensions for Quarkus 릴리스 노트
2.1. Camel Extensions for Quarkus 기능
- 빠른 시작 및 낮은 RSS 메모리
- Quarkus의 최적화된 빌드 시간 및 사전 시간(AOT) 컴파일 기능을 사용하면 Camel 애플리케이션을 빌드 시 사전 구성할 수 있으므로 시작 시간이 빨라집니다.
- 애플리케이션 생성기
- Quarkus 애플리케이션 생성기 를 사용하여 애플리케이션을 부트스트랩하고 확장 에코시스템을 검색합니다.
- 구성 가능
Camel Extensions for Quarkus 애플리케이션의 모든 중요한 요소는 CDI(Contexts and DependencyECDHE)를 사용하거나 구성 속성을 통해 프로그래밍 방식으로 설정할 수 있습니다. 기본적으로 CamelContext가 구성되어 있으며 자동으로 시작됩니다.
애플리케이션을 부트스트랩하고 구성하는 다양한 방법에 대한 자세한 내용은 Quarkus 애플리케이션 구성 가이드를 참조하십시오.
- 기존 Quarkus 확장과 통합
- Camel Extensions for Quarkus는 기본 지원 및 구성 옵션을 상속하는 일부 Camel 구성 요소에서 사용하는 라이브러리 및 프레임워크 확장 기능을 제공합니다.
2.2. 지원되는 플랫폼, 구성, 데이터베이스 및 확장
- Camel Extensions for Quarkus 버전 2.7.1에서 지원되는 플랫폼, 구성 및 데이터베이스에 대한 자세한 내용은 고객 포털에서 지원 구성 페이지를 참조하십시오(로그인 필요).
- Red Hat Camel Extensions for Quarkus 확장 및 각 확장에 대한 Red Hat 지원 수준은 Camel Extensions for Quarkus Reference (로그인 필요)의 확장 개요 장을 참조하십시오.
2.3. 기술 프리뷰 확장
Red Hat은 이번 Camel Extensions for Quarkus 릴리스와 함께 제공되는 기술 프리뷰 구성 요소에 대한 지원을 제공하지 않습니다. Camel Extensions for Quarkus 참조 의 확장 개요 장에서 기술 프리뷰로 지정된 항목은 기술 프리뷰 기능 지원 범위에 따라 지원 가능성이 제한됩니다.
2.4. 중요 참고 사항
- 확장에 대한 기본 모드 지원
- Camel Extensions for Quarkus 버전 2.7.1에서는 많은 확장 기능을 위한 기본 모드를 지원합니다. 확장 및 지원 수준의 전체 목록은 Camel Extensions for Quarkus 참조 의 확장 개요 장을 참조하십시오.
- Camel이 버전 3.11.5에서 3.14.2로 업그레이드
Camel Extensions for Quarkus 버전 2.7.1이 Camel 버전 3.11.5에서 Camel 버전 3.14.2로 업그레이드되었습니다. Camel 패치 간 각 릴리스에 대한 자세한 내용은 다음을 참조하십시오.
- Camel Quarkus가 버전 2.2에서 버전 2.7로 업그레이드
Camel Extensions for Quarkus 버전 2.7.1이 Camel Quarkus 버전 2.2에서 Camel Quarkus 버전 2.7로 업그레이드되었습니다. Camel Quarkus 패치 간 각 릴리스에 대한 자세한 내용은 다음을 참조하십시오.
- Elasticsearch Rest 확장이 Camel Extensions for Quarkus에서 제거되었습니다.
camel-quarkus-elasticsearch-rest확장 기능은 Camel Extensions for Quarkus 버전 2.2.1에서 더 이상 사용되지 않으며 이 릴리스에서 제거되었습니다.참고camel-quarkus-elasticsearch-rest는code.quarkus.redhat.com온라인 프로젝트 생성기 도구를 사용하여 계속 사용할 수 있지만 커뮤니티 지원에서만 사용할 수 있습니다.
2.5. 해결된 문제
다음 표에는 Camel Extensions for Quarkus 버전 2.7.1에서 수정된 Camel Extensions for Quarkus에 영향을 미치는 알려진 문제가 나열되어 있습니다.
표 2.1. Camel Extensions for Quarkus 2.7.1 해결 문제
| 문제 | 설명 |
|---|---|
| AWS2 SQS가 지연된 큐로 메시지를 보낼 때 지연이 발생하지 않습니다. | |
|
NSQ, HDFS 및 CloudEvent에서 누락된 |
Camel Quarkus 2.2와 Camel Quarkus 2.7 사이에서 해결된 다른 문제에 대한 자세한 내용은 각 패치 릴리스에 대한 릴리스 노트 를 참조하십시오.
2.6. 추가 리소스
2.7. Camel Extensions for Quarkus 2.2에서 2.7로 마이그레이션
Camel Extensions for Quarkus 2.7에는 이전 Camel Extensions for Quarkus 2.2 릴리스의 변경 사항이 포함된 새로운 기능이 포함되어 있습니다. 이 섹션에서는 Camel Extensions for Quarkus 2.2와 버전 2.7 간의 주요 변경 사항에 대해 설명합니다.
2.7의 중단된 변경으로 인해 자동 업그레이드가 없으며 마이그레이션 프로세스가 필요합니다. 기존 Camel Extensions for Quarkus 애플리케이션도 검토하고 새로운 요구 사항을 충족하도록 구성을 업데이트해야 합니다.
버전 2.7로 마이그레이션할 때 다음과 같은 주요 변경 사항을 고려해야 합니다.
2.7.1. 기본적으로 정상 종료 전략 사용
이전 릴리스에서는 기본적으로 정상 종료 전략( Camel의 기본 전략)을 사용하지 않았습니다. 종료는 어떠한 전략으로도 제어되지 않았습니다.
더 이상 그렇지 않습니다. 정상적인 종료 전략은 한 가지 예외만으로 기본적으로 활성화됩니다. 정상 종료에 대한 타임아웃이 설정되지 않고 개발 모드에서 애플리케이션이 실행되는 경우 종료 전략이 사용되지 않습니다(유효한 타임아웃이 없는 개발 모드의 경우 개발 모드의 제한 시간이 변경되지 않음).
DefaultShutdownStrategy 는 application.properties 를 통해 구성할 수 있습니다. 예를 들면 다음과 같습니다.
#set graceful timeout to 15 seconds camel.main.shutdownTimeout = 15
2.7.2. 더 이상 사용되지 않는 vertx-kafka 확장이 제거되었습니다.
더 이상 사용되지 않는 vertx-kafka 확장이 제거되었습니다. 이 구성 요소를 사용하는 모든 경로는 kafka 확장을 사용하도록 수정해야 합니다.
2.7.3. 구성 속성 제거 quarkus.camel.main.enabled
Camel Quarkus 1.8.0 이후 Camel Main이 기본 부트스트랩 모드로 활성화되었습니다. Camel Main을 비활성화하면 주요 이점이 없으므로 설정 속성 quarkus.camel.main.enabled 가 제거되었습니다.
2.7.4. Removal of @BuildTimeAvroDataFormat
더 이상 사용되지 않는 @BuildTimeAvroDataFormat 주석이 제거되었습니다. 사용자는 Camel Quarkus Avro Extension 문서에 설명된 대로 빌드 시 Avro 스키마 구문 분석을 사용해야 합니다.
3장. Debezium 릴리스 노트
Debezium은 데이터베이스 테이블에서 발생하는 행 수준 변경 사항을 캡처한 다음 해당 변경 이벤트 레코드를 Apache Kafka 항목에 전달하는 분산 변경 데이터 캡처 플랫폼입니다. 애플리케이션은 이러한 변경 이벤트 스트림을 읽고 발생한 순서대로 변경 이벤트에 액세스할 수 있습니다. Debezium은 Apache Kafka를 기반으로 하며 OpenShift Container Platform 또는 Red Hat Enterprise Linux의 AMQ Streams와 배포 및 통합됩니다.
이 2022.Q3의 Debezium 릴리스는 Debezium 커뮤니티 1.9.5.Final 릴리스를 기반으로 합니다.
다음 주제에서는 릴리스 세부 정보를 제공합니다.
3.1. Debezium 데이터베이스 커넥터
Debezium은 다음과 같은 일반적인 데이터베이스에 대해 Kafka Connect를 기반으로 하는 커넥터를 제공합니다.
- Db2
- MongoDB
- MySQL
- Oracle
- PostgreSQL
- SQL Server
3.1.1. 커넥터 사용 노트
Db2
-
Debezium Db2 커넥터에는 Db2 JDBC 드라이버 (
jcc-11.5.0.0.jar)가 포함되어 있지 않습니다. 필요한 JDBC 드라이버를 배포하는 방법에 대한 자세한 내용은 배포 지침을 참조하십시오. - Db2 커넥터에는 Linux용 Db2의 표준 부분으로 사용할 수 있는 ASN( abstract syntax notation) 라이브러리를 사용해야 합니다.
- ASN 라이브러리를 사용하려면 IBM InfoSphere Data Replication(IIDR)에 대한 라이센스가 있어야 합니다. 라이브러리를 사용하기 위해 IIDR을 설치할 필요가 없습니다.
-
Debezium Db2 커넥터에는 Db2 JDBC 드라이버 (
MongoDB
- 현재 MongoDB 4.2와 함께 Debezium MongoDB 커넥터의 트랜잭션 메타데이터 기능을 사용할 수 없습니다.
Oracle
-
Debezium Oracle 커넥터에는 Oracle JDBC 드라이버(
ojdbc8.jar)가 포함되어 있지 않습니다. 필요한 JDBC 드라이버를 배포하는 방법에 대한 자세한 내용은 배포 지침을 참조하십시오.
-
Debezium Oracle 커넥터에는 Oracle JDBC 드라이버(
PostgreSQL
-
Debezium PostgreSQL 커넥터를 사용하려면 PostgreSQL 버전 10 이상의 기본값인
pgoutput논리 디코딩 출력 플러그인을 사용해야 합니다.
-
Debezium PostgreSQL 커넥터를 사용하려면 PostgreSQL 버전 10 이상의 기본값인
추가 리소스
3.2. Debezium 지원 구성
지원되는 데이터베이스 버전에 대한 정보를 포함하여 Debezium 지원 구성에 대한 자세한 내용은 Debezium 1.9.5 지원 구성 페이지를 참조하십시오.
3.2.1. AMQ Streams API 버전
Debezium은 AMQ Streams 2.1에서 실행됩니다.
AMQ Streams는 AMQ Streams 사용자 정의 리소스의 스키마를 업데이트하는 v1beta2 API 버전을 지원합니다. 이전 API 버전은 더 이상 사용되지 않습니다. AMQ Streams 1.7로 업그레이드한 후 AMQ Streams 1.8 이상으로 업그레이드하기 전에 API 버전 v1beta2 를 사용하도록 사용자 정의 리소스를 업그레이드해야 합니다.
자세한 내용은 Debezium 사용자 가이드를 참조하십시오.
3.3. Debezium 설치 옵션
OpenShift에 AMQ Streams를 사용하여 Debezium을 설치하거나 Red Hat Enterprise Linux에 설치할 수 있습니다.
3.4. 새로운 Debezium 기능
Debezium 1.9.5에는 다음 업데이트가 포함되어 있습니다.
3.4.1. Debezium 1.9.5의 일반 가용성으로 승격된 기능
다음 기능은 2022.Q3 Debezium 릴리스의 기술 프리뷰에서 일반 가용성으로 승격됩니다.
- 임시 및 증분 및 스냅샷
- 이전에 스냅샷을 캡처한 테이블의 스냅샷을 다시 실행하는 메커니즘을 제공합니다.
- Debezium Oracle connector
이제 LogMiner를 사용하도록 구성된 데이터베이스에서 Oracle Database용 커넥터가 완전히 지원됩니다. 이번 Debezium Oracle 커넥터 릴리스에는 다음 업데이트가 포함되어 있습니다.
-
DBZ-3317
decimal.handling.mode속성을 설명하는 설명서가 이제 다른 Debezium 커넥터에 대한 유사한 문서와 일치합니다. - DBZ-4404 연결기에서 신호 사용을 지원하여 Oracle 버전의 12c 이전 버전에서 애드혹 스냅샷을 트리거합니다.
- DBZ-4436/ DBZ-4883 배포 문서에서는 이제 Oracle JDBC 드라이버를 Maven 아티팩트로 가져오는 방법을 설명합니다.
- DBZ-4494 설명서에서는 Oracle connector LogMiner 사용자에 대한 데이터베이스 권한을 설정하는 방법을 설명합니다.
- DBZ-4536 Oracle 커넥터 오류 처리기의 유연성을 증가시켜 광업 세션 중에 발생하는 오류를 다시 시도합니다.
- DBZ-4595 Oracle 커넥터에서 'ROWID' 데이터 유형을 지원합니다.
- Oracle 커넥터의 DBZ-4963 Introduce log.mining.session.max.ms 설정 옵션
- DBZ-5005 LogMiner 배치 크기를 조정할 때 이제 새 크기는 기본 크기가 아닌 현재 배치 크기를 기반으로 합니다.
- DBZ-5119 사용자는 하트비트 이벤트를 발송하도록 커넥터를 구성하여 연장된 기간 동안 변경 사항이 발생하지 않는 테이블에 커넥터 오프셋을 동기화 상태로 유지할 수 있습니다.
- DBZ-5225 LogMiner 이벤트 SCN이 이제 Oracle 변경 이벤트 레코드에 포함되어 1 간격 동안 커넥터가 내보내는 모든 이벤트가 가장 오래된 진행 중인 트랜잭션의 동일한 저조마크 SCN 값을 사용하는 상황을 방지합니다.
- DBZ-5256 스냅샷을 시작하는 동안 커넥터 시작 중에 부적절하게 삭제된 아카이브 로그를 찾을 수 없는 경우 오류를 방지하기 위해 Oracle 커넥터는 더 이상 불완전한 트랜잭션의 진행 상황을 확인하기 위한 기본 설정을 수행하지 않습니다.
-
DBZ-5399
signal.data.collection속성에 대한 업데이트 설명서로 플러그형 데이터베이스 환경에서 속성 값을 루트 데이터베이스의 이름으로 설정해야 합니다.
기술 프리뷰 중에 도입된 Oracle 커넥터 기능 목록은 2022.Q1 릴리스 노트를 참조하십시오.
-
DBZ-3317
- Outbox 이벤트 라우터
- 여러 (micro) 서비스 간에 데이터를 안전하고 안정적으로 교환하기 위해 인 박스 패턴을 지원하는 단일 메시지 변환(SMT)입니다.
- Debezium 커넥터로 신호 전송
- 통합 신호 메커니즘은 커넥터의 동작을 수정하거나 커넥터를 트리거하여 테이블의 애드혹 증분 스냅샷 시작과 같은 일회성 작업을 수행하는 방법을 제공합니다.
3.4.2. 최근 Debezium 기능 업데이트
- 2022년 업데이트Q3
다음 목록에는 2022.Q3 Debezium에 포함된 변경 사항에 대한 정보가 나와 있습니다.
- 기본적으로 DBZ-3762 MySQL 커넥터는 DDL 이벤트의 인라인 주석을 데이터베이스 기록에 더 이상 전파하지 않습니다.
- https://issues.redhat.com/browse/DBZ-4351[DBZ-4351 마지막 시작 이후 DML 생성/업데이트/삭제 이벤트 커넥터 출력 수를 모니터링하기 위한 메트릭 추가
- DBZ-4415 MongoDB 5 이상에서 MongoDB 커넥터 사용 지원 제거
- DBZ-4451 커넥터는 이제 이름이 변경된 테이블의 기록을 올바르게 복구할 수 있습니다.
- DBZ-4472 Connectors 로그에서 이벤트의 소스 파티션에 대한 정보를 기록합니다.
- 이제 여러 파티션에서 커넥터의 DBZ-4478 메트릭을 검색할 수 있습니다.
-
DBZ-4518
database.history.kafka.query.timeout.ms속성을 설정하여 KAFKA_QUERY_TIMEOUT을 구성할 수 있습니다. - DBZ-4541 MySQL 및 Oracle 커넥터가 시작하기 전에 해당 메트릭을 성공적으로 등록해야 합니다.
- DBZ-4547 MySQL 커넥터가 SaaS 환경에 기록 항목을 성공적으로 생성할 수 있습니다.
- DBZ-4600 MongoDB 커넥터를 outbox 이벤트 라우터와 함께 사용할 때 바이너리 페이로드를 디코딩하도록 구성할 수 있습니다.
- DBZ-4730 커넥터가 10진수 문자열 모드로 구성된 경우 이제 과학적인 지수 표기법 대신 일반 문자열 값을 예상합니다.
- DBZ-4809 작업 ID를 추가하고 다중 파티션 커넥터의 로깅 컨텍스트에 파티션을 추가합니다.
- DBZ-4823 MySQL 커넥터는 더 이상 제외된 테이블의 tableId에 대한 null 값을 기록하지 않습니다.
- DBZ-4832 MySQL 커넥터가 시스템 변수에서 더 이상 truststore 및 키 저장소 매개변수를 가져옵니다.
-
DBZ-4834 증분 스냅샷에 포함 목록에 추가된 테이블이 올바르게
포함됩니다. - DBZ-4861 PostgreSQL 커넥터는 스냅샷 이벤트를 기록할 때 스키마 정보를 제공합니다.
- DBZ-4948 PostgreSQL 커넥터는 이제 네트워크 예외로 종료되는 연결을 다시 시도합니다.
3.4.3. Debezium 2022.Q1 업데이트
이전 Debezium 릴리스에 포함된 기능 목록은 2022.Q1 릴리스 노트 를 참조하십시오.
3.5. 기술 프리뷰 기능
기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. Red Hat은 프로덕션 환경에서 기술 프리뷰 기능을 구현하는 것을 권장하지 않습니다. 기술 프리뷰 기능을 통해 향후 제품 개선 사항에 빠르게 액세스하고 개발 과정에서 기능 테스트와 피드백을 제공할 수 있습니다. 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
Debezium에는 다음과 같은 기술 프리뷰 기능이 포함되어 있습니다.
- MongoDB 커넥터의 애드혹 및 증분 스냅샷
- 이전에 스냅샷을 캡처한 테이블의 스냅샷을 다시 실행하는 메커니즘을 제공합니다.
- CloudEvents converter
-
CloudEvents 사양을 준수하는 변경 이벤트 레코드를 내보냅니다. CloudEvents 변경 이벤트는 JSON 또는 Avro일 수 있으며 각 바위 유형은
데이터형식으로 JSON 또는 Avro를 지원합니다. CloudEvents 변경 이벤트는 Avro 인코딩 변경 이벤트를 지원하는 경우 JSON 또는 Avro가 될 수 있으며 각 검증 유형은데이터형식으로 JSON 또는 Avro를 지원합니다. - 콘텐츠 기반 라우팅
- 이벤트 콘텐츠에 따라 선택한 이벤트를 특정 주제로 되돌리기 위한 메커니즘을 제공합니다.
- 사용자 정의 개발 컨버터
- 기본 데이터 유형 변환이 요구 사항을 충족하지 않는 경우 커넥터와 함께 사용할 사용자 지정 변환기를 만들 수 있습니다.
- 필터 SMT
- 커넥터가 브로커로 보낼 레코드 서브 세트를 지정할 수 있습니다.
- MongoDB 커넥터 신호
- 커넥터의 동작을 수정하거나 테이블의 애드혹 스냅샷 시작과 같은 일회성 작업을 트리거하기 위한 메커니즘을 제공합니다.
- Oracle 커넥터와 함께
BLOB,및 IRQLOB 데이터 유형 사용CLOB - Oracle 커넥터는 Oracle 대규모 개체 유형을 사용할 수 있습니다.
3.6. 더 이상 사용되지 않는 Debezium 기능
- PostgreSQL
truncate.handling.mode속성 -
Debezium PostgreSQL 커넥터의
truncate.handling.mode속성은 이 릴리스에서 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다(DBZ-4419). 해당 위치에서skipped.operations속성을 사용합니다. - 커넥터 스냅샷 및 스트리밍 메트릭에 대한 MonitoredTables 옵션
-
Debezium 커넥터 메트릭에 대한
MonitoredTables옵션은 이 릴리스에서 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 해당 위치에서CapturedTables지표를 사용합니다.
4장. Camel K 릴리스 노트
Camel K는 OpenShift에서 기본적으로 실행되는 Apache Camel K를 기반으로 하는 경량 통합 프레임워크입니다. Camel K는 서버리스 및 마이크로 서비스 아키텍처를 위해 특별히 설계되었습니다. Camel K를 사용하면 OpenShift에서 직접 Camel DSL(Domain Specific Language)으로 작성된 통합 코드를 즉시 실행할 수 있습니다.
Camel K를 OpenShift Serverless 및 Knative와 함께 사용하면 컨테이너가 필요에 따라 자동으로 생성되고 부하가 0으로 자동 스케일링됩니다. 이렇게 하면 서버 프로비저닝 및 유지 관리 오버헤드가 제거되어 애플리케이션 개발에 집중할 수 있습니다.
Camel K를 OpenShift Serverless 및 Knative Eventing과 함께 사용하면 시스템의 구성 요소가 서버리스 애플리케이션의 이벤트 중심 아키텍처에서 통신하는 방법을 관리할 수 있습니다. 이를 통해 이벤트 생산자와 소비자 간의 분리된 관계를 통해 게시/구독 또는 이벤트 스트리밍 모델을 사용하여 유연성을 높일 수 있습니다.
4.1. Camel K 기능
Camel K는 다음과 같은 주요 기능과 클라우드 네이티브 통합을 제공합니다.
- 자동 스케일링 및 scale-to-zero를 위한 Knative Serving
- 이벤트 중심 아키텍처의 Knative Eventing
- 기본적으로 Quarkus 런타임을 사용한 성능 최적화
- Java 또는 YAML DSL으로 작성된 Camel 통합
- OpenShift에서 Prometheus를 사용하여 통합 모니터링
- 빠른 시작 튜토리얼
- AWS, Jira, CloudEvent와 같은 외부 시스템에 대한 커넥터에 대한 Kamelet Catalog
- Timer 및 Log Kamelets 지원
- Camel K Operator 및 Pod의 미터링
- IBM MQ 커넥터 지원
- Oracle 19 데이터베이스 지원
4.2. 지원되는 구성
Camel K가 지원되는 구성, 표준 및 구성 요소에 대한 자세한 내용은 다음 고객 포털 문서를 참조하십시오.
4.2.1. Camel K Operator 메타데이터
Camel K에는 OpenShift OperatorHub에서 Camel K를 설치하는 데 사용되는 업데이트된 Operator 메타데이터가 포함되어 있습니다. 이 Operator 메타데이터에는 OpenShift Container Platform 4.6 이상에서 사용하도록 설계된 릴리스 패키지에 대한 Operator 번들 형식이 포함되어 있습니다.
추가 리소스
4.3. 중요 참고 사항
Red Hat Integration - Camel K 릴리스의 중요한 노트:
- ROSA에서 Camel K 실행 지원
- Camel K가 AWS(ROSA)에서 Red Hat OpenShift Service on AWS에서 실행되도록 지원됩니다.
- Camel K에서 IBM MQ 소스 커넥터 지원
- IBM MQ 소스 커넥터 kamelet이 최신 Camel K에 추가되었습니다.
- Oracle 19 지원
- 자세한 내용은 Camel K에서 Oracle 19가 지원됩니다. https://access.redhat.com/articles/6241991
- Windows 머신에서 Camel K CLI 명령 사용
-
Windows 머신에서 kamel cli 명령을 사용하는 경우 명령의
리소스옵션의 경로는 linux 형식을 사용해야 합니다. 예를 들면 다음과 같습니다.
//Windows path kamel run file.groovy --dev --resource file:C:\user\folder\tempfile@/tmp/file.txt //Must be converted to kamel run file.groovy --dev --resource file:C:/user/folder/tempfile@/tmp/file.txt
- Red Hat Integration - Camel K Operator 이미지 크기 증가
- Red Hat Integration - Camel K 1.8.1.redhat-00024 이후 Camel K Operator 이미지의 크기가 두 배로 증가합니다.
- YAML DSL에서 허용되는 Camel 케이스 알림
-
Red Hat Integration - Camel K 1.8.1.redhat-00024 이후 YAML DSL은 카본 표기법(예:
setBody)과 핑크 케이스(예:set-body)를 허용합니다. 스키마는 Camel 버전 내에서 변경될 수 있으므로 구문에는 몇 가지 차이점이 있습니다.
4.4. 지원되는 Camel Quarkus 확장
이 섹션에는 Camel K 애플리케이션 내에서만 사용되는 Camel K 릴리스에 지원되는 Camel Quarkus 확장 기능이 나와 있습니다.
이러한 Camel Quarkus 확장은 Camel K 애플리케이션 내부에서만 지원됩니다. 이러한 Camel Quarkus 확장은 Camel K를 제외하고 독립 실행형 모드에서 사용할 수 없습니다.
4.4.1. 지원되는 Camel Quarkus 커넥터 확장
다음 표에서는 Camel K 애플리케이션 내에서만 사용되는 Camel K 릴리스에 지원되는 Camel Quarkus 커넥터 확장을 보여줍니다.
| 이름 | 패키지 |
|---|---|
| AWS 2ECDHE |
|
| AWS 2 Lambda |
|
| AWS 2 S3 Storage Service |
|
| AWS 2 SNS(Simple Notification System) |
|
| AWS 2 SQS(Simple Queue Service) |
|
| Cassandra CQL |
|
| 파일 |
|
| FTP |
|
| FTPS |
|
| SFTP |
|
| HTTP |
|
| JMS |
|
| Kafka |
|
| Kamelets |
|
| 메트릭 |
|
| MongoDB |
|
| Salesforce |
|
| SQL |
|
| timer |
|
4.4.2. 지원되는 Camel Quarkus 데이터 형식 확장
다음 표에서는 Camel K 애플리케이션 내에서만 사용되는 Camel K 릴리스에 지원되는 Camel Quarkus 데이터 형식 확장 기능을 보여줍니다.
| 이름 | 패키지 |
|---|---|
| Avro |
|
| Bindy (csv의 경우) |
|
| gson |
|
| JSON Jackson |
|
| Jackson Avro |
|
4.4.3. 지원되는 Camel Quarkus 언어 확장
이 릴리스에서 Camel K는 다음과 같은 Camel Quarkus 언어 확장을 지원합니다( Camel 표현식 및 서술자에서 사용).
- 상수
- ExchangeProperty
- 파일
- header
- Ref
- simple
- tokenize
- JsonPath
4.4.4. 지원되는 Camel K 특성
이 릴리스에서 Camel K는 다음과 같은 Camel K 특성을 지원합니다.
- 빌더 특성
- Camel 특성
- 컨테이너 특성
- 종속 항목 특성
- 배포자 특성
- 배포 특성
- 환경 특성
- JVM 특성
- Kamelets 특성
- 소유자 특성
- 플랫폼 특성
- pull Secret 특성
- Prometheus 특성
- Quarkus 특성
- 경로 특성
- 서비스 특성
- Error Handler 특성
4.5. 지원되는 Kamelets
다음 표에는 Camel K Operator를 설치할 때 OpenShift 리소스로 제공되는 kamelets가 나열되어 있습니다.
이러한 kamelets에 대한 자세한 내용은 https://github.com/openshift-integration/kamelet-catalog/tree/kamelet-catalog-1.8로 이동하십시오.
kamelets를 사용하여 애플리케이션 및 서비스를 연결하는 방법에 대한 자세한 내용은 https://access.redhat.com/documentation/en-us/red_hat_integration/2022.q3/html-single/integrating_applications_with_kamelets 을 참조하십시오.
기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다.
이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview 을 참조하십시오.
표 4.1. Camel K operator와 함께 제공되는 Kamelets
| Kamelet | 파일 이름 | 유형(Sink, Source, Action) |
|---|---|---|
| Ceph 싱크 |
| 싱크 |
| Ceph 소스 |
| 소스 |
| Jira Add Comment sink |
| 싱크 |
| Jira Add Issue sink |
| 싱크 |
| Jira Transition Issue sink |
| 싱크 |
| Jira Update Issue sink |
| 싱크 |
| Avro Deserialize 작업 |
| 작업(데이터 변환) |
| Avro Serialize 작업 |
| 작업(데이터 변환) |
| AWSECDHE 싱크 |
| 싱크 |
| AWS Redshift sink |
| 싱크 |
| AWS 2ECDHE sink |
| 싱크 |
| AWS 2ECDHE 소스 |
| 소스 |
| AWS 2 Lambda sink |
| 싱크 |
| AWS 2 Simple Notification System sink |
| 싱크 |
| AWS 2 Simple Queue Service 싱크 |
| 싱크 |
| AWS 2 Simple Queue Service 소스 |
| 소스 |
| AWS 2 Simple Queue Service FIFO sink |
| 싱크 |
| AWS 2 S3 싱크 |
| 싱크 |
| AWS 2 S3 소스 |
| 소스 |
| AWS 2 S3 S3 Streaming Upload sink |
| 싱크 |
| Azure Storage Blob 소스 (기술 프리뷰) |
| 소스 |
| Azure Storage Blob Sink (기술 프리뷰) |
| 싱크 |
| Azure 스토리지 대기열 소스 (기술 프리뷰) |
| 소스 |
| Azure Storage Queue Sink (기술 프리뷰) |
| 싱크 |
| CloudEvent 싱크 |
| 싱크 |
| CloudEvent 소스 |
| 소스 |
| 필드 추출 작업 |
| 동작 |
| FTP 싱크 |
| 싱크 |
| FTP 소스 |
| 소스 |
| 헤더 키 필터 작업이 있습니다. |
| 작업(데이터 변환) |
| Hoist Field 작업 |
| 동작 |
| HTTP 싱크 |
| 싱크 |
| 삽입 필드 작업 |
| 작업(데이터 변환) |
| 헤더 작업 삽입 |
| 작업(데이터 변환) |
| mbstone 필터 작업이란 무엇입니까? |
| 작업(데이터 변환) |
| Jira 소스 |
| 소스 |
| JMS 싱크 |
| 싱크 |
| JMS 소스 |
| 소스 |
| JMS IBM MQ 싱크 |
| 싱크 |
| JMS IBM MQ 소스 |
| 소스 |
| JSON Deserialize 작업 |
| 작업(데이터 변환) |
| JSON Serialize 작업 |
| 작업(데이터 변환) |
| Kafka 싱크 |
| 싱크 |
| Kafka 소스 |
| 소스 |
| Kafka 주제 이름 필터 작업 |
| 작업(데이터 변환) |
| 로그 싱크(개발 및 테스트 목적으로) |
| 싱크 |
| MariaDB 싱크 |
| 싱크 |
| 마스크 필드 작업 |
| 작업(데이터 변환) |
| TimeStamp 라우터 작업 메시지 |
| 작업(라우터) |
| MongoDB 싱크 |
| 싱크 |
| MongoDB 소스 |
| 소스 |
| MySQL 싱크 |
| 싱크 |
| PostgreSQL 싱크 |
| 싱크 |
| 서술자 필터 작업 |
| 작업(라우터/filter) |
| protobuf Deserialize 작업 |
| 작업(데이터 변환) |
| protobuf Serialize 작업 |
| 작업(데이터 변환) |
| regex 라우터 작업 |
| 작업(라우터) |
| 필드 작업 교체 |
| 동작 |
| triggerbinding create |
| 싱크 |
| trigger trigger delete |
| 싱크 |
| CloudEvent 업데이트 |
| 싱크 |
| SFTP 싱크 |
| 싱크 |
| SFTP 소스 |
| 소스 |
| Slack 소스 |
| 소스 |
| SQL Server 데이터베이스 싱크 |
| 싱크 |
| Telegram 소스 |
| 소스 |
| throttle 작업 |
| 동작 |
| 타이머 소스(개발 및 테스트용) |
| 소스 |
| 타임스탬프 라우터 작업 |
| 작업(라우터) |
| 키 동작의 값 |
| 작업(데이터 변환) |
4.6. Camel K 알려진 문제
Camel K에는 다음과 같은 알려진 문제가 적용됩니다.
ENT#188-15306 - Camel K와 Fuse Online 간의 CRD 충돌
이전 버전의 Camel K가 동일한 OpenShift 클러스터에 설치된 경우 사용자 정의 리소스 정의와 충돌하여 OperatorHub에서 Camel K를 설치할 수 없습니다. 예를 들어 이전에 Fuse Online에서 사용 가능한 Camel K의 이전 버전이 포함되어 있습니다.
해결 방법으로 Camel K를 다른 OpenShift 클러스터에 설치하거나 Camel K를 설치하기 전에 다음 명령을 입력합니다.
$ oc get crds -l app=camel-k -o json | oc delete -f -
ENT>-<-15858 - 로컬 또는 컨테이너 이미지로 Camel 통합을 패키징 및 실행할 수 있는 기능 추가
Camel 통합의 패키징 및 실행 중 또는 로컬로 또는 컨테이너 이미지가 현재 Camel K에 포함되어 있지 않으며 커뮤니티 전용 지원이 제공됩니다.
자세한 내용은 Apache Camel K 커뮤니티를 참조하십시오.
ENT#188-16477 - 제품화된 빌드를 통해 jira 클라이언트 종속성을 다운로드할 수 없음
Camel K Operator를 사용하는 경우 통합에서 jira 클라이언트의 종속성을 찾을 수 없습니다. 작업은 atlassian 리포지토리를 수동으로 추가하는 것입니다.
apiVersion: camel.apache.org/v1
kind: IntegrationPlatform
metadata:
labels:
app: camel-k
name: camel-k
spec:
configuration:
- type: repository
value: <atlassian repo here>ENT#188-17033 - Camel-K ElasticsearchComponent 옵션 무시
Elasticsearch 구성 요소를 구성할 때 Camel K ElasticsearchComponent 옵션이 무시됩니다. 작업은 Elasticsearch 구성 요소를 사용할 때 getContext().setAutowiredEnabled(false) 를 추가하는 것입니다.
ENT#188-17061 - 관리자가 아닌 사용자와 mongo-db-source kamelet 경로를 실행할 수 없음 - null로 인해 mongodb-source-1 라우팅을 시작하지 못했습니다.
관리자 이외의 사용자 인증 정보를 사용하여 mongo-db-source kamelet 경로를 실행할 수 없습니다. 구성 요소의 일부에는 관리자 자격 증명이 필요하므로 관리자가 아닌 사용자로 경로를 실행할 수 없습니다.
4.7. Camel K 수정 문제
다음 섹션에는 Red Hat Integration - Camel K 1.8.1.redhat-00024에서 해결된 문제가 나열되어 있습니다.
4.7.1. Camel K 1.8.1.redhat-00024의 기능 요청
다음 표에는 Camel K 1.8.1.redhat-00024의 기능 요청이 나열되어 있습니다.
표 4.2. Camel K 1.8.1.redhat-00024 기능 개선
| 문제 | 설명 |
|---|---|
| Camel K - Red Hat Ceph Storage Object(S3)용 Kamelet | |
| JIRA Sink kamelets 생성 |
4.7.2. Camel K 1.8.1.redhat-00024의 개선 사항
다음 표에는 Camel K 1.8.1.redhat-00024의 개선 사항이 나와 있습니다.
표 4.3. Camel K 1.8.1.redhat-00024 기능 개선
| 문제 | 설명 |
|---|---|
| Camel K 제품화 버전을 실제 제품 버전과 동기화 | |
| Camel-K Operator를 ALL-NAMESPACES로 마이그레이션하는 것이 좋습니다. | |
| Operator를 1.x 및 1.6.x 채널에 게시 | |
| camel-kamelet-utils에 대한 단위 테스트 추가 |
4.7.3. Camel K 1.8.1.redhat-00024에서 해결된 버그
다음 표에는 Camel K 1.8.1.redhat-00024의 해결된 버그가 나열되어 있습니다.
표 4.4. Camel K 1.8.1.redhat-00024 문제 해결 버그
| 문제 | 설명 |
|---|---|
| CVE-2021-22135 elasticsearch: Elasticsearch 제안의 문서 공개 취약점 [rhint-camel-k-1] | |
| CVE-2021-29427 gradle: 리포지토리 콘텐츠 필터는 Settings plugin management [rhint-camel-k-1]에서 작동하지 않습니다. | |
| CVE-2021-28169 jetty: ConcatServlet 및>-<Filter에 대한 요청은 WEB-INF 디렉토리 [rhint-camel-k-1] 내에서 보호되는 리소스에 액세스할 수 있습니다. | |
| CVE-2021-34428 jetty: SessionListener가 로그 아웃이 무효화되지 않도록 할 수 있습니다 [rhint-camel-k-1] | |
| CVE-2021-3642 wildfly-elytron: possible timing attack in ScramServer [rhint-camel-k-1] | |
| Kamelet has-header-filter-action은 업스트림에서 다릅니다. | |
| Camel K 이미지는 golang 코드에 대한 CHAP 매니페스트를 생성하지 않음 | |
| Camel K 1.6.0 소스에는 여러 결함 (기술 검토 + 잘못된 버전)이 포함되어 있습니다. | |
| AWS Redshift Sink kamelet dependency mvn:com.amazon.redshift:redshift-jdbc42:2.1.0.5 누락됨 | |
| <!- Source kamelet: notifyForFields isnt very usable | |
| AWS S3 Streaming upload kamelet: streamingUploadMode는 구성 불가능합니다. | |
| CVE-2022-30973 tika-core: CVE-2022-30126에 대한 불완전한 수정 사항 [rhint-camel-k-1] | |
| 채널 1.8.x로 업그레이드하면 "2 대체 체인이 발견되었습니다". | |
| 작업 kamelet 테스트가 Unsupported 필드에서 실패: unmarshalTypeName | |
| kamel install을 사용할 때 기본 maven 리포지토리가 재정의됩니다. | |
| Camel-K 1.8.1.CK1의 정렬되지 않은 버전 | |
| 기본 모드를 사용하여 kameletBinding을 실행할 수 없음 | |
| MRRC의 잘못된 snakeyaml 종속성 | |
| Elasticsearch 소스 Kamelet이 기본 인증에서 작동하지 않음 |
5장. Camel Spring Boot 릴리스 노트
5.1. Camel Spring Boot 기능
이번 Camel Spring Boot 릴리스에서는 많은 Camel 구성 요소에 대한 Camel 및 시작자의 자동 구성을 제공하는 Spring Boot에 대한 Camel 지원이 도입되었습니다. Spring 컨텍스트에서 사용 가능한 Camel 경로의 자동 구성 자동 구성 및 Camel 유틸리티(예: 생산자 템플릿, 소비자 템플릿, 유형 변환기 등)를 빈으로 등록합니다.
5.2. 지원되는 플랫폼, 구성, 데이터베이스 및 확장
- Camel Spring Boot 버전 3.14에서 지원되는 플랫폼, 구성 및 데이터베이스에 대한 자세한 내용은 고객 포털의 지원 구성 페이지를 참조하십시오(로그인 필요).
- Red Hat Camel Spring Boot 확장 목록은 Camel Spring Boot 참조.(로그인 필수)를 참조하십시오.
5.3. 중요 참고 사항
Camel Spring Boot 구성 요소용 문서는 Camel Spring Boot 참조 에서 확인할 수 있습니다. Camel Spring Boot 구성 요소에 대한 추가 문서는 이 참조 가이드에 추가됩니다.
5.4. 추가 리소스
6장. 서비스 레지스트리 릴리스 노트
Service Registry 2.3은 정식 릴리스로 제공됩니다. Service Registry는 표준 이벤트 스키마 및 API 설계를 위한 데이터 저장소이며 Apicurio Registry 오픈 소스 커뮤니티 프로젝트를 기반으로 합니다.
서비스 레지스트리를 사용하여 웹 콘솔, REST API, Maven 플러그인 또는 Java 클라이언트를 사용하여 데이터 구조를 관리하고 공유할 수 있습니다. 예를 들어 클라이언트 애플리케이션은 재배포 없이 최신 스키마 업데이트를 Service Registry에 동적으로 내보내거나 가져올 수 있습니다. 서비스 레지스트리를 사용하여 레지스트리 콘텐츠가 진행되는 방식을 제어하는 선택적 규칙을 생성할 수도 있습니다. 이러한 규칙에는 콘텐츠 검증 및 스키마 또는 API 버전의 이전 또는 호환성이 포함됩니다.
6.1. 서비스 레지스트리 설치 옵션
다음 데이터 스토리지 옵션 중 하나를 사용하여 OpenShift에 서비스 레지스트리를 설치할 수 있습니다.
- PostgreSQL 데이터베이스
- AMQ Streams
자세한 내용은 OpenShift에 서비스 레지스트리 설치 및 배포를 참조하십시오.
6.2. 서비스 레지스트리 플랫폼 구성 요소 버전
Service Registry 2.3은 다음 버전을 지원합니다.
- OpenShift Container Platform 4.6 - 4.11
- PostgreSQL 12 - 15
- AMQ Streams 2.1, 2.2
- Red Hat Single Sign-On (RH-SSO) 7.6
- OpenJDK 11
6.3. 서비스 레지스트리의 새로운 기능
- 서비스 레지스트리 인증 및 권한 부여
- 역할 기반 권한 확대 - 이전처럼 서비스 레지스트리 및 RH-SSO에서 역할 기반 인증을 구성할 수 있습니다. Service Registry 애플리케이션에서 역할 기반 권한 부여가 활성화된 경우 웹 콘솔 또는 REST API를 사용하여 액세스를 제어할 수 있습니다.
- 소유자 기반 권한 부여 확장 - 이제 artifact-group 수준에서 소유자 기반 권한 부여 옵션과 아티팩트 수준에서 이전과 같이 아티팩트 수준을 활성화할 수 있습니다.
- 익명 읽기 액세스 권한 - 익명 읽기 액세스 옵션이 활성화되면 인증되지 않은 (anonymous) 사용자는 모든 아티팩트에 대한 읽기 전용 액세스 권한을 갖습니다.
- 인증된 읽기 액세스 권한이 - 인증된 읽기 액세스 옵션을 활성화하면 사용자에게 서비스 레지스트리 역할이 부여되지 않은 경우에도 인증된 사용자에게 모든 아티팩트에 대한 읽기 전용 액세스 권한이 있습니다.
- HTTP 기본 인증 - 이 옵션이 활성화되면 사용자 또는 클라이언트 애플리케이션에서 HTTP 기본 인증을 사용하여 서비스 레지스트리에 액세스할 수 있습니다.
- Kafka 스토리지의 사용자 지정 TLS 인증서 - 스토리지에 Kafka를 사용할 때 이제 사용자 지정 TLS 인증서를 사용하여 Kafka에 안전하게 연결할 수 있습니다.
- 변경 아티팩트 소유자 - 관리자 또는 아티팩트 소유자는 REST API 또는 웹 콘솔을 사용하여 특정 스키마 또는 API 아티팩트의 소유자를 변경할 수 있습니다.
- 운영 및 모니터링 개선 사항
- 감사 로깅 - 서비스 레지스트리 데이터를 변경하면 감사 로그 항목이 생성됩니다.
- Prometheus 지표 - 모니터링에 사용할 수 있도록 지표는 Prometheus 형식으로 표시됩니다.
- Sentry integration - Sentry 1.x와의 선택적 통합입니다.
- Operator 개선 사항
-
사용자 지정 환경 변수 -
ApicurioRegistry사용자 정의 리소스에서 임의의 환경 변수를 설정할 수 있습니다. 이러한 변수는Deployment리소스를 사용하여 서비스 레지스트리에 적용됩니다. - PodDisruptionBudget 지원 - 이 리소스는 최대 하나의 복제본을 사용할 수 없도록 자동으로 생성됩니다.
- NetworkPolicy 지원 - Service Registry Operator는 포트 8080에 대한 수신 네트워크 정책을 생성합니다.
-
사용자 지정 환경 변수 -
- 아티팩트 참조
- 아티팩트는 이제 서비스 레지스트리의 다른 아티팩트를 참조할 수 있습니다. 지원되는 여러 아티팩트 유형에서는 한 파일에서 다른 파일로의 참조를 허용합니다. 예를 들어, OpenAPI 파일에는 다른 파일에 정의된 JSON 스키마를 참조하는 속성이 포함된 데이터 유형이 있을 수 있습니다. 일반적으로 이러한 참조에는 아티팩트 유형과 관련된 구문이 있습니다. 이제 REST API를 사용하여 서비스 레지스트리에 등록된 아티팩트에 대한 유형별 참조를 확인할 수 있도록 매핑을 생성할 수 있습니다.
- 서비스 레지스트리 인스턴스의 동적 글로벌 구성
- Service Registry에는 일반적으로 배포 시 설정되는 많은 글로벌 구성 옵션이 있습니다. 이제 서비스 레지스트리 인스턴스에 대해 런타임 시 이러한 옵션의 하위 집합도 구성할 수 있습니다. REST API 또는 웹 콘솔을 사용하여 런타임 시 이러한 옵션을 관리할 수 있습니다. 예를 들어 이러한 옵션에는 소유자 기반 권한, 익명 읽기 액세스 및 인증된 읽기 액세스 권한이 포함됩니다.
- URL에서 아티팩트 업로드
- 파일에서 이미 지원되는 업로드 외에도 URL에서 스키마 또는 API 아티팩트를 업로드할 수 있습니다. 서비스 레지스트리 웹 콘솔 또는 REST API를 사용하여 업로드할 수 있습니다.
- 웹 콘솔 개선 사항
-
서비스 레지스트리 데이터의 가져오기 및 내보내기 - 관리자는 이제 웹 콘솔을 사용하여 이전과 마찬가지로 REST API를 사용하여
.zip파일의 모든 서비스 레지스트리 데이터를 내보낼 수 있습니다. 그런 다음 이.zip파일을 다른 서비스 레지스트리 배포로 가져올 수 있습니다. - 서비스 레지스트리의 아티팩트에 대한 전체 지원 에는 이름, 설명, 라벨(simple keyword list), 속성(이름/값 쌍)과 같은 사용자 정의 및 편집 가능한 메타데이터가 있을 수 있습니다. 이전과 같이 REST API를 사용하는 것 외에도 속성 표시 및 편집을 지원하도록 웹 콘솔이 개선되었습니다.
- AsyncAPI 아티팩트에 대한 문서 생성 - AsyncAPI 아티팩트는 아티팩트 세부 정보 페이지의 문서 탭을 지원합니다. 이 탭에는 AsyncAPI 콘텐츠에서 생성된 사람이 읽을 수 있는 문서가 표시됩니다. 이 기능은 이전에는 OpenAPI 아티팩트에서만 사용할 수 있었습니다.
- JSON 형식의 아티팩트 유형에 대해 JSON을 YAML로 표시하는 옵션 - 아티팩트 세부 정보 페이지의 콘텐츠 탭에서 JSON과 YAML 형식 간 전환을 지원합니다.
-
서비스 레지스트리 데이터의 가져오기 및 내보내기 - 관리자는 이제 웹 콘솔을 사용하여 이전과 마찬가지로 REST API를 사용하여
- REST API 개선 사항
-
개선된 /users/me 끝점 - 서비스 레지스트리 코어 REST API에는 현재 인증된 사용자에 대한 정보를 반환하는
/users/me엔드포인트가 있습니다. 이 끝점을 사용하여 사용자의 할당된 역할을 검사하고 해당 기능을 확인할 수 있습니다. - Confluent Compatibility API 지원 - Service Registry에서 Confluent Schema Registry API 버전 6을 지원합니다.
-
개선된 /users/me 끝점 - 서비스 레지스트리 코어 REST API에는 현재 인증된 사용자에 대한 정보를 반환하는
서비스 레지스트리 사용자 문서 및 예제
버전 2.3에서 사용할 수 있는 새로운 기능으로 문서 라이브러리가 업데이트되었습니다.
오픈 소스 데모 애플리케이션도 업데이트되었습니다.
6.4. Service Registry 더 이상 사용되지 않는 기능
- 서비스 레지스트리 버전 1.x
- Service Registry 버전 1.x는 버전 2.0에서 더 이상 사용되지 않으며 더 이상 완전히 지원되지 않습니다. 자세한 내용은 Red Hat Application Services 제품 업데이트 및 지원 정책을 참조하십시오.
6.5. 서비스 레지스트리 배포 업그레이드 및 마이그레이션
6.5.1. OpenShift에서 서비스 레지스트리 2.0 배포 업그레이드
OpenShift 4.9에서 OpenShift 4.11에서 Service Registry 2.3.0으로 Service Registry 2.0.3을 업그레이드할 수 있습니다. 서비스 레지스트리와 OpenShift 버전을 모두 업그레이드하고 OpenShift를 한 번에 하나의 마이너 버전으로 업그레이드해야 합니다.
사전 요구 사항
- OpenShift 4.9에 Service Registry 2.0.3이 설치되어 있습니다.
절차
- OpenShift Container Platform 웹 콘솔에서 관리 및 클러스터 설정을 클릭합니다.
-
Channel 필드 옆에 있는 연필 아이콘을 클릭하고 다음 마이너
후보버전을 선택합니다(예:stable-4.9에서candidate-4.10으로 변경). - 저장 및 업데이트를 클릭하고 업그레이드가 완료될 때까지 기다립니다.
-
OpenShift 버전이 4.11 미만이면 2단계와 3단계를 반복하고
candidate-4.11을 선택합니다. - Operators > 설치된 Operators > Red Hat Integration - Service Registry 를 클릭합니다.
-
업데이트 채널이
2.x로 설정되어 있는지 확인합니다. -
업데이트 승인이 자동으로 설정된 경우
2.x채널이 설정된 직후 업그레이드가 승인되고 설치되어야 합니다. - 업데이트 승인이 수동으로 설정된 경우 설치를 클릭합니다.
- Operator가 배포되고 Service Registry Pod가 배포될 때까지 기다립니다.
- 서비스 레지스트리 시스템이 실행 중인지 확인합니다.
추가 리소스
- OpenShift Container Platform 웹 콘솔에서 Operator 업데이트 채널을 설정하는 방법에 대한 자세한 내용은 Operator의 업데이트 채널 변경을 참조하십시오.
6.5.2. OpenShift에서 서비스 레지스트리 1.1 배포 마이그레이션
서비스 레지스트리 버전 1.1 배포를 버전 2.x로 마이그레이션하는 방법에 대한 자세한 내용은 서비스 레지스트리 배포 마이그레이션 을 참조하십시오.
6.6. 서비스 레지스트리 해결 문제
표 6.1. 서비스 레지스트리 코어 해결 문제
| 문제 | 설명 |
|---|---|
| 코어 v1 호환성을 위한 REST API 끝점이 인증으로 올바르게 보호되지 않습니다. | |
| 웹 콘솔은 HTTPS 대신 HTTP로 잘못 리디렉션합니다. | |
|
서비스 레지스트리는 새 아티팩트를 업로드하는 동안 | |
| Confluent 호환성 계층은 JSON Schema 아티팩트로 작동하지 않습니다. | |
|
| |
| Confluent compatibility layer의 스키마 DTO는 완전히 호환되지 않습니다. | |
| 웹 콘솔에서 비활성화 역할 기능을 올바르게 따르지 않습니다. | |
| Confluent compatibility API v6에서는 아티팩트를 반환하지 않습니다. | |
|
| |
|
웹 콘솔에 일관되지 않은 | |
|
| |
| 전이적 호환성 규칙으로 인해 false positive가 발생할 수 있습니다. |
6.7. 서비스 레지스트리 해결 CVE
표 6.2. Service Registry 확인 Common Vulnerabilities and Exposures (CVEs)
| 문제 | 설명 |
|---|---|
| CVE-2022-25858 terterer: 정규 표현식의 안전하지 않은 사용으로 인해 ReDoS가 발생합니다. | |
| CVE-2022-37734 graphql-java: 악성 쿼리의 DoS | |
| CVE-2022-25857 snakeyaml: 컬렉션에 대한 중첩된 깊이 제한이 누락되어 DoS. | |
| CVE-2022-31129 현재: 비효율적인 구문 분석 알고리즘으로 인해 DoS가 발생합니다. | |
| CVE-2022-25647 com.google.code.gson-gson: 신뢰할 수 없는 데이터를 해독합니다. | |
|
CVE-2022-24773 node-forge: | |
| CVE-2022-24772 node-forge: 서명 확인에 실패한 가비지 바이트의 경우 서명 위조가 발생할 수 있습니다. | |
|
CVE-2022-24771 node-forge: | |
| CVE-2022-26520 jdbc-postgresql:IRbitrary 파일 쓰기 취약점. | |
|
CVE-2022-0536 follow-redirects: | |
| CVE-2022-0235 노드 페치: 민감한 정보를 인증되지 않은 행위자에게 노출 | |
| CVE-2022-23647 prism47 prismjs: Improperly escaped output은 XSS 취약점을 허용합니다. | |
| CVE-2022-0981 quarkus: Quarkus에서 RestEasy Reactive scope leakage를 사용한 권한 상승 취약점. | |
| CVE-2022-21724 quarkus-jdbc-postgresql-deployment: 플러그인 클래스를 제공할 때 클래스 인스턴스화를 확인하지 않습니다. | |
| CVE-2021-22569 protobuf-java: Potential DoS in the parsing procedure for binary data. | |
| CVE-2021-41269 cron-utils: 인증되지 않은 원격 코드 실행 취약점으로 이어지는 템플릿 삽입 | |
|
CVE-2021-37136 netty-codec: | |
|
CVE-2021-37137 netty-codec: |
6.8. 서비스 레지스트리의 알려진 문제
서비스 레지스트리 코어 알려진 문제
registry-2991 - 느린 머신에서 kafkasql 스토리지가 기존 메시지에 준비되지 않음
느린 컴퓨팅 노드에 Kafka 스토리지를 사용하여 서비스 레지스트리를 배포하면 Kafka 소비자 스레드가 시작될 때 내부 H2 데이터베이스가 준비되지 않을 수 있습니다. 이 경우 서비스 레지스트리는 내부 데이터베이스가 메시지를 저장할 준비가 되기 전에 Kafka 항목의 기존 메시지를 사용할 수 있습니다. 이러한 불일치로 인해 스택 추적이 발생하고 서비스 레지스트리 노드가 시작되지 않을 수 있습니다.
해결방법은 서비스 레지스트리의 Kafka 메시지 소비자 스레드의 시작 지연을 늘리는 것입니다. 기본적으로 100 ms로 설정된 REGISTRY_KAFKASQL_CONSUMER_STARTUPLAG 환경 변수 값을 늘릴 수 있습니다.
IPT-814 - RH-SSO 7.6과 호환되지 않는 서비스 레지스트리 로그 아웃 기능
RH-SSO 7.6에서는 logout 끝점에 사용되는 redirect_uri 매개변수는 더 이상 사용되지 않습니다. 자세한 내용은 RH-SSO 7.6 업그레이드 가이드를 참조하십시오. 이러한 사용 중단으로 인해 RH-SSO Operator를 사용하여 서비스 레지스트리를 보호하는 경우 Logout 버튼을 클릭하면 Invalid parameter: redirect_uri 오류가 표시됩니다.
해결방법은 https://access.redhat.com/solutions/6980926 에서 참조하십시오.
IPT-701 - CVE-2022-23221 H2를 사용하면 JNDI를 통해 원격 서버에서 사용자 정의 클래스를 로드할 수 있습니다.
서비스 레지스트리 데이터가 AMQ Streams에 저장되면 H2 데이터베이스 콘솔을 사용하면 원격 공격자가 JDBC URL을 사용하여 임의의 코드를 실행할 수 있습니다. 서비스 레지스트리는 기본적으로 취약하지 않으며 악의적인 구성 변경이 필요합니다.
Service Registry Operator의 알려진 문제
operator-42 - OpenShift 경로 자동 생성에서 잘못된 기본 호스트 값을 사용할 수 있음
여러 routerCanonicalHostname 값이 지정되면 서비스 레지스트리 OpenShift 경로의 자동 생성에서 잘못된 기본 호스트 값을 사용할 수 있습니다.
7장. Red Hat Integration Operator
Red Hat Integration 2022.q3에는 Red Hat Integration Operator 1.3이 도입되었습니다.
Red Hat Integration은 OpenShift에 Red Hat Integration 구성 요소의 배포를 자동화하는 Operator를 제공합니다. Red Hat Integration Operator를 사용하여 이러한 Operator를 관리할 수 있습니다.
또는 각 구성 요소 Operator를 개별적으로 관리할 수 있습니다. 이 섹션에서는 Operator를 소개하고 Operator를 사용하여 Red Hat Integration 구성 요소를 배포하는 방법에 대한 자세한 정보의 링크를 제공합니다.
7.1. Operator의 정의
Operator는 Kubernetes 애플리케이션을 패키징, 배포 및 관리하는 방법입니다. 사용자는 사람의 운영 지식을 소비자와 보다 쉽게 공유할 수 있는 소프트웨어로 인코딩하여 일반 작업 또는 복잡한 작업을 자동화할 수 있습니다.
OpenShift Container Platform 4.x에서 OLM(Operator Lifecycle Manager) 은 사용자가 클러스터에서 실행되는 모든 Operator 및 관련 서비스의 라이프 사이클을 설치, 업데이트 및 관리할 수 있도록 지원합니다. Operator 프레임워크의 일부입니다. Kubernetes 네이티브 애플리케이션(Operator)을 효율적이고 자동화하며 확장 가능한 방식으로 관리하도록 설계된 오픈 소스 툴킷입니다.
OLM은 OpenShift Container Platform 4.x에서 기본적으로 실행되므로 클러스터 관리자는 클러스터에서 실행되는 Operator를 설치, 업그레이드 및 액세스할 수 있습니다. OpenShift Container Platform 웹 콘솔은 클러스터 관리자가 Operator를 설치할 수 있는 관리 화면을 제공하고, 클러스터에 제공되는 Operator 카탈로그를 사용할 수 있는 액세스 권한을 특정 프로젝트에 부여합니다.
OperatorHub 는 OpenShift 클러스터 관리자가 Operator를 검색, 설치 및 업그레이드하는 데 사용하는 그래픽 인터페이스입니다. 한 번의 클릭으로 이러한 Operator를 OperatorHub에서 가져오고 클러스터에 설치하고 OLM에서 관리하며 엔지니어링 팀이 개발, 테스트 및 프로덕션 환경에서 소프트웨어를 셀프서비스로 관리할 수 있습니다.
추가 리소스
- Operator에 대한 자세한 내용은 OpenShift 설명서 를 참조하십시오.
7.2. Red Hat Integration 구성 요소 Operator
예를 들어 3scale Operator, Camel K Operator 등을 사용하여 각 Red Hat Integration 구성 요소 Operator를 개별적으로 설치하고 업그레이드할 수 있습니다.
7.2.1. 3scale Operator
7.2.2. AMQ Operator
7.2.3. Camel K Operator
7.2.4. Fuse Operator
7.2.5. Service Registry Operator
7.3. Red Hat Integration Operator (더 이상 사용되지 않음)
Red Hat Integration Operator 1.3을 사용하여 여러 Red Hat Integration 구성 요소 Operator를 설치 및 업그레이드할 수 있습니다.
- 3scale
- 3scale APIcast
- AMQ Broker
- AMQ Interconnect
- AMQ Streams
- API1.2
- Camel K
- Fuse 콘솔
- Fuse Online
- 서비스 레지스트리
Red Hat Integration Operator는 더 이상 사용되지 않으며 향후 제거될 예정입니다. OpenShift 4.6의 OperatorHub에서 4.10으로 사용할 수 있습니다. 개별 Red Hat Integration 구성 요소 Operator는 개별적으로 설치할 수 있습니다.
7.3.1. 지원되는 구성 요소
Red Hat Integration Operator 1.3을 사용하여 Operator를 설치하기 전에 구성 요소의 릴리스 노트에서 업데이트를 확인합니다. 지원되는 버전에 대한 릴리스 노트는 추가 업그레이드 요구 사항을 설명합니다.
- Red Hat 3scale API Management 2.10 온-프레미스 릴리스 정보
- Red Hat AMQ Broker 7.8 릴리스 정보
- Red Hat AMQ Interconnect 1.10 릴리스 정보
- OpenShift의 Red Hat AMQ Streams 2.0 릴리스 정보
- Red Hat Fuse 7.10 릴리스 정보 (Fuse 및 APIanchor)
- Red Hat Integration 2021.Q3 릴리스 정보 (Service Registry 2.0 릴리스 노트)
- Red Hat Integration 2021.Q4 릴리스 정보 (Camel K 릴리스 노트)
AMQ Streams 새 API 버전
Red Hat Integration Operator 1.3은 AMQ Streams 2.0에 대한 Operator를 설치합니다.
AMQ Streams 버전 1.8 이상으로 업그레이드하기 전에 API 버전 v1beta2 를 사용하려면 사용자 정의 리소스를 업그레이드해야 합니다.
AMQ Streams 1.7에는 AMQ Streams 사용자 정의 리소스의 스키마를 업데이트하는 v1beta2 API 버전이 도입되었습니다. 이전 API 버전은 더 이상 사용되지 않습니다. AMQ Streams 1.7로 업그레이드한 후 AMQ Streams 2.0으로 업그레이드하기 전에 API 버전 v1beta2 를 사용하도록 사용자 정의 리소스를 업그레이드해야 합니다.
버전 1.7 이전의 AMQ Streams 버전에서 업그레이드하는 경우:
- AMQ Streams 1.7로 업그레이드
- 사용자 정의 리소스를 v1beta2로 변환합니다.
- AMQ Streams 2.0으로 업그레이드
자세한 내용은 다음 설명서를 참조하십시오.
사용자 정의 리소스 및 CRD가 버전 v1beta2 로 변환되지 않은 경우 AMQ Streams Operator를 버전 2.0으로 업그레이드할 수 없습니다. 업그레이드는 보류 중 상태로 유지될 것입니다. 이 경우 다음을 수행합니다.
- Red Hat 솔루션, Forever pending cluster operator upgrade 에 설명된 단계를 수행하십시오.
- Integration Operator를 0으로 스케일링한 다음 1로 돌아가 AMQ Streams 2.0 Operator 설치를 트리거합니다.
Service Registry 2.0 마이그레이션
Red Hat Integration Operator는 Service Registry 2.0을 설치합니다.
Service Registry 2.0은 수동으로 제거해야 하는 서비스 레지스트리 1.x 설치를 대체하지 않습니다.
Service Registry 버전 1.x에서 2.0으로 마이그레이션하는 방법에 대한 자세한 내용은 Service Registry 2.0 릴리스 노트 를 참조하십시오.
7.3.2. 지원 라이프 사이클
지원되는 구성을 유지하려면 최신 Red Hat Integration Operator 버전을 배포해야 합니다. 각 Red Hat Integration Operator 릴리스 버전은 3 개월 동안만 지원됩니다.
7.3.3. 해결된 문제
Red Hat Integration Operator 1.3에는 수정된 문제가 없습니다.
추가 리소스
- 여러 Red Hat Integration 구성 요소 Operator를 관리하는 방법에 대한 자세한 내용은 OpenShift에 Red Hat Integration Operator 설치를 참조하십시오.