搜索

6.3. Camel K 平台特征

download PDF

6.3.1. builder Trait

builder trait 在内部用于决定构建和配置 IntegrationKit 的最佳策略。

此特征位于以下配置集: Kubernetes、Knative、OpenShift

警告

builder trait 是一个 平台特征 :禁用它可能会破坏平台功能。

6.3.1.1. 配置

运行与 CLI 的任何集成时可以指定特征属性:

$ kamel run --trait builder.[key]=[value] --trait builder.[key2]=[value2] Integration.java

可用的配置选项如下:

属性类型描述

builder.enabled

bool

可用于启用或禁用特征。所有特征共享这个通用属性。

builder.verbose

bool

对支持它的构建组件(如 OpenShift 构建 Pod)启用详细日志记录。不支持 Kaniko 和 Buildah。

builder.properties

[]string

要提供给构建任务的属性列表

6.3.2. 容器 Trait

Container trait 可用于配置运行集成的容器的属性。

它还为与容器关联的服务提供配置。

此特征位于以下配置集: Kubernetes、Knative、OpenShift

警告

容器特征是一个 平台特征 :禁用它可能会破坏平台功能。

6.3.2.1. 配置

运行与 CLI 的任何集成时可以指定特征属性:

$ kamel run --trait container.[key]=[value] --trait container.[key2]=[value2] Integration.java

可用的配置选项如下:

属性类型描述

container.enabled

bool

可用于启用或禁用特征。所有特征共享这个通用属性。

container.auto

bool

 

container.request-cpu

字符串

需要的最小 CPU 量。

container.request-memory

字符串

需要的最小内存量。

container.limit-cpu

字符串

需要的最大 CPU 量。

container.limit-memory

字符串

需要的最大内存量。

container.expose

bool

用于通过 kubernetes Service 启用/禁用风险。

container.port

int

配置容器公开的不同端口(默认为 8080)。

container.port-name

字符串

为容器公开的端口配置不同的端口名称(默认 http)。

container.service-port

int

要配置要在哪个服务端口下公开容器端口(默认为 80)

container.service-port-name

字符串

要配置要在哪个服务端口名称下公开容器端口(默认 http)。

container.name

字符串

主容器名称。默认名为 integration

container.image

字符串

主容器镜像

container.probes-enabled

bool

