Red Hat Camel K is deprecated
Red Hat Camel K is deprecated and the End of Life date for this product is June 30, 2025. For help migrating to the current go-to solution, Red Hat build of Apache Camel, see the Migration Guide.6.3. Camel K プラットフォームトレイト
6.3.1. Builder トレイト
Builder トレイトは、IntegrationKits を構築および設定するために最適なストラテジーを決定するために内部で使用されます。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Builder トレイトはプラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.1.1. 設定
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait builder.[key]=[value] --trait builder.[key2]=[value2] Integration.java
$ kamel run --trait builder.[key]=[value] --trait builder.[key2]=[value2] Integration.java
以下の設定オプションが利用できます。
プロパティー | 型 | 説明 |
---|---|---|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
| サポートするビルドコンポーネント (OpenShift ビルド Pod など) で詳細なロギングを有効にします。Kaniko および Buildah はサポートされません。 |
|
| ビルドタスクに提供されるプロパティー一覧 |
6.3.2. Container トレイト
Container トレイトを使用すると、インテグレーションが実行されるコンテナーのプロパティーを設定できます。
また、コンテナーに関連付けられたサービスの設定も提供します。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Container トレイトはプラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.2.1. 設定
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait container.[key]=[value] --trait container.[key2]=[value2] Integration.java
$ kamel run --trait container.[key]=[value] --trait container.[key2]=[value2] Integration.java
以下の設定オプションが利用できます。
プロパティー | 型 | 説明 |
---|---|---|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
| |
|
| 必要な CPU の最小量。 |
|
| 必要なメモリーの最小容量。 |
|
| 必要な CPU の最大量。 |
|
| 必要なメモリーの最大容量。 |
|
| kubernetes サービス経由の公開を有効または無効にするために使用できます。 |
|
|
コンテナーによって公開される別のポートを設定します (デフォルトは |
|
|
コンテナーによって公開されるポートに異なるポート名を設定します (デフォルトは |
|
|
コンテナーポートを公開するサービスポートを設定します (デフォルト |
|
|
コンテナーポートを公開するサービスポート名を設定します (デフォルト |
|
|
メインのコンテナー名。デフォルトでは、名前付き |
|
| 主なコンテナーイメージ |
|
|
コンテナーのプローブで ProbesEnabled を有効/無効にします (デフォルトは |
|
| コンテナーが起動してから liveness プローブが開始されるまでの秒数。 |
|
| プローブがタイムアウトするまでの秒数。liveness プローブに適用されます。 |
|
| プローブを実行する頻度。liveness プローブに適用されます。 |
|
| 失敗後に、プローブが正常とみなされるための最小の連続成功回数。liveness プローブに適用されます。 |
|
| 正常に実行された後に失敗とみなされるプローブの連続失敗回数の最小値。liveness プローブに適用されます。 |
|
| コンテナーが起動してから readiness プローブが開始されるまでの秒数。 |
|
| プローブがタイムアウトするまでの秒数。readiness プローブに適用されます。 |
|
| プローブを実行する頻度。readiness プローブに適用されます。 |
|
| 失敗後に、プローブが正常とみなされるための最小の連続成功回数。readiness プローブに適用されます。 |
|
| 正常に実行された後に失敗とみなされるプローブの連続失敗回数の最小値。readiness プローブに適用されます。 |
6.3.3. Camel トレイト
Camel トレイトを使用すると Apache Camel K ランタイムおよび関連ライブラリーのバージョンを設定できますが、無効にすることはできません。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Camel トレイトはプラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.3.1. 設定
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait camel.[key]=[value] --trait camel.[key2]=[value2] Integration.java
$ kamel run --trait camel.[key]=[value] --trait camel.[key2]=[value2] Integration.java
以下の設定オプションが利用できます。
プロパティー | 型 | 説明 |
---|---|---|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
6.3.4. Dependencies トレイト
Dependencies トレイトは、ユーザーが実行するインテグレーションに基づいてランタイムの依存関係を自動的に追加するために内部で使用されます。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Dependencies トレイトはプラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.4.1. 設定
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait dependencies.[key]=[value] Integration.java
$ kamel run --trait dependencies.[key]=[value] Integration.java
以下の設定オプションが利用できます。
プロパティー | 型 | 説明 |
---|---|---|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
6.3.5. Deployer トレイト
Deployer トレイトを使用すると、インテグレーションをデプロイする高レベルのリソースの種類を明示的に選択できます。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Deployer トレイトはプラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.5.1. 設定
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait deployer.[key]=[value] --trait deployer.[key2]=[value2] Integration.java
$ kamel run --trait deployer.[key]=[value] --trait deployer.[key2]=[value2] Integration.java
以下の設定オプションが利用できます。
プロパティー | 型 | 説明 |
---|---|---|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
インテグレーションを実行するリソースを作成する際に、 |
6.3.6. Deployment トレイト
Deployment トレイトは、インテグレーションがクラスターで実行されるようにする Kubernetes デプロイメントを生成します。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Deployment トレイトはプラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.6.1. 設定
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait deployment.[key]=[value] Integration.java
$ kamel run --trait deployment.[key]=[value] Integration.java
以下の設定オプションが利用できます。
プロパティー | 型 | 説明 |
---|---|---|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
6.3.7. Environment トレイト
Environment トレイトは、NAMESPACE
、POD_NAME
などのインテグレーションコンテナーに標準の環境変数を注入するために内部で使用されます。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Environment トレイトはプラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.7.1. 設定
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait environment.[key]=[value] --trait environment.[key2]=[value2] Integration.java
$ kamel run --trait environment.[key]=[value] --trait environment.[key2]=[value2] Integration.java
以下の設定オプションが利用できます。
プロパティー | 型 | 説明 |
---|---|---|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
|
6.3.8. Error Handler トレイト
error-handler は、Error Handler ソースをインテグレーションランタイムに注入するのに使用されるプラットフォームトレイトです。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
error-handler トレイトは プラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.8.1. 設定
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait error-handler.[key]=[value] --trait error-handler.[key2]=[value2] Integration.java
$ kamel run --trait error-handler.[key]=[value] --trait error-handler.[key2]=[value2] Integration.java
以下の設定オプションが利用できます。
プロパティー | 型 | 説明 |
---|---|---|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
| 指定された、またはアプリケーションプロパティーで見つかったエラーハンドラー参照名 |
6.3.9. JVM トレイト
JVM トレイトは、インテグレーションを実行する JVM の設定に使用されます。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
JVM トレイトは プラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.9.1. 設定
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait jvm.[key]=[value] --trait jvm.[key2]=[value2] Integration.java
$ kamel run --trait jvm.[key]=[value] --trait jvm.[key2]=[value2] Integration.java
以下の設定オプションが利用できます。
プロパティー | 型 | 説明 |
---|---|---|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
| リモートデバッグをアクティベートし、たとえばポート転送を使用して、デバッガーを JVM に接続できるようにします。 |
|
| メインクラスがロードされる直前にターゲット JVM を一時停止します。 |
|
|
コンテナーログに JVM の開始に使用されるコマンドを出力します (デフォルトは |
|
|
新たに起動された JVM をリッスンするトランスポートアドレス (デフォルトは |
|
| JVM オプションの一覧 |
|
|
追加の JVM クラスパス ( |
6.3.9.2. 例
Integration
に追加のクラスパスを含めます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run -t jvm.classpath=/path/to/my-dependency.jar:/path/to/another-dependency.jar ...
$ kamel run -t jvm.classpath=/path/to/my-dependency.jar:/path/to/another-dependency.jar ...
6.3.10. Kamelets トレイト
kamelets トレイトは、Kamelets をインテグレーションランタイムに注入するのに使用されるプラットフォームトレイトです。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
kamelets トレイトは プラットフォームトレイト です。無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.10.1. 設定
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait kamelets.[key]=[value] --trait kamelets.[key2]=[value2] Integration.java
$ kamel run --trait kamelets.[key]=[value] --trait kamelets.[key2]=[value2] Integration.java
以下の設定オプションが利用できます。
プロパティー | 型 | 説明 |
---|---|---|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
| 参照される Kamelets とそのデフォルト設定を自動的に注入します (デフォルトで有効です)。 |
|
| 現在のインテグレーションにロードする Kamelet 名のコンマ区切りリスト |
6.3.11. NodeAffinity トレイト
NodeAffinity トレイトを使用すると、次の経路を通じて、統合 Pod がスケジュールできるノードを制限できます。
- ノードのラベル、または Pod 間のアフィニティーおよび非アフィニティーに基づく
- ノードですでに実行されている Pod のラベルに基づく
このトレイトは、デフォルトで無効になっています。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
6.3.11.1. 設定
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait affinity.[key]=[value] --trait affinity.[key2]=[value2] Integration.java
$ kamel run --trait affinity.[key]=[value] --trait affinity.[key2]=[value2] Integration.java
以下の設定オプションが利用できます。
プロパティー | 型 | 説明 |
---|---|---|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
| 常にインテグレーションの複数のレプリカを同じノードに配置します (デフォルトは false)。 |
|
| 常にインテグレーションの複数のレプリカを同じノードに配置しません (デフォルトは false)。 |
|
| ノードのラベルに基づいて、インテグレーション Pod がスケジュール可能なノードのセットを定義します。 |
|
| インテグレーション Pod と共に同じ場所に配置する Pod のセット (指定の namespace に対してラベルセレクターが一致するもの) を定義します。 |
|
| インテグレーション Pod と共に同じ場所に配置しない Pod のセット (指定の namespace に対してラベルセレクターが一致するもの) を定義します。 |
6.3.11.2. 例
組み込みノードラベル
kubernetes.io/hostname
を使用して、特定のノードで統合 Pod をスケジュールするには:Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run -t affinity.node-affinity-labels="kubernetes.io/hostname in(node-66-50.hosted.k8s.tld)" ...
$ kamel run -t affinity.node-affinity-labels="kubernetes.io/hostname in(node-66-50.hosted.k8s.tld)" ...
ノードごとに 1 つの統合 Pod をスケジュールするには (
Exists
オペレーターを使用):Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run -t affinity.pod-anti-affinity-labels="camel.apache.org/integration" ...
$ kamel run -t affinity.pod-anti-affinity-labels="camel.apache.org/integration" ...
インテグレーション Pod を他のインテグレーション Pod と同じ場所に配置するには、以下を実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run -t affinity.pod-affinity-labels="camel.apache.org/integration in(it1, it2)" ...
$ kamel run -t affinity.pod-affinity-labels="camel.apache.org/integration in(it1, it2)" ...
*-labels
オプションは、ラベルセレクター の要件に従います。これらには複数の値を指定でき、要件リストは AND (指定のすべての条件を適用) として解釈されます。たとえば、ノードごとに単一のインテグレーション Pod をスケジュールし、かつ Camel K operator Pod と同じ場所に配置しない場合は、以下を実行します。
kamel run -t affinity.pod-anti-affinity-labels="camel.apache.org/integration" -t affinity.pod-anti-affinity-labels="camel.apache.org/component=operator" ...
$ kamel run -t affinity.pod-anti-affinity-labels="camel.apache.org/integration" -t affinity.pod-anti-affinity-labels="camel.apache.org/component=operator" ...
詳細は、Kubernetes 公式ドキュメントの Assigning Pods to Nodes を参照してください。
6.3.12. Openapi トレイト
OpenAPI DSL トレイトは、OpenAPI 仕様からインテグレーションを作成できるように内部で使用されます。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
openapi トレイトは プラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.12.1. 設定
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait openapi.[key]=[value] Integration.java
$ kamel run --trait openapi.[key]=[value] Integration.java
以下の設定オプションが利用できます。
プロパティー | 型 | 説明 |
---|---|---|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
6.3.13. Owner トレイト
Owner トレイトは、作成されたすべてのリソースが作成されたインテグレーションに属すようにし、インテグレーションのアノテーションおよびラベルをこれらの所有されたリソースに転送します。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
Owner トレイトは プラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.13.1. 設定
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait owner.[key]=[value] --trait owner.[key2]=[value2] Integration.java
$ kamel run --trait owner.[key]=[value] --trait owner.[key2]=[value2] Integration.java
以下の設定オプションが利用できます。
プロパティー | 型 | 説明 |
---|---|---|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
| 転送するアノテーションのセット |
|
| 転送するラベルのセット |
6.3.14. プラットフォームトレイト
プラットフォームトレイトは、インテグレーションプラットフォームをインテグレーションに割り当てるために使用されるベーストレイトです。
プラットフォームが見つからない場合、トレイトはデフォルトのプラットフォームを作成できます。この機能は、プラットフォームにカスタム設定が必要ない場合に便利です (例: 組み込みのコンテナーイメージレジストリーがあるため OpenShift ではデフォルトの設定が動作します)。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
プラットフォームトレイト を無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.14.1. 設定
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait platform.[key]=[value] --trait platform.[key2]=[value2] Integration.java
$ kamel run --trait platform.[key]=[value] --trait platform.[key2]=[value2] Integration.java
以下の設定オプションが利用できます。
プロパティー | 型 | 説明 |
---|---|---|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
| プラットフォームがない場合にデフォルトのプラットフォーム (空のプラットフォーム) を作成します。 |
|
| グローバル Operator の場合、プラットフォームがグローバルに作成されるかどうかを示します (デフォルトは true です)。 |
|
| デフォルトのプラットフォームを作成できる場合に環境から自動検出します (OpenShift のみで作成)。 |
6.3.15. Quarkus トレイト
Quarkus トレイトにより、Quarkus ランタイムがアクティベートされます。
これはデフォルトで有効になっています。
ネイティブ実行可能ファイルへのコンパイル (つまり package-type=native
を使用する場合) は、kamelets と YAML 統合でのみサポートされます。また、少なくとも 4GiB のメモリーが必要であるため、ネイティブビルドを実行する Pod、つまり Operator Pod またはビルド Pod (プラットフォーム用に設定されたビルド戦略に依存) には十分なメモリーが必要です。
このトレイトは Kubernetes、Knative、および OpenShift プロファイルで利用できます。
quarkus トレイトは プラットフォームトレイト です。よって、これを無効にすると、プラットフォームの機能性が低下する可能性があります。
6.3.15.1. 設定
CLI でインテグレーションを実行する際にトレイトプロパティーを指定できます。
kamel run --trait quarkus.[key]=[value] --trait quarkus.[key2]=[value2] integration.java
$ kamel run --trait quarkus.[key]=[value] --trait quarkus.[key2]=[value2] integration.java
以下の設定オプションが利用できます。
プロパティー | 型 | 説明 |
---|---|---|
|
| トレイトを有効または無効にするのに使用できます。すべてのトレイトがこの共通プロパティーを共有します。 |
|
|
|
6.3.15.2. サポートされる Camel コンポーネント
Camel K は、すぐに使用できる Camel Quarkus エクステンションとして利用可能な Camel コンポーネントのみをサポートします。
6.3.15.3. 例
6.3.15.3.1. ネイティブインテグレーションへの自動ロールアウトデプロイメント
ネイティブ実行可能ファイルへのコンパイルは、実行時のメモリー消費量を抑えて高速に開始するインテグレーションを生成しますが、ビルドプロセスはリソースを大量に消費し、従来の Java アプリケーションへのパッケージ化よりも長い時間がかかります。
両方の長所を組み合わせるために、インテグレーションを実行するときに、従来のビルドとネイティブビルドの両方を並行して実行するように Quarkus トレイトを設定することができます。
kamel run -t quarkus.package-type=fast-jar -t quarkus.package-type=native ...
$ kamel run -t quarkus.package-type=fast-jar -t quarkus.package-type=native ...
インテグレーション Pod は fast-jar
ビルドが完了するとすぐに実行され、native
ビルドが完了するとすぐに native
イメージへのロールアウトデプロイがトリガーされ、サービスが中断されることはありません。