3.4. Camel K インテグレーションの実行


kamel run コマンドを使用すると、コマンドラインから OpenShift クラスターのクラウドで Camel K インテグレーションを実行できます。

前提条件

手順

  1. 以下の例のように、oc クライアントツールを使用して OpenShift クラスターにログインします。

    $ oc login --token=my-token --server=https://my-cluster.example.com:6443
    Copy to Clipboard Toggle word wrap
  2. 以下の例のように、Camel K Operator が稼働していることを確認します。

    $ oc get pod
    NAME                               READY   STATUS    RESTARTS   AGE
    camel-k-operator-86b8d94b4-pk7d6   1/1     Running   0          6m28s
    Copy to Clipboard Toggle word wrap
  3. kamel run コマンドを入力し、OpenShift のクラウドでインテグレーションを実行します。以下に例を示します。

    Java の例

    $ kamel run HelloCamelK.java
    integration "hello-camel-k" created
    Copy to Clipboard Toggle word wrap

    YAML の例

    $ kamel run hello.camelk.yaml
    integration "hello" created
    Copy to Clipboard Toggle word wrap

  4. kamel get コマンドを入力し、インテグレーションの状態を確認します。

    $ kamel get
    NAME       PHASE           KIT
    hello      Building Kit    myproject/kit-bq666mjej725sk8sn12g
    Copy to Clipboard Toggle word wrap

    インテグレーションが初めて実行されると、Camel K はコンテナーイメージのインテグレーションキットをビルドします。インテグレーションキットは、必要なすべての Camel モジュールをダウンロードし、イメージクラスパスに追加します。

  5. kamel get を再度入力して、インテグレーションが稼働していることを確認します。

    $ kamel get
    NAME       PHASE   KIT
    hello      Running myproject/kit-bq666mjej725sk8sn12g
    Copy to Clipboard Toggle word wrap
  6. kamel log コマンドを入力して、ログを stdout に出力します。

    $ kamel log hello
    [1] 2021-08-11 17:58:40,573 INFO  [org.apa.cam.k.Runtime] (main) Apache Camel K Runtime 1.7.1.fuse-800025-redhat-00001
    [1] 2021-08-11 17:58:40,653 INFO  [org.apa.cam.qua.cor.CamelBootstrapRecorder] (main) bootstrap runtime: org.apache.camel.quarkus.main.CamelMainRuntime
    [1] 2021-08-11 17:58:40,844 INFO  [org.apa.cam.k.lis.SourcesConfigurer] (main) Loading routes from: SourceDefinition{name='camel-k-embedded-flow', language='yaml', location='file:/etc/camel/sources/camel-k-embedded-flow.yaml', }
    [1] 2021-08-11 17:58:41,216 INFO  [org.apa.cam.imp.eng.AbstractCamelContext] (main) Routes startup summary (total:1 started:1)
    [1] 2021-08-11 17:58:41,217 INFO  [org.apa.cam.imp.eng.AbstractCamelContext] (main)     Started route1 (timer://yaml)
    [1] 2021-08-11 17:58:41,217 INFO  [org.apa.cam.imp.eng.AbstractCamelContext] (main) Apache Camel 3.10.0.fuse-800010-redhat-00001 (camel-1) started in 136ms (build:0ms init:100ms start:36ms)
    [1] 2021-08-11 17:58:41,268 INFO  [io.quarkus] (main) camel-k-integration 1.6.6 on JVM (powered by Quarkus 1.11.7.Final-redhat-00009) started in 2.064s.
    [1] 2021-08-11 17:58:41,269 INFO  [io.quarkus] (main) Profile prod activated.
    [1] 2021-08-11 17:58:41,269 INFO  [io.quarkus] (main) Installed features: [camel-bean, camel-core, camel-k-core, camel-k-runtime, camel-log, camel-support-common, camel-timer, camel-yaml-dsl, cdi]
    [1] 2021-08-11 17:58:42,423 INFO  [info] (Camel (camel-1) thread #0 - timer://yaml) Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hello Camel K from yaml]
    ...
    Copy to Clipboard Toggle word wrap
  7. Ctrl-C キーを押して、ターミナルでログインを終了します。

関連情報

CLI を使用しない統合の実行

CLI (コマンドラインインターフェイス) なしで統合を実行し、アプリケーションを実行するための設定で 統合カスタムリソース を作成できます。

たとえば、次のサンプルルートを実行します。

kamel run Sample.java -o yaml
Copy to Clipboard Toggle word wrap

予想される統合カスタムリソースを返します。

apiVersion: camel.apache.org/v1
kind: Integration
metadata:
  creationTimestamp: null
  name: my-integration
  namespace: default
spec:
  sources:
  - content: "
    import org.apache.camel.builder.RouteBuilder;
    public class Sample extends RouteBuilder {
      @Override
      public void configure()
      throws Exception {
        from(\"timer:tick\")
        .log(\"Hello Integration!\");
       }
      }"
    name: Sample.java
status: {}
Copy to Clipboard Toggle word wrap

このカスタムリソースを yaml ファイル my-integration.yaml に保存します。ここで、oc コマンドライン、UI、または API を使用して統合カスタムリソースを含む統合を実行し、OpenShift クラスターを呼び出します。次の例では、コマンドラインから oc CLI を使用しています。

oc apply -f my-integration.yaml
...
integration.camel.apache.org/my-integration created
Copy to Clipboard Toggle word wrap

Operator が統合を実行します。

注記

カスタムリソースのスキーマの変更

厳密に型指定された Trait API は、CustomResourceDefinitions である integrations'integrationkits', and 'integrationplatforms' を変更します。

spec.traits.<trait-id>.configuration の下のトレイトプロパティーは、spec.traits.<trait-id> の下で直接定義されるようになりました。

traits:
  container:
    configuration:
      enabled: true
      name: my-integration
Copy to Clipboard Toggle word wrap

↓↓↓

traits:
  container:
    enabled: true
    name: my-integration
Copy to Clipboard Toggle word wrap

この実装では、下位互換性が可能です。下位互換性を実現するために、RawMessage タイプの Configuration フィールドが各トレイトタイプに提供され、既存の統合とリソースが新しい Camel K バージョンから読み取られるようになっています。

古い統合とリソースが読み取られると、各トレイトのレガシー設定 (存在する場合) が新しい Trait API フィールドに移行されます。新しい API フィールドで値が事前定義されている場合は、従来のフィールドより優先されます。

type Trait struct {
    // Can be used to enable or disable a trait. All traits share this common property.
    Enabled *bool `property:"enabled" json:"enabled,omitempty"`

    // Legacy trait configuration parameters.
    // Deprecated: for backward compatibility.
    Configuration *Configuration `json:"configuration,omitempty"`
}

// Deprecated: for backward compatibility.
type Configuration struct {
    RawMessage `json:",inline"`
}
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat