Red Hat Camel K is no longer supported.
As of June 30, 2025, Red Hat build of Camel K has reached End of Life. The suggested replacements is Red Hat build of Apache Camel. For details about moving, see the Camel K to Camel Quarkus migration guide.1.7. 已知问题
有几个与迁移集成路由相关的已知问题及其临时解决方案。这些临时解决方案不是红帽构建的 Apache Camel for Quarkus 的限制,而是迁移过程的一部分。迁移完成后,生成的 Maven 项目可以自定义以满足客户的需求。
1.7.1. Camel K 功能在 Camel for Quarkus 中不可用 复制链接链接已复制到粘贴板!
一些 Camel K 功能在 Quarkus 或 Camel 中不能作为 quarkus 属性提供。这些功能可能需要额外的配置步骤,以便在红帽构建的 Apache Camel for Quarkus 中构建和部署时获得相同的功能。
1.7.1.1. 所有者 Trait 复制链接链接已复制到粘贴板!
owner trait 为所有创建的资源设置 kubernetes owner 字段,简化了跟踪谁创建了 kubernetes 资源的过程。
一个 open Quarkus 问题 #13952 请求此功能。
没有临时解决方案来设置所有者字段。
1.7.1.2. 关联性 Trait 复制链接链接已复制到粘贴板!
节点关联性特征 允许您限制调度集成 pod 运行的节点。
存在一个开放的 Quarkus 问题,请求 此功能。
解决办法是在 maven 软件包步骤后实施后处理任务,将关联性配置添加到 target/kubernetes/openshift.yml 中。
1.7.1.3. PodDisruptionBudget Trait 复制链接链接已复制到粘贴板!
PodDisruptionBudget trait 允许为集成 pod 配置 PodDisruptionBudget 资源。
Quarkus 中有配置来生成 PodDisruptionBudget 资源。
解决办法是在 maven 软件包步骤后实施后处理任务,将 PodDisruptionBudget 配置添加到 target/kubernetes/openshift.yml 中。
1.7.2. Camel Jbang 无法添加 camel-quarkus-direct 依赖项 复制链接链接已复制到粘贴板!
如果集成路由包含 rest 和一个 直接 端点,如下例所示,请验证 pom.xml 是否包含 camel-quarkus-direct 依赖项。如果缺少,您必须添加它。
camel-quarkus-direct 依赖项,以添加到 pom.xml
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-direct</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-direct</artifactId>
</dependency>
1.7.3. Quarkus 构建失败并显示 复制链接链接已复制到粘贴板!
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
客户端不信任服务器证书。因此,您必须将服务器公钥添加到客户端,或信任服务器证书。如果要测试,您可以在 src/main/resources/application.properties 中添加以下属性并重建它。
quarkus.kubernetes-client.trust-certs=true
quarkus.kubernetes-client.trust-certs=true
1.7.4. Camel Jbang 无法导出路由 复制链接链接已复制到粘贴板!
当路由包含 kamelet 端点时,Camel Jbang 无法导出路由,该端点由 bean 支持。如果端点包含 kamelet,带有属性占位符 {{broker}},且在 kamelet 中有一个 type: " installationclass:org.apache.qpid.jms.jms.JmsConnectionFactory" 来初始化 camel 组件,它可能会失败。
from("direct:jms")
.to("kamelet:jms-amqp-10-sink?remoteURI={{broker}}&destinationName={{queue}}");
from("direct:jms")
.to("kamelet:jms-amqp-10-sink?remoteURI={{broker}}&destinationName={{queue}}");
此错误由以下错误组成:
如何修复:
将 kamelet 端点 {{broker}} 和 {{queue}} 中的属性占位符替换为任何值,例如: remoteURI=broker&destinationName=queue。现在,导出该文件,您可以在 src/main/ 目录中的导出路由中添加属性占位符。