2.67. Kubernetes クラスターサービス
Camel Cluster Service SPI の Kubernetes 実装を提供します
2.67.1. Maven コーディネート リンクのコピーリンクがクリップボードにコピーされました!
code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成
または、既存のプロジェクトに座標を追加します。
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-kubernetes-cluster-service</artifactId>
</dependency>
2.67.2. 追加の Camel Quarkus 設定 リンクのコピーリンクがクリップボードにコピーされました!
2.67.2.1. 特定のエンドポイントから消費するコンシューマがクラスタ内で 1 つだけであること リンクのコピーリンクがクリップボードにコピーされました!
同じルートが複数の Pod にデプロイされている場合、このエクステンションを マスターのエクステンション と組み合わせて使用すると便利な場合があります。このようなセットアップでは、キャメルマスター namespace 全体で一度に 1 つのコンシューマーがアクティブになります。
たとえば、以下のルートを複数の Pod にデプロイするとします。
from("master:ns:timer:test?period=100").log("Timer invoked on a single pod at a time");
その結果、1 つのコンシューマーが ns camel マスター namespace 全体でアクティブになります。これは、特定の時点で、単一のタイマーのみがクラスター全体でエクスチェンジを生成することを意味します。つまり、メッセージは一度に 1 つの Pod で 100 ミリ秒ごとにログに記録されます。
kubernetes クラスターサービスは、quarkus.camel.cluster.kubernetes.* プロパティーをさらに微調整できます。
| 設定プロパティー | 型 | デフォルト |
|---|---|---|
|
'quarkus.camel.cluster.kubernetes.*' 設定に従って、Kubernetes クラスターサービスを自動的に設定する必要があるかどうか。 |
|
|
|
camel マスター namespace リーダーをクラスター内のすべての camel コンテキストに均等に分散する必要があるかどうか。 |
|
|
|
クラスターサービス ID (デフォルトは null)。 |
| |
|
Kubernetes マスターの URL (デフォルトでは Kubernetes クライアントプロパティーから読み取られます)。 |
| |
|
Kubernetes API サーバーにリクエストを送信するときに使用する接続タイムアウト (ミリ秒単位)。 |
| |
|
Pod と configmap を含む Kubernetes namespace の名前 (デフォルトで自動検出)。 |
| |
|
現在の Pod の名前 (デフォルトではコンテナーのホスト名から自動検出されます)。 |
| |
|
すべての Pod が同じ瞬間に Kubernetes API を呼び出さないようにするために適用するジッター係数 (デフォルトは 1.2)。 |
| |
|
現在のリーダーのデフォルトのリース期間 (デフォルトは 15000)。 |
| |
|
リーダーシップを失った可能性があるため、リーダーがサービスを停止しなければならない期限 (デフォルトは 10000)。 |
| |
|
リーダーシップを確認して獲得するための後続の 2 つの試みの間の時間。ジッター係数を使用してランダム化されます (デフォルトは 2000)。 |
| |
|
サービス検索の順序/優先度 (デフォルトは 2147482647)。 |
| |
|
楽観的ロックを行うために使用されるリースリソースの名前 (デフォルトは 'leaders')。リソース名は、基になる Kubernetes リソースが単一のロックを管理できる場合に接頭辞として使用されます。 |
| |
|
Kubernetes で使用されるリースリソースタイプ。'config-map' または 'lease' のいずれかです (デフォルトは 'lease')。 |
| |
|
[[quarkus-camel-cluster-kubernetes-labels—labels]] クラスターを設定する Pod を識別するために使用されるラベルのキー/値。デフォルトは空のマップです。 |
|
ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。