Red Hat Integration 2022.q3 릴리스 정보

Red Hat Integration 2022.q3

Red Hat Integration의 새로운 기능

Red Hat Integration Documentation Team

초록

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-restcode.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 해결 문제

문제설명

CAMEL-17158

AWS2 SQS가 지연된 큐로 메시지를 보낼 때 지연이 발생하지 않습니다.

ENTESB-18306

NSQ, HDFS 및 CloudEvent에서 누락된 netty-transport-native-epoll:jar:linux-aarch_64

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의 기본 전략)을 사용하지 않았습니다. 종료는 어떠한 전략으로도 제어되지 않았습니다.

더 이상 그렇지 않습니다. 정상적인 종료 전략은 한 가지 예외만으로 기본적으로 활성화됩니다. 정상 종료에 대한 타임아웃이 설정되지 않고 개발 모드에서 애플리케이션이 실행되는 경우 종료 전략이 사용되지 않습니다(유효한 타임아웃이 없는 개발 모드의 경우 개발 모드의 제한 시간이 변경되지 않음).

DefaultShutdownStrategyapplication.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을 설치할 필요가 없습니다.
  • MongoDB

    • 현재 MongoDB 4.2와 함께 Debezium MongoDB 커넥터의 트랜잭션 메타데이터 기능을 사용할 수 없습니다.
  • Oracle

  • PostgreSQL

    • Debezium PostgreSQL 커넥터를 사용하려면 PostgreSQL 버전 10 이상의 기본값인 pgoutput 논리 디코딩 출력 플러그인을 사용해야 합니다.

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 릴리스 노트를 참조하십시오.
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, CLOB 및 IRQLOB 데이터 유형 사용
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

camel-quarkus-aws2-kinesis

AWS 2 Lambda

camel-quarkus-aws2-lambda

AWS 2 S3 Storage Service

camel-quarkus-aws2-s3

AWS 2 SNS(Simple Notification System)

camel-quarkus-aws2-sns

AWS 2 SQS(Simple Queue Service)

camel-quarkus-aws2-sqs

Cassandra CQL

camel-quarkus-cassandraql

파일

camel-quarkus-file

FTP

camel-quarkus-ftp

FTPS

camel-quarkus-ftp

SFTP

camel-quarkus-ftp

HTTP

camel-quarkus-http

JMS

camel-quarkus-jms

Kafka

camel-quarkus-kafka

Kamelets

camel-quarkus-kamelet

메트릭

camel-quarkus-microprofile-metrics

MongoDB

camel-quarkus-mongodb

Salesforce

camel-quarkus-salesforce

SQL

camel-quarkus-sql

timer

camel-quarkus-timer

4.4.2. 지원되는 Camel Quarkus 데이터 형식 확장

다음 표에서는 Camel K 애플리케이션 내에서만 사용되는 Camel K 릴리스에 지원되는 Camel Quarkus 데이터 형식 확장 기능을 보여줍니다.

이름패키지

Avro

camel-quarkus-avro

Bindy (csv의 경우)

camel-qaurkus-bindy

gson

camel-quarkus-gson

JSON Jackson

camel-quarkus-jackson

Jackson Avro

camel-quarkus-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-sink.kamelet.yaml

싱크

Ceph 소스

ceph-source.kamelet.yaml

소스

Jira Add Comment sink

jira-add-comment-sink.kamelet.yaml

싱크

Jira Add Issue sink

jira-add-issue-sink.kamelet.yaml

싱크

Jira Transition Issue sink

jira-transition-issue-sink.kamelet.yaml

싱크

Jira Update Issue sink

jira-update-issue-sink.kamelet.yaml

싱크

Avro Deserialize 작업

avro-deserialize-action.kamelet.yaml

작업(데이터 변환)

Avro Serialize 작업

avro-serialize-action.kamelet.yaml

작업(데이터 변환)

AWSECDHE 싱크

aws-ddb-sink.kamelet.yaml

싱크

AWS Redshift sink

aws-redshift-sink.kamelet.yaml

싱크

