3.4. Camel K インテグレーションの実行
kamel run
コマンドを使用すると、コマンドラインから OpenShift クラスターのクラウドで Camel K インテグレーションを実行できます。
前提条件
- Camel K 開発環境の設定
- Java または YAML DSL で記述された Camel インテグレーションが作成済みである。
手順
以下の例のように、
oc
クライアントツールを使用して OpenShift クラスターにログインします。oc login --token=my-token --server=https://my-cluster.example.com:6443
$ oc login --token=my-token --server=https://my-cluster.example.com:6443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例のように、Camel K Operator が稼働していることを確認します。
oc get pod
$ oc get pod NAME READY STATUS RESTARTS AGE camel-k-operator-86b8d94b4-pk7d6 1/1 Running 0 6m28s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel run
コマンドを入力し、OpenShift のクラウドでインテグレーションを実行します。以下に例を示します。Java の例
kamel run HelloCamelK.java
$ kamel run HelloCamelK.java integration "hello-camel-k" created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow YAML の例
kamel run hello.camelk.yaml
$ kamel run hello.camelk.yaml integration "hello" created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel get
コマンドを入力し、インテグレーションの状態を確認します。kamel get
$ kamel get NAME PHASE KIT hello Building Kit myproject/kit-bq666mjej725sk8sn12g
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションが初めて実行されると、Camel K はコンテナーイメージのインテグレーションキットをビルドします。インテグレーションキットは、必要なすべての Camel モジュールをダウンロードし、イメージクラスパスに追加します。
kamel get
を再度入力して、インテグレーションが稼働していることを確認します。kamel get
$ kamel get NAME PHASE KIT hello Running myproject/kit-bq666mjej725sk8sn12g
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamel log
コマンドを入力して、ログをstdout
に出力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Ctrl-C
キーを押して、ターミナルでログインを終了します。
関連情報
-
kamel run
コマンドの詳細については、kamel run --help
を入力してください。 - デプロイメントのターンアラウンド時間を短縮するには、開発モードでの Camel K インテグレーションの実行 を参照してください。
- インテグレーションを実行するための開発ツールの詳細は、Red Hat による Apache Camel K の VS Code ツール を参照してください。
- Camel K インテグレーションの管理 も参照してください。
CLI を使用しない統合の実行
CLI (コマンドラインインターフェイス) なしで統合を実行し、アプリケーションを実行するための設定で 統合カスタムリソース を作成できます。
たとえば、次のサンプルルートを実行します。
kamel run Sample.java -o yaml
kamel run Sample.java -o yaml
予想される統合カスタムリソースを返します。
このカスタムリソースを yaml ファイル my-integration.yaml
に保存します。ここで、oc
コマンドライン、UI、または API を使用して統合カスタムリソースを含む統合を実行し、OpenShift クラスターを呼び出します。次の例では、コマンドラインから oc
CLI を使用しています。
oc apply -f my-integration.yaml ... integration.camel.apache.org/my-integration created
oc apply -f my-integration.yaml
...
integration.camel.apache.org/my-integration created
Operator が統合を実行します。
- Kubernetes は、CustomResourceDefinitions の 構造スキーマ をサポートしています。
- Camel K トレイトの詳細については、Camel K トレイト設定リファレンス を参照してください。
カスタムリソースのスキーマの変更
厳密に型指定された Trait API は、CustomResourceDefinitions である integrations
、'integrationkits', and 'integrationplatforms'
を変更します。
spec.traits.<trait-id>.configuration
の下のトレイトプロパティーは、spec.traits.<trait-id>
の下で直接定義されるようになりました。
traits: container: configuration: enabled: true name: my-integration
traits:
container:
configuration:
enabled: true
name: my-integration
↓↓↓
traits: container: enabled: true name: my-integration
traits:
container:
enabled: true
name: my-integration
この実装では、下位互換性が可能です。下位互換性を実現するために、RawMessage
タイプの Configuration
フィールドが各トレイトタイプに提供され、既存の統合とリソースが新しい Camel K バージョンから読み取られるようになっています。
古い統合とリソースが読み取られると、各トレイトのレガシー設定 (存在する場合) が新しい Trait API フィールドに移行されます。新しい API フィールドで値が事前定義されている場合は、従来のフィールドより優先されます。