第2章 新機能


このセクションでは、Cryostat 4.0 リリースが提供する新機能を説明します。

完全な Red Hat サポート

4.0 リリース以降、Red Hat Build of Cryostat は Red Hat によって完全にサポートされる製品となりました。4.0 リリースより前は、Red Hat build of Cryostat はテクノロジープレビュー製品でした。

Cryostat Web コンソールプラグイン

Cryostat 4.0 以降では、Cryostat Web コンソールは Red Hat OpenShift Container Platform の動的プラグインとしても利用できるようになります。このプラグインを使用すると、OpenShift Container Platform コンソールから直接 Cryostat Web コンソール機能にアクセスできるため、個々の Cryostat インスタンスの個別のユーザーインターフェイスにアクセスする必要はありません。

Red Hat OpenShift Container Platform 4.15 以降に Cryostat Operator をインストールすると、Cryostat Operator によって Cryostat Web コンソールプラグインが自動的にインストールされます。この場合、Web コンソールの更新が利用可能であることを示すプロンプトがパネルの右上隅に表示されます。Web コンソールを更新すると、OpenShift Container Platform コンソールの左側のナビゲーションペインに Cryostat オプションが追加されます。Cryostat Operator を使用して 1 つ以上の Cryostat インスタンスを作成した後、Cryostat オプションをクリックすると、OpenShift Container Platform コンソールからこれらのインスタンスに直接アクセスできるようになります。

注記

Cryostat Operator は、Red Hat OpenShift Container Platform 4.15 以降でのみ、Cryostat Web コンソールプラグインのインストールをサポートしています。Operator がクラスターのバージョンが 4.15 より前であることを検出すると、Operator は Web コンソールプラグインをインストールできませんが、その他の Cryostat 機能はすべて期待どおりに動作します。

Cryostat Agent Init コンテナー

Cryostat 4.0 以降では、Red Hat Ecosystem Catalog に Cryostat Agent Init コンテナーイメージ (cryostat-agent-init) も含まれます。cryostat-agent-init コンテナーは、Cryostat エージェントのコンテナーベースのディストリビューションを提供し、Red Hat Maven リポジトリーからエージェントの JAR ファイルをダウンロードする必要をなくします。

cryostat-agent-init コンテナーは、選択した Pod へのエージェントの自動設定と注入に使用されます。

Cryostat エージェントの自動設定

Cryostat 4.0 以降では、Cryostat Operator を使用して Cryostat エージェントを自動的に設定できます。この機能を有効にするには、Pod がどの Cryostat インスタンスと連携するかを識別する cryostat.io/name および cryostat.io/namespace ラベルをアプリケーションデプロイメントに追加する必要があります。Cryostat Operator が、アプリケーションに cryostat.io/name および cryostat.io/namespace ラベルがあることを検出すると、Operator はエージェント JAR ファイルを含むボリュームをこのアプリケーションにマウントします。

この自動設定機能の一部として、Cryostat は、作成時に Pod を変更して Cryostat エージェントを注入する mutating admission webhook を使用します。また、webhook は、選択された Cryostat インスタンスに自動的に接続するようにエージェントを設定します。この場合、必要な cryostat.io/name および cryostat.io/namespace ラベルを含む Pod のみが webhook を呼び出すため、任意の Pod での Cryostat エージェントのセットアップが簡素化されます。さらに、Operator は、Cryostat インスタンスのターゲット namespace リスト内にあるアプリケーションデプロイメントでこれらのラベルが指定されている場合にのみ動作します。それ以外の場合は、セキュリティー上の理由から、Operator はアプリケーションがこの Cryostat インスタンスと通信するように設定しません。

webhook は、Cryostat エージェントのコンテナーベースのディストリビューション (cryostat-agent-init) を使用して、選択した Pod へのエージェントの自動設定と注入を行います。webhook が cryostat-agent-init コンテナーイメージを使用するため、ユーザーは Red Hat Maven リポジトリーからエージェント JAR ファイルをダウンロードする必要がなくなります。

Operator によるターゲット namespace の削除の処理

Cryostat エージェントの自動設定の一環として、Cryostat Operator はターゲット namespace やその中のオブジェクトの削除を監視し、それに対応できます。

以下の情報を考慮してください。

  • ターゲット namespace 内で証明書シークレットなどのオブジェクトを削除すると、Operator はこの namespace 内で削除されたオブジェクトを再作成します。
  • ターゲット namespace を削除してその後再作成すると、Operator はこの namespace 内で削除されたオブジェクトを再作成します。
  • ターゲット namespace を削除し、それを Cryostat インスタンスのカスタムリソース (CR) から削除すると、Operator は削除されたオブジェクトの再作成を試行しません。

