2.44. Kubernetes
Kubernetes API に対して操作を実行する
2.44.1. 含まれるもの リンクのコピーリンクがクリップボードにコピーされました!
-
Kubernetes ConfigMap コンポーネント、URI 構文:
kubernetes-config-maps:masterUrl
-
Kubernetes Custom Resources コンポーネント、URI 構文:
kubernetes-custom-resources:masterUrl
-
Kubernetes Deployments コンポーネント、URI 構文:
kubernetes-deployments:masterUrl
-
Kubernetes HPA コンポーネント、URI 構文:
kubernetes-hpa:masterUrl
-
Kubernetes Job コンポーネント、URI 構文:
kubernetes-job:masterUrl
-
Kubernetes Namespaces コンポーネント、URI 構文:
kubernetes-namespaces:masterUrl
-
Kubernetes Nodes コンポーネント、URI 構文:
kubernetes-nodes:masterUrl
-
Kubernetes Persistent Volume コンポーネント、URI 構文:
kubernetes-persistent-volumes:masterUrl
-
Kubernetes Persistent Volume Claim コンポーネント、URI 構文:
kubernetes-persistent-volumes-claims:masterUrl
-
Kubernetes Pods コンポーネント、URI 構文:
kubernetes-pods:masterUrl
-
Kubernetes Replication Controller コンポーネント、URI 構文:
kubernetes-replication-controllers:masterUrl
-
Kubernetes Resources Quota コンポーネント、URI 構文:
kubernetes-resources-quota:masterUrl
-
Kubernetes Secrets コンポーネント、URI 構文:
kubernetes-secrets:masterUrl
-
Kubernetes Service Account コンポーネント、URI 構文:
kubernetes-service-accounts:masterUrl
-
Kubernetes Services コンポーネント、URI 構文:
kubernetes-services:masterUrl
-
Openshift Build Config コンポーネント、URI 構文:
openshift-build-configs:masterUrl
-
Openshift Builds コンポーネント、URI 構文:
openshift-builds:masterUrl
-
Openshift Deployment Configs コンポーネント、URI 構文:
openshift-deploymentconfigs:masterUrl
使用方法と設定の詳細については、上記リンクを参照してください。
2.44.2. Maven コーディネート リンクのコピーリンクがクリップボードにコピーされました!
code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成
または、既存のプロジェクトに座標を追加します。
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-kubernetes</artifactId> </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-kubernetes</artifactId>
</dependency>
2.44.3. 追加の Camel Quarkus 設定 リンクのコピーリンクがクリップボードにコピーされました!
テスト内容。
2.44.3.1. Kubernetes クライアントインスタンスの自動登録 リンクのコピーリンクがクリップボードにコピーされました!
エクステンションは、kubernetesClient
という名前の Kubernetes クライアント Bean を自動的に登録します。次のように、ルートで Bean を参照できます。
from("direct:pods") .to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=listPods")
from("direct:pods")
.to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=listPods")
デフォルトでは、クライアントはローカルの kubeconfig ファイルから設定されます。application.properties
内のプロパティーを使用して、クライアント設定をカスタマイズできます。
quarkus.kubernetes-client.master-url=https://my.k8s.host quarkus.kubernetes-client.namespace=my-namespace
quarkus.kubernetes-client.master-url=https://my.k8s.host
quarkus.kubernetes-client.namespace=my-namespace
設定オプションの完全なセットは、Quarkus Kubernetes Client ガイド に記載されています。
2.44.3.2. 特定のエンドポイントから消費するコンシューマがクラスタ内で 1 つだけであること リンクのコピーリンクがクリップボードにコピーされました!
同じルートが複数の Pod にデプロイされている場合、このエクステンションを マスターのエクステンション と組み合わせて使用すると便利な場合があります。このようなセットアップでは、キャメルマスター namespace 全体で一度に 1 つのコンシューマーがアクティブになります。
たとえば、以下のルートを複数の Pod にデプロイするとします。
from("master:ns:timer:test?period=100").log("Timer invoked on a single pod at a time");
from("master:ns:timer:test?period=100").log("Timer invoked on a single pod at a time");
以下のようなプロパティーを使用して、kubernetes クラスターサービスを有効にすることができます。
quarkus.camel.cluster.kubernetes.enabled = true
quarkus.camel.cluster.kubernetes.enabled = true
その結果、1 つのコンシューマーが ns
camel マスター namespace 全体でアクティブになります。これは、特定の時点で、単一のタイマーのみがクラスター全体でエクスチェンジを生成することを意味します。つまり、メッセージは一度に 1 つの Pod で 100 ミリ秒ごとにログに記録されます。
kubernetes クラスターサービスは、quarkus.camel.cluster.kubernetes.*
プロパティーをさらに微調整できます。
設定プロパティー | タイプ | デフォルト |
---|---|---|
quarkus.camel.cluster.kubernetes.* 設定に従って、Kubernetes クラスターサービスを自動的に設定する必要があるかどうか。 |
|
|
クラスターサービス 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)。 |
| |
camel マスター namespace リーダーをクラスター内のすべての camel コンテキストに均等に分散する必要があるかどうか。 |
|
|
クラスターを設定する Pod を識別するために使用されるラベルのキー/値。デフォルトは空のマップです。 |
|
ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。