AWS 2ECDHE sink

aws-kinesis-sink.kamelet.yaml

싱크

AWS 2ECDHE 소스

aws-kinesis-source.kamelet.yaml

소스

AWS 2 Lambda sink

aws-lambda-sink.kamelet.yaml

싱크

AWS 2 Simple Notification System sink

aws-sns-sink.kamelet.yaml

싱크

AWS 2 Simple Queue Service 싱크

aws-sqs-sink.kamelet.yaml

싱크

AWS 2 Simple Queue Service 소스

aws-sqs-source.kamelet.yaml

소스

AWS 2 Simple Queue Service FIFO sink

aws-sqs-fifo-sink.kamelet.yaml

싱크

AWS 2 S3 싱크

aws-s3-sink.kamelet.yaml

싱크

AWS 2 S3 소스

aws-s3-source.kamelet.yaml

소스

AWS 2 S3 S3 Streaming Upload sink

aws-s3-streaming-upload-sink.kamelet.yaml

싱크

Azure Storage Blob 소스 (기술 프리뷰)

azure-storage-blob-source.kamelet.yaml

소스

Azure Storage Blob Sink (기술 프리뷰)

azure-storage-blob-sink.kamelet.yaml

싱크

Azure 스토리지 대기열 소스 (기술 프리뷰)

azure-storage-queue-source.kamelet.yaml

소스

Azure Storage Queue Sink (기술 프리뷰)

azure-storage-queue-sink.kamelet.yaml

싱크

CloudEvent 싱크

cassandra-sink.kamelet.yaml

싱크

CloudEvent 소스

cassandra-source.kamelet.yaml

소스

필드 추출 작업

extract-field-action.kamelet.yaml

동작

FTP 싱크

ftp-sink.kamelet.yaml

싱크

FTP 소스

ftp-source.kamelet.yaml

소스

헤더 키 필터 작업이 있습니다.

has-header-filter-action.kamelet.yaml

작업(데이터 변환)

Hoist Field 작업

hoist-field-action.kamelet.yaml

동작

HTTP 싱크

http-sink.kamelet.yaml

싱크

삽입 필드 작업

insert-field-action.kamelet.yaml

작업(데이터 변환)

헤더 작업 삽입

insert-header-action.kamelet.yaml

작업(데이터 변환)

mbstone 필터 작업이란 무엇입니까?

is-tombstone-filter-action.kamelet.yaml

작업(데이터 변환)

Jira 소스

jira-source.kamelet.yaml

소스

JMS 싱크

jms-amqp-10-sink.kamelet.yaml

싱크

JMS 소스

jms-amqp-10-source.kamelet.yaml

소스

JMS IBM MQ 싱크

jms-ibm-mq-sink.kamelet.yaml

싱크

JMS IBM MQ 소스

jms-ibm-mq-source.kamelet.yaml

소스

JSON Deserialize 작업

json-deserialize-action.kamelet.yaml

작업(데이터 변환)

JSON Serialize 작업

json-serialize-action.kamelet.yaml

작업(데이터 변환)

Kafka 싱크

kafka-sink.kamelet.yaml

싱크

Kafka 소스

kafka-source.kamelet.yaml

소스

Kafka 주제 이름 필터 작업

topic-name-matches-filter-action.kamelet.yaml

작업(데이터 변환)

로그 싱크(개발 및 테스트 목적으로)

log-sink.kamelet.yaml

싱크

MariaDB 싱크

mariadb-sink.kamelet.yaml

싱크

마스크 필드 작업

mask-field-action.kamelet.yaml

작업(데이터 변환)

TimeStamp 라우터 작업 메시지

message-timestamp-router-action.kamelet.yaml

작업(라우터)

MongoDB 싱크

mongodb-sink.kamelet.yaml

싱크

MongoDB 소스

mongodb-source.kamelet.yaml

소스

MySQL 싱크

mysql-sink.kamelet.yaml

싱크

PostgreSQL 싱크

postgresql-sink.kamelet.yaml

싱크

서술자 필터 작업

