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 模块并将其添加到镜像 classpath 中。
再次输入
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 集成
- 有关运行集成的开发工具的详情,请参阅 VS Code Tooling for Apache Camel K by Red Hat
- 另请参阅 管理 Camel K 集成
在不使用 CLI 的情况下运行集成
您可以在没有 CLI (Command Line Interface)的情况下运行 集成自定义资源,并使用配置创建一个集成自定义资源 来运行应用程序。
例如,执行以下示例路由。
kamel run Sample.java -o yaml
kamel run Sample.java -o yaml
它返回预期的 Integration 自定义资源。
将此自定义资源保存到 yaml 文件 my-integration.yaml
中。现在,使用 oc
命令行、UI 或 API 来调用 OpenShift 集群,运行包含 Integration 自定义资源的集成。在以下示例中,从命令行使用 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 的 Structural Schema。
- 有关 Camel K traits 的详情,请参阅 Camel K trait 配置参考。
自定义资源的 schema 更改
强大的 Trait API 会对以下 CustomResourceDefinitions 实施更改: 集成
、集成工具包'和"集成平台"。
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 字段中预定义了值,它们会在旧的 API 字段前面。