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:6443Copy 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 6m28sCopy to Clipboard Copied! Toggle word wrap Toggle overflow kamel runコマンドを入力し、OpenShift のクラウドでインテグレーションを実行します。以下に例を示します。Java の例
kamel run HelloCamelK.java
$ kamel run HelloCamelK.java integration "hello-camel-k" createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow YAML の例
kamel run hello.camelk.yaml
$ kamel run hello.camelk.yaml integration "hello" createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow kamel getコマンドを入力し、インテグレーションの状態を確認します。kamel get
$ kamel get NAME PHASE KIT hello Building Kit myproject/kit-bq666mjej725sk8sn12gCopy to Clipboard Copied! Toggle word wrap Toggle overflow インテグレーションが初めて実行されると、Camel K はコンテナーイメージのインテグレーションキットをビルドします。インテグレーションキットは、必要なすべての Camel モジュールをダウンロードし、イメージクラスパスに追加します。
kamel getを再度入力して、インテグレーションが稼働していることを確認します。kamel get
$ kamel get NAME PHASE KIT hello Running myproject/kit-bq666mjej725sk8sn12gCopy 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 フィールドで値が事前定義されている場合は、従来のフィールドより優先されます。