1.4. kamelets, KameletBindings 和 Pipes


Camel K Operator 捆绑 Kamelets,并将其安装为 kubernetes 对象。对于红帽构建的 Apache Camel for Quarkus 项目,您必须在 maven 项目中管理 kamelets yaml 文件。

管理 kamelets yaml 文件的方法有两种。

  1. kamelets 被打包并发布为 maven 工件 org.apache.camel.kamelets:camel-kameletshttps://github.com/apache/camel-kamelets您可以将这个依赖项添加到 pom.xml 中,并在 camel 路由启动时,它会在 classpath 中从该 jar 文件中加载 kamelet yaml 文件。

有开源 kamelet 和由红帽生成的,其工件后缀为 redhat-000nnn。例如:'1.10.7.redhat-00015'。它们可从 红帽 maven 存储库获取

2. 将 kamelet yaml 文件添加到 src/main/resources/kamelets 目录中,稍后被打包在最终的可部署工件中。不要在 pom.xml 中声明 org.apache.camel.kamelets:camel-kamelets。这样,camel 路由会从打包的项目加载 Kamelet yaml 文件。

KameletBinding 被重命名为 Pipe。因此,请考虑了解用例 3。虽然 kubernetes 资源名称 KameletBinding 仍然被支持,但它已被弃用。我们建议尽快将其重命名为 Pipe

我们建议更新 Kamelets,因为 Camel K 1.10.7 开始有很多更新。例如,您可以比较 1.102.3的 jms-amqp-10-sink.kamelet.yaml。

如果您有自定义 Kamelets,您必须相应地更新它们。

  • 重命名为 Kamelet 文件中的 模板
  • 属性 重命名为 bean 属性的属性。

1.4.1. Knative

当在 Camel K 中运行与 Knative 端点的集成路由时,Camel K Operator 会创建一些 Knative 对象,如 SinkBindingsTriggerSubscription。另外,Camel K Operator 会创建 knative.json 环境文件,需要 camel-knative 组件与集群中部署的 Knative 对象交互。

knative.json 示例

{
  "services": [
    {
      "type": "channel",
      "name": "messages",
      "url": "{{k.sink}}",
      "metadata": {
        "camel.endpoint.kind": "sink",
        "knative.apiVersion": "messaging.knative.dev/v1",
        "knative.kind": "Channel",
        "knative.reply": "false"
      }
    }
  ]
}
Copy to Clipboard Toggle word wrap

红帽构建的 Apache Camel for Quarkus 是一个 maven 项目。您必须手动创建这些 Knative 文件并提供额外的配置。如需了解将集成路由与 Knative 端点迁移,请参阅用例 2。

1.4.2. 监控

我们建议您添加自定义标签来标识集群中安装的 kubernetes 对象,以便更轻松地找到这些 kubernetes。默认情况下,quarkus openshift 扩展会添加标签 app.kubernetes.io/name=<app name >,以便您可以搜索使用此标签创建的对象。

为了监控目的,您可以使用 HawtIO diagnose 控制台 来监控 Camel 应用程序。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat