AMQ Streams 2.0 on RHEL リリースノート
新機能のハイライトと、この AMQ Streams on Red Hat Enterprise Linux リリースの変更内容
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージをご覧ください。
第1章 特長
本リリースで追加され、これまでの AMQ Streams リリースにはなかった機能は次のとおりです。
AMQ Streams 2.0.1 パッチリリースが利用できるようになりました。
本リリースで解決された改良機能とバグをすべて確認するには、AMQ Streams の Jira プロジェクト を参照してください。
1.1. Kafka 2.7.0 のサポート
AMQ Streams は Apache Kafka バージョン 2.7.0 に対応するようになりました。
AMQ Streams は Kafka 2.7.0 を使用します。Red Hat によってビルドされた Kafka ディストリビューションのみがサポートされます。
アップグレードの手順は、「AMQ Streams and Kafka upgrades」を参照してください。
詳細は、Kafka 2.8.0 および Kafka 3.0.0 のリリースノートを参照してください。
Kafka 2.8.x は、AMQ Streams 2.0 にアップグレードする目的でのみサポートされます。
サポートされるバージョンの詳細は、カスタマーポータルの Red Hat Streams for Apache Kafka Component Details を参照してください。
Kafka 3.0.0 には ZooKeeper バージョン 3.6.3 が必要です。したがって、アップグレードに関するドキュメントで説明されているように、AMQ Streams 1.8 から AMQ Streams 2.0 にアップグレードするときに ZooKeeper をアップグレードする必要があります。
Kafka 3.0.0 では 自己管理モード に早期にアクセスできます。このモードでは、Kafka が Raft プロトコルを使用して ZooKeeper なしに実行されます。AMQ Streams では、自己管理モードがサポートされないことに注意してください。
1.2. Scala のアップグレード
AMQ Streams では、Scala2.12 の代わりに Scala2.13 が使用されるようになりました。
Maven ビルドで Kafka Streams の依存関係を使用している場合は、Scala2.13 および Kafka バージョン 3.0.0 を指定するように更新する必要があります。依存関係が更新されない場合は、ビルドされません。
Kafka Streams の依存関係
<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams-scala_2.13</artifactId> <version>3.0.0</version> </dependency>
Kafka Streams Scala 依存関係 を参照してください。
1.3. PowerPC アーキテクチャーのサポート
AMQ Streams 2.0 は、PowerPC ppc64le アーキテクチャーでの実行が有効になっています。
IBM Power システムのサポートは、Red Hat Enterprise Linux 8 の Kafka 3.0.0 および Open JDK 11 で実行されている AMQ Streams に適用されます。AMQ Streams 1.8 以前のバージョンの Kafka バージョンには ppc64 バイナリーが 含まれていません。
1.3.1. IBM Power システムの要件
- Red Hat Enterprise Linux 8
- Open JDK 11
- Kafka 3.0.0
1.3.2. IBM Power Systems でサポート対象外
- Red Hat Enterprise Linux 7
- Kafka 2.8.0 以前
- Open JDK 8、Oracle JDK 8 および 11、IBM JDK 8
- これは ppc64le の最初のリリースであるため、AMQ Streams のアップグレードおよびダウングレード
第2章 機能拡張
このリリースで改良された機能は次のとおりです。
2.1. Kafka 2.7.0 で改良された機能
Kafka 3.0.0 に導入された改良機能の概要はKafka 3.0.0 Release Notesを参照してください。
2.2. 外部設定データの環境変数設定プロバイダー
環境変数の設定プロバイダープラグインを使用して、環境変数から設定データを読み込みます。
プロバイダーを使用して、プロデューサーやコンシューマーを含む、すべての Kafka コンポーネントの設定データを読み込むことができます。たとえば、プロバイダーを使用して、Kafka Connect コネクター設定のクレデンシャルを提供します。
環境変数設定プロバイダーは、環境変数を使用して証明書や JAAS 設定を読み込む場合などに使用できます。
Loading configuration values from environment variables を参照してください。
第3章 テクノロジープレビュー
テクノロジープレビューの機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat はテクノロジープレビュー機能を実稼働環境に実装することは推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。サポート範囲の詳細は、「テクノロジプレビュー機能のサポート範囲」を参照してください。
3.1. Kafka Static Quota プラグインの設定
Kafka Static Quota プラグインを使用して、Kafka クラスターのブローカーにスループットおよびストレージの制限を設定します。バイトレートのしきい値およびストレージクォータを設定して、ブローカーと対話するクライアントに制限を設けることができます。
Kafka Static Quota プラグインの設定例
client.quota.callback.class= io.strimzi.kafka.quotas.StaticQuotaCallback client.quota.callback.static.produce= 1000000 client.quota.callback.static.fetch= 1000000 client.quota.callback.static.storage.soft= 400000000000 client.quota.callback.static.storage.hard= 500000000000 client.quota.callback.static.storage.check-interval= 5
Kafka Static Quota プラグインを使用したブローカーへの制限の設定 を参照してください。
3.2. Cruise Control によるクラスターのリバランス
Cruise Control は本リリースでもテクノロジープレビューですが、新たな改良が加えられました。
Cruise Control をデプロイし、これを使用して 最適化ゴール (CPU、ディスク、ネットワーク負荷などに定義された制約) を使用し、Kafka をリバランスできます。バランス調整された Kafka クラスターでは、ワークロードがブローカー Pod 全体に均等に分散されます。
Cruise Control を使用すると、分散された Kafka クラスターを効率的に実行するための時間および労力を削減できます。
カスタマーポータルからダウンロードするために、Cruise Control の zip 形式のディストリビューションを利用できます。Cruise Control をインストールするには、提供される Metrics Reporter を使用するように各 Kafka ブローカーを設定します。その後、最適化ゴールを含む Cruise Control プロパティーを設定し、提供されたスクリプトを使用して Cruise Control を開始します。
Cruise Control サーバーは、Kafka クラスター全体の単一のマシンでホストされます。
Cruise Control が実行されている場合、REST API を使用して以下を行うことができます。
- 複数の最適化ゴールから ドライラン 最適化プロポーザルの生成
- 最適化プロポーザルを開始し、Kafka クラスターのリバランスを行います。
通知、独自ゴールの作成、トピックレプリケーション係数の変更など、その他の Cruise Control の機能は現在サポートされていません。
Cruise Control によるクラスターのリバランス を参照してください。
3.2.1. テクノロジープレビューの改良
Cruise Control バージョン 2.5.73 が公開されました。
Red Hat カスタマーポータルから最新バージョンの zip 形式のディストリビューションをダウンロードできます。
カスタマーポータル を参照してください。
第4章 非推奨の機能
このリリースで非推奨となり、これまでの AMQ Streams リリースではサポートされていた機能は次のとおりです。
4.1. Java 8
Java 8 のサポートは Kafka 3.0.0 および AMQ Streams 2.0 で非推奨となりました。Java 8 は、今後、クライアントを含むすべての AMQ Streams コンポーネントではサポートされません。
AMQ Streams は Java 11 をサポートします。新規アプリケーションの開発時に Java 11 を使用します。現在 Java 8 を使用しているアプリケーションを Java 11 に移行する計画です。
4.2. Kafka MirrorMaker 1
Kafka MirrorMaker は、データセンター内またはデータセンター全体の 2 台以上の Kafka クラスター間でデータをレプリケーションします。Kafka MirrorMaker 1 は Kafka 3.0.0 で非推奨となり、Kafka 4.0.0 で削除されます。MirrorMaker 2.0 のみが利用可能なバージョンになります。MirrorMaker 2.0 は Kafka Connect フレームワークをベースとし、コネクターによってクラスター間のデータ転送が管理されます。
そのため、Kafka MirrorMaker 1 のデプロイに使用される AMQ Streams KafkaMirrorMaker
カスタムリソースが非推奨になりました。Kafka 4.0.0 が導入されると、KafkaMirrorMaker
リソースは AMQ Streams から削除されます。
MirrorMaker 1 (AMQ ストリームドキュメントでちょうど MirrorMaker と呼ばれる) を使用している場合は、IdentityReplicationPolicy
と KafkaMirrorMaker2
のカスタムリソースを使用します。MirrorMaker 2.0 では、ターゲットクラスターにレプリケートされたトピックの名前が変更されます。IdentityReplicationPolicy
設定は、名前の自動変更を上書きします。これを使用して、MirrorMaker 1 と同じアクティブ/パッシブの一方向レプリケーションを作成します。
Kafka MirrorMaker 2.0 クラスターの設定 を参照してください。
第5章 修正された問題
以下のセクションには、AMQ Streams 2.0.x で修正された問題が記載されています。Red Hat は、最新のパッチリリースにアップグレードすることを推奨します。
Kafka 3.0.0 で修正された問題の詳細は、Kafka 2.7.0 Release Notes を参照してください。
5.1. AMQ Streams 2.0.1 で修正された問題
AMQ Streams 2.0.1 パッチリリースが利用できるようになりました。
AMQ Streams 2.0.1 で解決された問題の詳細は、AMQ Streams 2. 0.x Resolved Issues を参照してください。
Log4j の脆弱性
AMQ Streams には log4j 1.2.17 が含まれています。このリリースでは、log4j の脆弱性が数多く修正されています。
本リリースで対応する脆弱性の詳細は、以下の CVE の説明を参照してください。
5.2. Fixed issues for AMQ Streams 2.0.0
Log4j2 の脆弱性
AMQ Streams には log4j2 2.17.1 が含まれています。本リリースでは、log4j2 の脆弱性が多数修正されています。
本リリースで対応する脆弱性の詳細は、以下の CVE の説明を参照してください。
課題番号 | 説明 |
---|---|
ログレベルの変更が Kafka Exporter で動作しない |
課題番号 | 説明 |
---|---|
CVE-2021-34429: jetty-server: jetty: で特別に作成された URI により、セキュリティーの制約を回避できます | |
CVE-2021-38153 Kafka: Apache Kafka Connect およびクライアントに対するタイミング攻撃の脆弱性 | |
CVE-2021-38153 kafka-clients: Kafka: Apache Kafka Connect およびクライアントの攻撃脆弱性の調整 | |
CVE-2021-37136 netty-codec: Bzip2Decoder が圧縮したデータのサイズ制限を設定できない | |
CVE-2021-37137 netty-codec: SnappyFrameDecoder がチャンクの長さを制限せず、スキップ可能なチャンクを不要な方法でバッファリングする可能性があります | |
CVE-2021-44228 log4j-core: 攻撃者が制御する文字列の値がログに含まれる場合の Log4j 2.x でのリモートコード実行 | |
CVE-2021-45046 log4j-core: スレッドコンテキストメッセージパターンとコンテキストルックアップパターンを使用した log4j2.x の Do S | |
CVE-2021-45105 log4j-core: Thread Context Map (MDC) 入力データを使用した log4j 2.x の DoS には、再帰ルックアップとコンテキストルックアップパターンが含まれています | |
CVE-2021-44832 log4j-core: JDBC Appender を介したリモートコードの実行 |
第6章 既知の問題
AMQ Streams 2.0 on RHEL には既知の問題がありません。
第7章 サポートされる統合製品
AMQ Streams 1.7 は、以下の Red Hat 製品との統合をサポートします。
- Red Hat Single Sign-On 7.4 以降
- OAuth 2.0 認証および OAuth 2.0 承認を提供します。
これらの製品によって AMQ Streams デプロイメントに導入可能な機能の詳細は、AMQ Streams 1.7 のドキュメントを参照してください。
第8章 重要なリンク
改訂日時: 2022-06-14 00:48:16 +1000