predicate-filter-action.kamelet.yaml

작업(라우터/filter)

protobuf Deserialize 작업

protobuf-deserialize-action.kamelet.yaml

작업(데이터 변환)

protobuf Serialize 작업

protobuf-serialize-action.kamelet.yaml

작업(데이터 변환)

regex 라우터 작업

regex-router-action.kamelet.yaml

작업(라우터)

필드 작업 교체

replace-field-action.kamelet.yaml

동작

triggerbinding create

salesforce-create-sink.kamelet.yaml

싱크

trigger trigger delete

salesforce-delete-sink.kamelet.yaml

싱크

CloudEvent 업데이트

salesforce-update-sink.kamelet.yaml

싱크

SFTP 싱크

sftp-sink.kamelet.yaml

싱크

SFTP 소스

sftp-source.kamelet.yaml

소스

Slack 소스

slack-source.kamelet.yaml

소스

SQL Server 데이터베이스 싱크

sqlserver-sink.kamelet.yaml

싱크

Telegram 소스

telegram-source.kamelet.yaml

소스

throttle 작업

throttle-action.kamelet.yaml

동작

타이머 소스(개발 및 테스트용)

timer-source.kamelet.yaml

소스

타임스탬프 라우터 작업

timestamp-router-action.kamelet.yaml

작업(라우터)

키 동작의 값

value-to-key-action.kamelet.yaml

작업(데이터 변환)

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 기능 개선

문제설명

ENTESB-19061

Camel K - Red Hat Ceph Storage Object(S3)용 Kamelet

ENTESB-19366

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 기능 개선

문제설명

ENTESB-16888

Camel K 제품화 버전을 실제 제품 버전과 동기화

ENTESB-16931

Camel-K Operator를 ALL-NAMESPACES로 마이그레이션하는 것이 좋습니다.

ENTESB-17173

Operator를 1.x 및 1.6.x 채널에 게시

ENTESB-19598

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 문제 해결 버그

문제설명

ENTESB-16168

CVE-2021-22135 elasticsearch: Elasticsearch 제안의 문서 공개 취약점 [rhint-camel-k-1]

ENTESB-16326

CVE-2021-29427 gradle: 리포지토리 콘텐츠 필터는 Settings plugin management [rhint-camel-k-1]에서 작동하지 않습니다.

ENTESB-16746

CVE-2021-28169 jetty: ConcatServlet 및>-<Filter에 대한 요청은 WEB-INF 디렉토리 [rhint-camel-k-1] 내에서 보호되는 리소스에 액세스할 수 있습니다.

ENTESB-16924

CVE-2021-34428 jetty: SessionListener가 로그 아웃이 무효화되지 않도록 할 수 있습니다 [rhint-camel-k-1]

ENTESB-17037

CVE-2021-3642 wildfly-elytron: possible timing attack in ScramServer [rhint-camel-k-1]

ENTESB-17559

Kamelet has-header-filter-action은 업스트림에서 다릅니다.

ENTESB-17672

Camel K 이미지는 golang 코드에 대한 CHAP 매니페스트를 생성하지 않음

ENTESB-17931

Camel K 1.6.0 소스에는 여러 결함 (기술 검토 + 잘못된 버전)이 포함되어 있습니다.

ENTESB-19222

AWS Redshift Sink kamelet dependency mvn:com.amazon.redshift:redshift-jdbc42:2.1.0.5 누락됨

ENTESB-19336

<!- Source kamelet: notifyForFields isnt very usable

ENTESB-19344

AWS S3 Streaming upload kamelet: streamingUploadMode는 구성 불가능합니다.

ENTESB-19392

CVE-2022-30973 tika-core: CVE-2022-30126에 대한 불완전한 수정 사항 [rhint-camel-k-1]

ENTESB-19417

채널 1.8.x로 업그레이드하면 "2 대체 체인이 발견되었습니다".

ENTESB-19536

작업 kamelet 테스트가 Unsupported 필드에서 실패: unmarshalTypeName

ENTESB-19670