容器中的 ProbesEnabled 启用/禁用探测(默认为 false

container.liveness-initial-delay

int32

容器启动后的秒数,然后再启动存活度探测。

container.liveness-timeout

int32

探测超时的秒数。适用于存活度探测。

container.liveness-period

int32

执行探测的频率。适用于存活度探测。

container.liveness-success-threshold

int32

在失败后,探测被视为成功的最低连续成功。适用于存活度探测。

container.liveness-failure-threshold

int32

在成功后,探测被视为失败的连续最小失败。适用于存活度探测。

container.readiness-initial-delay

int32

容器启动后的秒数,然后再启动就绪度探测。

container.readiness-timeout

int32

探测超时的秒数。适用于就绪度探测。

container.readiness-period

int32

执行探测的频率。适用于就绪度探测。

container.readiness-success-threshold

int32

在失败后,探测被视为成功的最低连续成功。适用于就绪度探测。

container.readiness-failure-threshold

int32

在成功后,探测被视为失败的连续最小失败。适用于就绪度探测。

6.3.3. Camel Trait

Camel trait 可用于配置 Apache Camel K 运行时和相关库的版本,无法禁用。

此特征位于以下配置集: Kubernetes、Knative、OpenShift

警告

camel trait 是一个 平台特征 :禁用它可能会破坏平台功能。

6.3.3.1. 配置

运行与 CLI 的任何集成时可以指定特征属性:

$ kamel run --trait camel.[key]=[value] --trait camel.[key2]=[value2] Integration.java

可用的配置选项如下:

属性类型描述

camel.enabled

bool

可用于启用或禁用特征。所有特征共享这个通用属性。

6.3.4. 依赖项 Trait

依赖项特征在内部用于根据用户希望运行的集成自动添加运行时依赖项。

此特征位于以下配置集: Kubernetes、Knative、OpenShift

警告

依赖项特征是 一个平台特征 :禁用它可能会破坏平台功能。

6.3.4.1. 配置

运行与 CLI 的任何集成时可以指定特征属性:

$ kamel run --trait dependencies.[key]=[value] Integration.java

可用的配置选项如下:

属性类型描述

dependencies.enabled

bool

可用于启用或禁用特征。所有特征共享这个通用属性。

6.3.5. deployer Trait

deployer trait 可用于显式选择要部署集成的高级别资源。

此特征位于以下配置集: Kubernetes、Knative、OpenShift

警告

deployer trait 是一个 平台特征 :禁用它可能会破坏平台功能。

6.3.5.1. 配置

运行与 CLI 的任何集成时可以指定特征属性:

$ kamel run --trait deployer.[key]=[value] --trait deployer.[key2]=[value2] Integration.java

可用的配置选项如下:

属性类型描述

deployer.enabled

bool

可用于启用或禁用特征。所有特征共享这个通用属性。

deployer.kind

字符串

在为运行的集成创建资源时,允许明确从 deployment, cron-jobknative-service 中选择需要的部署类型。

6.3.6. Deployment Trait

Deployment 特征负责生成 Kubernetes 部署,以确保集成在集群中运行。

此特征位于以下配置集: Kubernetes、Knative、OpenShift

警告

部署特征是一个 平台特征 :禁用它可能会破坏平台功能。

6.3.6.1. 配置

运行与 CLI 的任何集成时可以指定特征属性:

$ kamel run --trait deployment.[key]=[value] Integration.java

可用的配置选项如下:

属性类型描述

deployment.enabled

bool

可用于启用或禁用特征。所有特征共享这个通用属性。

6.3.7. 环境 Trait

环境特征在内部用于注入集成容器中的标准环境变量,如 NAMESPACEPOD_NAME 等等。

此特征位于以下配置集: Kubernetes、Knative、OpenShift

警告

environment trait 是一个 平台特征 :禁用它可能会破坏平台功能。

6.3.7.1. 配置

运行与 CLI 的任何集成时可以指定特征属性:

$ kamel run --trait environment.[key]=[value] --trait environment.[key2]=[value2] Integration.java

可用的配置选项如下:

属性类型描述

environment.enabled

bool

可用于启用或禁用特征。所有特征共享这个通用属性。

environment.container-meta

bool

启用 NAMESPACEPOD_NAME 环境变量注入(默认为 true

6.3.8. 错误处理程序 Trait

error-handler 是一个平台特征,用于将 Error Handler 源注入集成运行时。

此特征位于以下配置集: Kubernetes、Knative、OpenShift

警告

error-handler trait 是一个 platform trait :禁用它可能会破坏平台功能。

6.3.8.1. 配置

运行与 CLI 的任何集成时可以指定特征属性:

$ kamel run --trait error-handler.[key]=[value] --trait error-handler.[key2]=[value2] Integration.java

可用的配置选项如下:

属性类型描述

error-handler.enabled

bool

可用于启用或禁用特征。所有特征共享这个通用属性。

error-handler.ref

字符串

在应用程序属性中提供或找到的错误处理器 ref 名称

6.3.9. JVM Trait

JVM 特征用于配置运行集成的 JVM。

此特征位于以下配置集: Kubernetes、Knative、OpenShift

警告

jvm trait 是一个 平台特征 :禁用它可能会破坏平台功能。

6.3.9.1. 配置

运行与 CLI 的任何集成时可以指定特征属性:

$ kamel run --trait jvm.[key]=[value] --trait jvm.[key2]=[value2] Integration.java

可用的配置选项如下:

属性类型描述

jvm.enabled

bool

可用于启用或禁用特征。所有特征共享这个通用属性。

jvm.debug

bool

激活远程调试,以便调试器可以附加到 JVM,例如,使用端口转发

jvm.debug-suspend

bool

在加载主类前立即挂起目标 JVM

jvm.print-command

bool

打印命令在容器日志中使用了启动 JVM (默认为 true

jvm.debug-address

字符串

要侦听新启动的 JVM 的传输地址(默认为 *:5005

jvm.options

[]string

JVM 选项列表

jvm.classpath

字符串

其他 JVM 类路径(使用 Linux 类路径分隔符)

6.3.9.2. 例子

  • 包括一个到 Integration 的额外类路径:

    $ kamel run -t jvm.classpath=/path/to/my-dependency.jar:/path/to/another-dependency.jar ...

6.3.10. kamelets Trait

kamelets trait 是一个平台特征,用于将 Kamelets 注入集成运行时。

此特征位于以下配置集: Kubernetes、Knative、OpenShift

警告

kamelets trait 是一个 平台特征 :禁用它可能会破坏平台功能。

6.3.10.1. 配置

运行与 CLI 的任何集成时可以指定特征属性:

$ kamel run --trait kamelets.[key]=[value] --trait kamelets.[key2]=[value2] Integration.java

可用的配置选项如下:

属性类型描述

kamelets.enabled

bool

可用于启用或禁用特征。所有特征共享这个通用属性。

kamelets.auto

bool

自动注入所有引用的 Kamelets 及其默认配置(默认启用)

kamelets.list

字符串

要加载到当前集成的 Kamelet 名称的逗号分隔列表

6.3.11. nodeAffinity Trait

NodeAffinity 特征允许您通过以下路径限制集成 pod 有资格在其上调度的节点:

  • 基于节点上的标签,或具有 pod 间的关联性和反关联性。
  • 基于已在节点上运行的 pod 的标签。

这个特征默认为禁用。

此特征位于以下配置集: Kubernetes、Knative、OpenShift

6.3.11.1. 配置

运行与 CLI 的任何集成时可以指定特征属性:

$ kamel run --trait affinity.[key]=[value] --trait affinity.[key2]=[value2] Integration.java

可用的配置选项如下:

属性类型描述

affinity.enabled

bool

可用于启用或禁用特征。所有特征共享这个通用属性。

affinity.pod-affinity

bool

始终在同一节点上并置集成的多个副本(默认为 false)。

affinity.pod-anti-affinity

bool

不得在同一节点上并置集成的多个副本(默认为 false)。

affinity.node-affinity-labels

[]string

根据节点上的标签,定义集成 pod 有资格调度到的一组节点。

affinity.pod-affinity-labels

[]string

定义一组与标签选择器匹配的 pod (相对于给定命名空间)应该与集成 pod 共存。

affinity.pod-anti-affinity-labels

[]string

定义一组与标签选择器匹配的 pod (相对于给定命名空间),该 pod 不应与它们共存。

6.3.11.2. 例子

  • 使用 内置节点标签 kubernetes.io/hostname 将集成 pod 调度到特定的节点上:

    $ kamel run -t affinity.node-affinity-labels="kubernetes.io/hostname in(node-66-50.hosted.k8s.tld)" ...
  • 要调度每个节点的单一集成 pod (使用 Exists 运算符):

    $ kamel run -t affinity.pod-anti-affinity-labels="camel.apache.org/integration" ...
  • 将集成 pod 与其他集成 pod 并置:

    $ kamel run -t affinity.pod-affinity-labels="camel.apache.org/integration in(it1, it2)" ...

*-labels 选项遵循 标签选择器 中的 要求。它们可以是多评估,然后要求列表是 AND,例如,调度每个节点的一个集成 pod,而与 Camel K 操作器 pod 不共存:

$ kamel run -t affinity.pod-anti-affinity-labels="camel.apache.org/integration" -t affinity.pod-anti-affinity-labels="camel.apache.org/component=operator" ...

如需更多信息,请参阅有关将 Pod 分配给节点 的官方 Kubernetes 文档。

6.3.12. OpenAPI Trait

OpenAPI DSL 特征在内部用于允许从 OpenAPI specs 创建集成。

此特征位于以下配置集: Kubernetes、Knative、OpenShift

警告

openapi trait 是一个 平台特征 :禁用它可能会破坏平台功能。

6.3.12.1. 配置

运行与 CLI 的任何集成时可以指定特征属性:

$ kamel run --trait openapi.[key]=[value] Integration.java

可用的配置选项如下:

属性类型描述

openapi.enabled

bool

可用于启用或禁用特征。所有特征共享这个通用属性。

6.3.13. 所有者 Trait

Owner trait 确保所有创建的资源都属于创建的集成,并将集成上的注解和标签传输到这些拥有的资源。

此特征位于以下配置集: Kubernetes、Knative、OpenShift

警告

owner trait 是一个 平台特征 :禁用它可能会破坏平台功能。

6.3.13.1. 配置

运行与 CLI 的任何集成时可以指定特征属性:

$ kamel run --trait owner.[key]=[value] --trait owner.[key2]=[value2] Integration.java

可用的配置选项如下:

属性类型描述

owner.enabled

bool

可用于启用或禁用特征。所有特征共享这个通用属性。

owner.target-annotations

[]string

要传输的注解集合

owner.target-labels

[]string

要传输的标签集合

6.3.14. 平台 Trait

platform trait 是一个基础特征,用于为集成分配集成平台。

如果缺少平台,则允许特征创建默认平台。此功能在不需要为平台提供自定义配置的情况下特别有用(例如,在 OpenShift 中,默认设置可以正常工作,因为嵌入的容器镜像 registry)。

此特征位于以下配置集: Kubernetes、Knative、OpenShift

警告

platform trait 是一个 平台特征 :禁用它可能会破坏平台功能。

6.3.14.1. 配置

运行与 CLI 的任何集成时可以指定特征属性:

$ kamel run --trait platform.[key]=[value] --trait platform.[key2]=[value2] Integration.java

可用的配置选项如下:

属性类型描述

platform.enabled

bool

可用于启用或禁用特征。所有特征共享这个通用属性。

platform.create-default

bool

在缺少平台时创建默认(空)平台。

platform.global

bool

指明在全局 operator (默认值 true)中是否应全局创建平台。

platform.auto

bool

如果可以创建默认平台(仅在 OpenShift 上创建它),以自动检测环境。

6.3.15. Quarkus Trait

Quarkus trait 激活 Quarkus 运行时。

它默认启用。

注意

编译到原生可执行文件,即在使用 package-type=native 时,仅支持 kamelets 和 YAML 集成。它还需要至少 4GiB 内存,因此运行原生构建的 Pod 是 Operator Pod,或构建 Pod (取决于为平台配置的构建策略)必须有足够的内存可用。

此特征位于以下配置集: Kubernetes、Knative、OpenShift

警告

quarkus trait 是一个 平台特征 :禁用它可能会破坏平台功能。

6.3.15.1. 配置

运行与 CLI 的任何集成时可以指定特征属性:

$ kamel run --trait quarkus.[key]=[value] --trait quarkus.[key2]=[value2] integration.java

可用的配置选项如下:

属性类型描述

quarkus.enabled

bool

可用于启用或禁用特征。所有特征共享这个通用属性。

quarkus.package-type

[]github.com/apache/camel-k/pkg/trait.quarkusPackageType

Quarkus 软件包类型,可以是 fast-jarnative (默认 fast-jar)。如果同时指定了 fast-jarnative,则创建两个 IntegrationKit 资源,并且 原生 工具包优先于 fast-jar。顺序会影响当前集成工具包的解析。如果不存在与集成匹配的现有工具包,则与第一个软件包类型对应的 kit 将分配给集成。

6.3.15.2. 支持的 Camel 组件

Camel K 只支持作为 Camel Quarkus 扩展开箱即用的 Camel 组件。

6.3.15.3. 例子

6.3.15.3.1. 自动推出到原生集成的部署

虽然编译到原生可执行文件会生成集成,这些集成在运行时启动速度并消耗较少的内存,但构建过程会消耗大量时间,而打包到传统 Java 应用程序的时间要长。

为了组合两个领域的最佳选择,可以将 Quarkus 特征配置为在运行集成时并行运行传统和原生构建,例如:

$ kamel run -t quarkus.package-type=fast-jar -t quarkus.package-type=native ...

集成 Pod 将在 fast-jar 构建完成后立即运行,并在 原生 构建完成后立即触发对 原生 镜像的推出部署部署,而不会中断服务。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.