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.6.2.6.2.2. 向路由发出 HTTP 请求
对于所有示例,您可以使用以下 curl 命令发出 HTTP 请求。它使用内联脚本来检索 openshift 命名空间和集群基域,如果您使用不支持这些内联脚本的 shell,您应该将内联脚本替换为实际命名空间和基域的值。
curl -k https://platform-http-server-`oc config view --minify -o 'jsonpath={..namespace}'`.`oc get dnses/cluster -ojsonpath='{.spec.baseDomain}'`/hello?name=Camel-K
curl -k https://platform-http-server-`oc config view --minify -o 'jsonpath={..namespace}'`.`oc get dnses/cluster -ojsonpath='{.spec.baseDomain}'`/hello?name=Camel-K
要使用 secret 添加 边缘路由,请使用以
-secret结尾的参数设置包含证书的 secret 名称。此路由特征引用名为my-combined-certs的 secret,其包含名为tls.key和tls.crt的两个密钥。kamel run --dev PlatformHttpServer.java -t route.tls-termination=edge -t route.tls-certificate-secret=my-combined-certs/tls.crt -t route.tls-key-secret=my-combined-certs/tls.key
kamel run --dev PlatformHttpServer.java -t route.tls-termination=edge -t route.tls-certificate-secret=my-combined-certs/tls.crt -t route.tls-key-secret=my-combined-certs/tls.keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要使用 secret 添加 透传 路由,TLS 在集成 pod 中被设置,在运行的集成 pod 中应该可以看到这些密钥和证书,以便实现此目的,我们在集成 pod 中挂载 secret,然后我们使用 some camel quarkus 参数在运行的 pod 中引用这些证书文件,它们以
-prkus.http.ssl.ssl.ssl.certificate开头。此路由特征引用名为my-combined-certs的 secret,其包含名为tls.key和tls.crt的两个密钥。kamel run --dev PlatformHttpServer.java --resource secret:my-combined-certs@/etc/ssl/my-combined-certs -p quarkus.http.ssl.certificate.file=/etc/ssl/my-combined-certs/tls.crt -p quarkus.http.ssl.certificate.key-file=/etc/ssl/my-combined-certs/tls.key -t route.tls-termination=passthrough -t container.port=8443
kamel run --dev PlatformHttpServer.java --resource secret:my-combined-certs@/etc/ssl/my-combined-certs -p quarkus.http.ssl.certificate.file=/etc/ssl/my-combined-certs/tls.crt -p quarkus.http.ssl.certificate.key-file=/etc/ssl/my-combined-certs/tls.key -t route.tls-termination=passthrough -t container.port=8443Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要使用 secret 添加 重新加密路由,TLS 在集成 pod 中被设置,在运行的集成 pod 中应看到密钥和证书,以
--resourcekamel 参数在集成 pod 中挂载 secret,然后我们使用 some camel quarkus 参数在运行的 pod 中引用这些证书文件,它们以-p quarkus.http.ssl.ssl.certificate.ssl.certificate.此路由特征引用名为my-combined-certs的 secret,其包含名为tls.key和tls.crt的两个密钥。kamel run --dev PlatformHttpServer.java --resource secret:my-combined-certs@/etc/ssl/my-combined-certs -p quarkus.http.ssl.certificate.file=/etc/ssl/my-combined-certs/tls.crt -p quarkus.http.ssl.certificate.key-file=/etc/ssl/my-combined-certs/tls.key -t route.tls-termination=reencrypt -t route.tls-destination-ca-certificate-secret=my-combined-certs/tls.crt -t route.tls-certificate-secret=my-combined-certs/tls.crt -t route.tls-key-secret=my-combined-certs/tls.key -t container.port=8443
kamel run --dev PlatformHttpServer.java --resource secret:my-combined-certs@/etc/ssl/my-combined-certs -p quarkus.http.ssl.certificate.file=/etc/ssl/my-combined-certs/tls.crt -p quarkus.http.ssl.certificate.key-file=/etc/ssl/my-combined-certs/tls.key -t route.tls-termination=reencrypt -t route.tls-destination-ca-certificate-secret=my-combined-certs/tls.crt -t route.tls-certificate-secret=my-combined-certs/tls.crt -t route.tls-key-secret=my-combined-certs/tls.key -t container.port=8443Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用来自路由和 Openshift 服务证书 的特定证书为集成端点添加 重新加密路由,请执行以下操作:这样,Openshift 服务证书只在集成 pod 中设置。在运行中的集成 pod 中应该可以看到密钥和证书,以达到此目的,我们使用
--resourcekamel 参数将 secret 挂载到集成 pod 中,然后我们使用 some camel quarkus 参数来引用正在运行的 pod 中的这些证书文件,它们以-p quarkus.http.ssl.certificate开头。此路由特征引用名为my-combined-certs的 secret,其包含名为tls.key和tls.crt的两个密钥。kamel run --dev PlatformHttpServer.java --resource secret:cert-from-openshift@/etc/ssl/cert-from-openshift -p quarkus.http.ssl.certificate.file=/etc/ssl/cert-from-openshift/tls.crt -p quarkus.http.ssl.certificate.key-file=/etc/ssl/cert-from-openshift/tls.key -t route.tls-termination=reencrypt -t route.tls-certificate-secret=my-combined-certs/tls.crt -t route.tls-key-secret=my-combined-certs/tls.key -t container.port=8443
kamel run --dev PlatformHttpServer.java --resource secret:cert-from-openshift@/etc/ssl/cert-from-openshift -p quarkus.http.ssl.certificate.file=/etc/ssl/cert-from-openshift/tls.crt -p quarkus.http.ssl.certificate.key-file=/etc/ssl/cert-from-openshift/tls.key -t route.tls-termination=reencrypt -t route.tls-certificate-secret=my-combined-certs/tls.crt -t route.tls-key-secret=my-combined-certs/tls.key -t container.port=8443Copy to Clipboard Copied! Toggle word wrap Toggle overflow 然后,您应注解集成服务以注入 Openshift 服务证书
oc annotate service platform-http-server service.beta.openshift.io/serving-cert-secret-name=cert-from-openshift
oc annotate service platform-http-server service.beta.openshift.io/serving-cert-secret-name=cert-from-openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用您本地文件系统提供的证书和私钥添加 边缘路由。本例使用内联脚本读取证书和私钥文件内容,然后删除所有新行字符(这是把证书设置为参数值),因此这些值位于一行中。
kamel run PlatformHttpServer.java --dev -t route.tls-termination=edge -t route.tls-certificate="$(cat tls.crt|awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}')" -t route.tls-key="$(cat tls.key|awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}')"kamel run PlatformHttpServer.java --dev -t route.tls-termination=edge -t route.tls-certificate="$(cat tls.crt|awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}')" -t route.tls-key="$(cat tls.key|awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}')"Copy to Clipboard Copied! Toggle word wrap Toggle overflow