47.2. 追加の Camel Quarkus 設定


重要

このリリースの Quarkus 用 Camel 拡張機能では、camel-quarkus-kubernetes の拡張機能は、クラスターサービスとして camel-quarkus-master 拡張機能と併用する場合にのみサポートされます。さらに、camel-quarkus-kubernetes 拡張機能をサポートするには、アプリケーションで quarkus-openshift-client 拡張機能への依存関係を明示的に追加する必要があります。

47.2.1. Kubernetes クライアントインスタンスの自動登録

エクステンションは、kubernetesClient という名前の Kubernetes クライアント Bean を自動的に登録します。次のように、ルートで Bean を参照できます。

from("direct:pods")
    .to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=listPods")
Copy to Clipboard Toggle word wrap

デフォルトでは、クライアントはローカルの kubeconfig ファイルから設定されます。application.properties 内のプロパティーを使用して、クライアント設定をカスタマイズできます。

quarkus.kubernetes-client.master-url=https://my.k8s.host
quarkus.kubernetes-client.namespace=my-namespace
Copy to Clipboard Toggle word wrap

設定オプションの完全なセットは、Quarkus Kubernetes Client ガイド に記載されています。

47.2.2. 特定のエンドポイントから消費するコンシューマがクラスタ内で 1 つだけであること

同じルートが複数の Pod にデプロイされている場合、このエクステンションを マスターのエクステンション と組み合わせて使用すると便利な場合があります。このようなセットアップでは、キャメルマスター namespace 全体で一度に 1 つのコンシューマーがアクティブになります。

たとえば、以下のルートを複数の Pod にデプロイするとします。

from("master:ns:timer:test?period=100").log("Timer invoked on a single pod at a time");
Copy to Clipboard Toggle word wrap

以下のようなプロパティーを使用して、kubernetes クラスターサービスを有効にすることができます。

quarkus.camel.cluster.kubernetes.enabled = true
Copy to Clipboard Toggle word wrap

その結果、1 つのコンシューマーが ns camel マスター namespace 全体でアクティブになります。これは、特定の時点で、単一のタイマーのみがクラスター全体でエクスチェンジを生成することを意味します。つまり、メッセージは一度に 1 つの Pod で 100 ミリ秒ごとにログに記録されます。

kubernetes クラスターサービスは、quarkus.camel.cluster.kubernetes.* プロパティーをさらに微調整できます。

Expand
設定プロパティータイプデフォルト

lock quarkus.camel.cluster.kubernetes.enabled

quarkus.camel.cluster.kubernetes.* 設定に従って、Kubernetes クラスターサービスを自動的に設定する必要があるかどうか。

boolean

false

lock quarkus.camel.cluster.kubernetes-id

クラスターサービス ID (デフォルトは null)。

string

 

lock quarkus.camel.cluster.kubernetes.master-url

Kubernetes マスターの URL (デフォルトでは Kubernetes クライアントプロパティーから読み取られます)。

string

 

lock quarkus.camel.cluster.kubernetes.connection-timeout-millis

Kubernetes API サーバーにリクエストを送信するときに使用する接続タイムアウト (ミリ秒単位)。

java.lang.Integer

 

lock quarkus.camel.cluster.kubernetes.namespace

Pod と configmap を含む Kubernetes namespace の名前 (デフォルトで自動検出)。

string

 

lock quarkus.camel.cluster.kubernetes.pod-name

現在の Pod の名前 (デフォルトではコンテナーのホスト名から自動検出されます)。

string

 

lock quarkus.camel.cluster.kubernetes.jitter-factor

すべての Pod が同じ瞬間に Kubernetes API を呼び出さないようにするために適用するジッター係数 (デフォルトは 1.2)。

java.lang.Double

 

lock quarkus.camel.cluster.kubernetes.lease-duration-millis

現在のリーダーのデフォルトのリース期間 (デフォルトは 15000)。

java.lang.Long

 

lock quarkus.camel.cluster.kubernetes.renew-deadline-millis

リーダーシップを失った可能性があるため、リーダーがサービスを停止しなければならない期限 (デフォルトは 10000)。

java.lang.Long

 

lock quarkus.camel.cluster.kubernetes.retry-period-millis

リーダーシップを確認して獲得するための後続の 2 つの試みの間の時間。ジッター係数を使用してランダム化されます (デフォルトは 2000)。

java.lang.Long

 

lock quarkus.camel.cluster.kubernetes-order

サービス検索の順序/優先度 (デフォルトは 2147482647)。

java.lang.Integer

 

lock quarkus.camel.cluster.kubernetes.resource-name

楽観的ロックを行うために使用されるリースリソースの名前 (デフォルトは leaders)。リソース名は、基になる Kubernetes リソースが単一のロックを管理できる場合に接頭辞として使用されます。

string

 

lock quarkus.camel.cluster.kubernetes.lease-resource-type

Kubernetes で使用されるリースリソースタイプ。config-map または lease のいずれかです (デフォルトは lease)。

org.apache.camel.component.kubernetes.cluster.LeaseResourceType

 

lock quarkus.camel.cluster.kubernetes.rebalancing

camel マスター namespace リーダーをクラスター内のすべての camel コンテキストに均等に分散する必要があるかどうか。

boolean

true

lock quarkus.camel.cluster.kubernetes-labels

クラスターを設定する Pod を識別するために使用されるラベルのキー/値。デフォルトは空のマップです。

Map<String,String>

 

lock ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2025 Red Hat