Red Hat Camel K is deprecated
Red Hat Camel K is deprecated and the End of Life date for this product is June 30, 2025. For help migrating to the current go-to solution, Red Hat build of Apache Camel, see the Migration Guide.第 1 章 概述
Camel K 设置为弃用,而是使用统一的 Camel 方法进行 OpenShift。以 Red Hat Build of Camel for Quarkus 为目标,我们的目标是为现有客户提供迁移路径,以转换其 Camel K 集成。这种方法可确保无缝迁移到 Apache Camel for Quarkus 的红帽构建,在考虑 Camel K 支持的功能和红帽构建的 Apache Camel for Quarkus 时,需要最少的工作。
您必须了解构建、配置、部署和运行应用程序的 Quarkus 方法。
1.1. 假设
- 要迁移所需的源文件位于 java、xml 或 yaml 中。
- 要部署的目标系统是一个 OpenShift Cluster 4.15+。
- Camel K 版本为 1.10.7。
- 迁移是红帽构建的 Apache Camel for Quarkus。
Camel K 操作使用 Kamel CLI 运行集成,而 Camel K Operator 则管理并部署为运行的 pod 以及各种 Kubernetes 对象,包括 Deployment、Service、Route、ConfigMap、Secret 和 Knative。
运行的 java 程序是 Camel on Quarkus 应用程序。
当使用红帽构建的 Apache Camel for Quarkus 时,起点是一个 Maven 项目,其中包含构建和运行集成所需的所有工件。此项目将包括 Deployment、Service、ConfigMap 和其他资源,虽然它们的配置可能与 Camel K 中的配置不同。例如,属性可能会存储在 application.properties 文件中,并且 Knative 配置可能需要单独的文件。主要目标是确保集成路由已在 OpenShift 集群中部署并运行。
1.1.1. 要求
要执行迁移,需要遵循一组工具和配置。
- Camel JBang 4.7.0.
- JDK 17 或 21。
- Maven (mvn cli) 3.9.5。
- oc cli.
- OpenShift 集群 4.12+。
1.1.2. 超出范围
1.1.3. 使用案例
Camel K 集成可能会有所不同,通常由几个与集成路由和配置对应的文件组成。集成路由可以在 Java、XML 或 YAML 中定义,而配置可以在属性文件或 kamel run
命令中指定。此迁移文档解决 ConfigMap 中涉及 KameletBinding、Kamelet、Knative 和属性的用例。
1.1.4. 版本
Camel K 1.10.7 使用红帽构建的 Apache Camel for Quarkus 的不同 Camel 和 Quarkus 版本。
工件 | Camel K | Red Hat build of Apache Camel for Quarkus |
---|---|---|
JDK | 11 | 21 (首选)、17 (支持) |
Camel | 3.18.6.redhat-00009 | 4.4.0.redhat-00025 |
Camel for Quarkus | 2.13.3.redhat-00011 | 3.8.0.redhat-00006 |
Quarkus 平台 | 2.13.9.SP2-redhat-00003 | 3.8.5.redhat-00003 |
kamelet Catalog | 1.10.7 | 2.3.x |
从 Camel K 迁移到 Apache Camel for Quarkus 构建同时更新多个库。因此,由于底层库的不同,在构建或运行 Apache Camel for Quarkus 中的集成时可能会遇到一些错误。
1.1.5. 项目和机构
Camel K 集成路由源自 java、yaml 或 xml 中的单个文件。没有项目的概念来组织依赖项和构建。结束时,每个 kamel run <my app>
; 都会产生一个正在运行的 pod。
红帽构建的 Apache Camel 需要一个 maven 项目。使用 camel export <many files&
gt; 来生成 maven 项目。在构建项目时,容器镜像包含项目中定义的所有集成路由。
如果需要每个集成路由有一个 pod,您必须为每个集成路由创建一个 maven 项目。虽然有许多复杂方法,使用带有多个集成路由和自定义构建的单一 maven 项目来生成容器镜像来启动 pod,但这超出了此迁移指南的范围。