クライアント証明書に基づく認証用のエージェントプロキシー

Cryostat エージェントの自動設定の一環として、Cryostat Operator は “エージェントプロキシーコンテナー” も自動的に設定します。このエージェントプロキシーは、認証に自己署名クライアント証明書を必要とし、選択した Cryostat HTTP API エンドポイントへのアクセスを許可する Nginx ベースのリバースプロキシーです。エージェントプロキシーを使用すると、Cryostat エージェントは Cryostat サーバーと通信し、クライアント証明書を使用してクラスター内部トラフィック用の Cryostat の API にアクセスできるため、APIServer トークンを使用する必要がなくなります。

エージェントのホスト名検証を無効にする CR プロパティー

Cryostat エージェントの自動設定の一環として、エージェントホスト名の検証を無効にすることもできます。このオプションは、Cryostat がエージェントのコールバックサーバーに接続しようとしたが、クラスター内の DNS セットアップによりエージェントのホスト名の自動検出が失敗した場合に使用するために、特別に設計されています。

Cryostat 4.0 では、新しい spec.agentOptions.disableHostnameVerification カスタムリソース (CR) プロパティーが追加され、これを true に設定すると、エージェントのホスト名検証を無効化できます。このオプションは、クラスターネットワークの設定方法が原因で Cryostat エージェントの自動ホスト名検出が失敗した場合に、ユーザーにフォールバックメカニズムを提供します。

エージェントポートを設定するための CR プロパティー

Cryostat エージェントの自動設定の一環として、Cryostat エージェントのコールバックサーバーのポート番号が設定可能になりました。アプリケーションでこのポートをすでに使用している場合は、この機能を使用して、エージェントのコールバックサーバーのデフォルトの 9977 ポートをオーバーライドできます。

Cryostat 4.0 では、各ターゲット namespace のコールバックヘッドレスサービスのラベルとアノテーションを指定するために使用できる新しい spec.serviceOptions.agentCallbackConfig CR プロパティーが追加されました。また、アプリケーションデプロイメントで cryostat.io/callback-port ラベルを使用して、エージェントのコールバックサーバーがバインドするコンテナーポートを指定することもできます。

エージェント注入用コンテナーのユーザー選択

Cryostat エージェントの自動設定の一環として、アプリケーションデプロイメントで cryostat.io/container ラベルを使用して、エージェントを注入するコンテナーを指定できます。このラベルを含めると、ミューテーション webhook によって指定されたコンテナーにエージェントが注入されます。このラベルを含めない場合、ミューテーション webhook はデフォルトでエージェントを最初のコンテナーイメージに注入します。

注記

cryostat.io/container ラベルは 1 つの値のみを受け入れます。同じ Pod 内で複数のコンテナーが実行されている場合、エージェント注入用に選択できるコンテナーは 1 つだけです。マルチコンテナー Pod では、エージェントを注入する Java コンテナーが 1 つしかない場合にこの機能が役立ちます。

cryostat-agent-init コンテナーイメージのリソース要件のカスタマイズ

Cryostat エージェントの自動設定の一環として、Pod ミューテーション webhook が使用する cryostat-agent-init コンテナーイメージのリソース要件と制限をカスタマイズできます。Cryostat 4.0 では、cryostat-agent-init コンテナーの適切なリソース要件と制限を設定するために使用できる新しい spec.agentOptions.resources CR プロパティーが追加されました。

Cryostat エージェントの書き込み権限のユーザー制御

Cryostat エージェントの自動設定の一部として、注入されたエージェントに特定の Pod に対する書き込みアクセス権を与えるか、読み取り専用アクセス権を与えるかを制御できます。エージェントに読み取り専用アクセス権を付与する場合は、アプリケーションデプロイメントで cryostat.io/read-only ラベルを true に設定します。この機能により、注入されたエージェントのセキュリティーをより詳細に制御できるようになります。

Cryostat エージェントを注入する場合の環境変数の選択

Cryostat エージェントの自動設定の一環として、Cryostat エージェントを注入するための JVM 引数の追加に使用する環境変数のタイプを選択できます。この機能は、JAVA_TOOL_OPTIONS を使用したくないユーザー向けに設計されています。たとえば、Wildfly では MODULE_OPTS などの環境変数を使用することを推奨します。

アプリケーションデプロイメントで cryostat.io/java-options-var ラベルを使用して、使用する環境変数のタイプを指定できます。この機能により、JAVA_TOOL_OPTIONS がアプリケーションで機能しない場合に柔軟性が向上します。

コールバック URL コンポーネントの設定プロパティー

ワイルドカード TLS 証明書の生成をサポートするために、Cryostat エージェントは、Pod IP アドレスだけでなく、Cryostat からもアクセス可能なホスト名を含むコールバック URL を使用します。このような状況では、Cryostat は、アプリケーションデプロイメントの JAVA_OPTS_APPEND 環境変数に追加できる次の設定プロパティーの値に基づいて、ドメイン名検索 (DNS) ルックアップを使用してホスト名を検出します。

Expand
プロパティー名値の例

cryostat.agent.callback.scheme

http

cryostat.agent.callback.host-name

$(POD_NAME),$(POD_IP)[replace("."\,"-")]

cryostat.agent.callback.domain-name

headless.cryostat-operator-system.svc

cryostat.agent.callback.port

9977

io.cryostat.agent.shaded.org.slf4j.simpleLogger.defaultLogLevel

debug

これらのプロパティーの詳細は、Agent Properties を参照してください。ログレベルの詳細は、Logging を参照してください。

TLS サーバーのキーストアパスワードがオプションになる

Cryostat 4.0 では、TLS サーバーのセットアップにキーストアのパスワードは不要になりました。キーストアのパスワードがオプションになったため、Cryostat Operator は各ターゲット namespace にシークレットを生成する必要がなくなり、Cryostat エージェントの自動設定が簡素化されます。この機能拡張は、キーストアのパスワードの使用を避けることを推奨する cert-manager のベストプラクティスにも準拠しています。

JFR レコーディング用の PRESET イベントテンプレートタイプ

Cryostat 4.0 では、JDK Flight Recorder (JFR) レコーディング用の PRESET イベントテンプレートタイプが導入され、Cryostat に同梱されている事前にロードされた .jfc ファイルが提供されます。ランタイムに作成または削除できるカスタムイベントテンプレートとは異なり、プリセットイベントテンプレートは読み取り専用であり、エンドユーザーが変更または削除することはできません。プリセットイベントテンプレートの目的は、Cryostat の作成者またはコミュニティーによって提案された JFR イベントテンプレートを提供し、一般的なアプリケーションフレームワークのサポートを可能にすることです。

Quarkus イベントの JFR サポート

Cryostat 4.0 では、ターゲット JVM に登録された Quarkus 固有のフレームワークレベルのイベントに基づいて JFR レコーディングを作成するためのサポートが追加されました。

この機能は、Quarkus イベントのプリセットテンプレートを含む PRESET イベントテンプレートタイプを使用します。プリセットの Quarkus イベントテンプレートを使用して、Quarkus 固有のイベントタイプのみの JFR レコーディングを生成できます。

Hibernate イベントの JFR サポート

Cryostat 4.0 では、ターゲット JVM に登録された Hibernate JFR イベントに基づいて JFR レコーディングを作成するためのサポートが追加されました。

この機能は、Hibernate JFR イベントのプリセットテンプレートを含む PRESET イベントテンプレートタイプを使用します。事前設定された Hibernate イベントテンプレートを使用して、Hibernate 固有のイベントタイプのみの JFR レコーディングを生成できます。

一致式は JFR イベントタイプを評価できる

Cryostat 4.0 以降では、特定のターゲット JVM で使用可能な JFR イベントタイプを評価する一致式を作成できます。一致式コンテキストに jfrEventTypeIds 関数が含まれるようになりました。この関数は、一致式が参照できるコンテキストターゲットオブジェクトを引数として取り、JFR イベントタイプ ID の文字列の配列を返します。

以下に例を示します。

jfrEventTypeIds(target: Target): string[]

この機能を使用すると、フレームワークレベルまたはアプリケーションレベルのイベントを含むプリセットまたはカスタムイベントテンプレートを使用する自動化ルールを定義できます。これらの自動化ルールは、これらのイベントタイプが存在するターゲット JVM でのみアクティブ化されます。

以下に例を示します。

jfrEventTypeIds(target).exists(x, x.startsWith(\"quarkus.\"))

ネットワーク Ingress ポリシーを無効にする CR プロパティー

Cryostat 4.0 以降では、オプションでネットワーク Ingress ポリシーを無効化できます。Cryostat 4.0 では、新たに networkPolicies.coreConfig.disableNetworkPolicyCreation CR プロパティーが追加され、このプロパティーを true に設定することで、これらのネットワークポリシーを無効化できます。

注記

ネットワークポリシーはデフォルトで有効になっています。予期しない問題が発生しない限り (たとえば、クラスターがサービス、ルート、または Ingress に対して異なるネットワークスタックを使用している場合など)、これらのポリシーを有効のままにしておくことを検討してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る