kamel install을 사용할 때 기본 maven 리포지토리가 재정의됩니다.

ENTESB-19727

Camel-K 1.8.1.CK1의 정렬되지 않은 버전

ENTESB-19744

기본 모드를 사용하여 kameletBinding을 실행할 수 없음

ENTESB-19830

MRRC의 잘못된 snakeyaml 종속성

ENTESB-19875

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 개선 사항
  • 개선된 /users/me 끝점 - 서비스 레지스트리 코어 REST API에는 현재 인증된 사용자에 대한 정보를 반환하는 /users/me 엔드포인트가 있습니다. 이 끝점을 사용하여 사용자의 할당된 역할을 검사하고 해당 기능을 확인할 수 있습니다.
  • Confluent Compatibility API 지원 - Service Registry에서 Confluent Schema Registry API 버전 6을 지원합니다.

서비스 레지스트리 사용자 문서 및 예제

버전 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이 설치되어 있습니다.

절차

  1. OpenShift Container Platform 웹 콘솔에서 관리클러스터 설정을 클릭합니다.
  2. Channel 필드 옆에 있는 연필 아이콘을 클릭하고 다음 마이너 후보 버전을 선택합니다(예: stable-4.9 에서 candidate-4.10으로 변경).
  3. 저장업데이트를 클릭하고 업그레이드가 완료될 때까지 기다립니다.
  4. OpenShift 버전이 4.11 미만이면 2단계와 3단계를 반복하고 candidate-4.11 을 선택합니다.
  5. Operators > 설치된 Operators > Red Hat Integration - Service Registry 를 클릭합니다.
  6. 업데이트 채널이 2.x 로 설정되어 있는지 확인합니다.
  7. 업데이트 승인이 자동으로 설정된 경우 2.x 채널이 설정된 직후 업그레이드가 승인되고 설치되어야 합니다.
  8. 업데이트 승인이 수동으로 설정된 경우 설치를 클릭합니다.
  9. Operator가 배포되고 Service Registry Pod가 배포될 때까지 기다립니다.
  10. 서비스 레지스트리 시스템이 실행 중인지 확인합니다.

추가 리소스

6.5.2. OpenShift에서 서비스 레지스트리 1.1 배포 마이그레이션

서비스 레지스트리 버전 1.1 배포를 버전 2.x로 마이그레이션하는 방법에 대한 자세한 내용은 서비스 레지스트리 배포 마이그레이션 을 참조하십시오.

6.6. 서비스 레지스트리 해결 문제

표 6.1. 서비스 레지스트리 코어 해결 문제

문제설명

Registry-2394

코어 v1 호환성을 위한 REST API 끝점이 인증으로 올바르게 보호되지 않습니다.

Registry-1959

웹 콘솔은 HTTPS 대신 HTTP로 잘못 리디렉션합니다.

Registry-1926

서비스 레지스트리는 새 아티팩트를 업로드하는 동안 io.apicurio.registry.storage.ArtifactNotFoundException 이 발생합니다.

Registry-1905

Confluent 호환성 계층은 JSON Schema 아티팩트로 작동하지 않습니다.

Registry-1873

kafkasql 레지스트리 스토리지 옵션은 Expected 하나의 요소가 발생하지만 contentIdFromHash 를 쿼리할 때 예외는 찾을 수 없습니다.

Registry-1660

Confluent compatibility layer의 스키마 DTO는 완전히 호환되지 않습니다.

Registry-1610

웹 콘솔에서 비활성화 역할 기능을 올바르게 따르지 않습니다.

Registry-1593

Confluent compatibility API v6에서는 아티팩트를 반환하지 않습니다.

Registry- 733

sasl.jaas.config 속성을 전달해도 JAVA_OPTIONS 환경 변수에서는 작동하지 않습니다.

Registry-651

웹 콘솔에 일관되지 않은 수정 날짜가 표시됩니다.

Registry-358

RuleApplicationType.CREATE 에 대해 글로벌 호환성 규칙 실행이 손상되었습니다.

Registry-342

전이적 호환성 규칙으로 인해 false positive가 발생할 수 있습니다.

6.7. 서비스 레지스트리 해결 CVE

표 6.2. Service Registry 확인 Common Vulnerabilities and Exposures (CVEs)

문제설명

IPT-789

CVE-2022-25858 terterer: 정규 표현식의 안전하지 않은 사용으로 인해 ReDoS가 발생합니다.

IPT-788

CVE-2022-37734 graphql-java: 악성 쿼리의 DoS

IPT-787

CVE-2022-25857 snakeyaml: 컬렉션에 대한 중첩된 깊이 제한이 누락되어 DoS.

IPT-764, IPT-763

CVE-2022-31129 현재: 비효율적인 구문 분석 알고리즘으로 인해 DoS가 발생합니다.

IPT-760

CVE-2022-25647 com.google.code.gson-gson: 신뢰할 수 없는 데이터를 해독합니다.

IPT-739

CVE-2022-24773 node-forge: DigestInfo 구조 검사 시 서명 확인 레니어입니다.

IPT-738

CVE-2022-24772 node-forge: 서명 확인에 실패한 가비지 바이트의 경우 서명 위조가 발생할 수 있습니다.

IPT-737

CVE-2022-24771 node-forge: digestAlgorithm 구조의 서명 확인로 인해 위조 서명이 발생할 수 있습니다.

IPT-734

CVE-2022-26520 jdbc-postgresql:IRbitrary 파일 쓰기 취약점.

IPT-733

CVE-2022-0536 follow-redirects: 인증 헤더 누수로 중요한 정보 노출

IPT-732

CVE-2022-0235 노드 페치: 민감한 정보를 인증되지 않은 행위자에게 노출

IPT-731

CVE-2022-23647 prism47 prismjs: Improperly escaped output은 XSS 취약점을 허용합니다.

IPT-728

CVE-2022-0981 quarkus: Quarkus에서 RestEasy Reactive scope leakage를 사용한 권한 상승 취약점.

IPT-723

CVE-2022-21724 quarkus-jdbc-postgresql-deployment: 플러그인 클래스를 제공할 때 클래스 인스턴스화를 확인하지 않습니다.

IPT-705

CVE-2021-22569 protobuf-java: Potential DoS in the parsing procedure for binary data.

IPT-652

CVE-2021-41269 cron-utils: 인증되지 않은 원격 코드 실행 취약점으로 이어지는 템플릿 삽입

IPT-566

CVE-2021-37136 netty-codec: Bzip2Decoder 는 압축 해제된 데이터에 대한 크기 제한을 설정할 수 없습니다.

IPT-564

CVE-2021-37137 netty-codec: SnappyLEVELDecoder 는 청크 길이를 제한하지 않으며 불필요한 방식으로 건너뛸 수 있는 청크를 버퍼화할 수 있습니다.

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에서 관리하며 엔지니어링 팀이 개발, 테스트 및 프로덕션 환경에서 소프트웨어를 셀프서비스로 관리할 수 있습니다.

추가 리소스

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를 설치하기 전에 구성 요소의 릴리스 노트에서 업데이트를 확인합니다. 지원되는 버전에 대한 릴리스 노트는 추가 업그레이드 요구 사항을 설명합니다.

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 버전에서 업그레이드하는 경우:

  1. AMQ Streams 1.7로 업그레이드
  2. 사용자 정의 리소스를 v1beta2로 변환합니다.
  3. AMQ Streams 2.0으로 업그레이드

자세한 내용은 다음 설명서를 참조하십시오.

주의

사용자 정의 리소스 및 CRD가 버전 v1beta2 로 변환되지 않은 경우 AMQ Streams Operator를 버전 2.0으로 업그레이드할 수 없습니다. 업그레이드는 보류 중 상태로 유지될 것입니다. 이 경우 다음을 수행합니다.

  1. Red Hat 솔루션, Forever pending cluster operator upgrade 에 설명된 단계를 수행하십시오.
  2. 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에는 수정된 문제가 없습니다.

추가 리소스

법적 공지

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.