第 8 章 参考


8.1. 自定义资源配置参考

自定义资源定义(CRD)是使用 Operator 部署的自定义 OpenShift 对象的配置项目的模式。通过部署对应的自定义资源(CR)实例,您可以为 CRD 中显示的配置项目指定值。

以下子部分详细介绍了基于主代理 CRD 在自定义资源实例中设置的配置项。

8.1.1. 代理自定义资源配置参考

基于主代理 CRD 的 CR 实例可让您在 OpenShift 项目中为部署配置代理。下表描述了您可以在 CR 实例中配置的项目。

重要

部署的任何对应自定义资源(CR)中需要标记为星号(*)的配置项。如果您没有为非必需项显式指定值,则配置将使用默认值。

条目子条目描述和使用

adminUser*

 

连接到代理和管理控制台所需的管理员用户名。

如果没有指定值,则值会自动生成并存储在 secret 中。默认 secret 名称的格式为 < custom_resource_name>-credentials-secret。例如: my-broker-deployment-credentials-secret

键入: string

示例 :my-user

默认值 :自动生成的随机值

adminPassword*

 

连接到代理和管理控制台所需的管理员密码。

如果没有指定值,则值会自动生成并存储在 secret 中。默认 secret 名称的格式为 < custom_resource_name>-credentials-secret。例如: my-broker-deployment-credentials-secret

键入: string

示例 :my-password

默认值 :自动生成的随机值

deploymentPlan*

 

代理部署配置

 

image*

部署中每个代理的代理容器镜像的完整路径。

您不需要在 CR 中为 镜像 指定一个值。占位符 默认值表示 Operator 尚未决定要使用的适当镜像。

要了解 Operator 如何选择要使用的代理容器镜像,请参阅 第 2.4 节 “Operator 如何选择容器镜像”

键入: string

示例 :registry.redhat.io/amq7/amq-broker-rhel8@sha256:982ba18be1ac285722bc0ca8e85d2a42b8b844ab840b01425e79e3eeee6ee5b9

默认值 :占位符

 

size*

要在部署中创建的代理 Pod 数量。

如果您指定一个 2 或更高值,则代理部署会默认集群。默认情况下,集群用户名和密码会自动生成并存储在与 adminUseradminPassword 相同的机密中。

键入: int

示例 :1

默认值 :2

 

requireLogin

指定是否需要登录凭证才能连接到代理。

类型 :布尔值

示例 :false

默认值: true

 

persistenceEnabled

指定部署中的每个代理 Pod 使用 journal 存储。如果设置为 true,则每个代理 Pod 需要一个可用的持久性卷(PV),供 Operator 使用持久性卷声明(PVC)来声明。

类型 :布尔值

示例 :false

默认值: true

 

initImage

用于配置代理的 init 容器镜像。

您不需要在 CR 中为 initImage 显式指定值,除非您要提供自定义镜像。

要了解 Operator 如何选择要使用的内置初始容器镜像,请参阅 第 2.4 节 “Operator 如何选择容器镜像”

要了解如何 指定自定义 Init 容器镜像,请参阅 第 4.7 节 “指定自定义 Init 容器镜像”

键入: string

示例 :registry.redhat.io/amq7/amq-broker-init-rhel8@sha256:f37f98c809c6f29a83e3d5a3ac4494e28efe9b25d33c54f533c6a08662244622

默认值 : 未指定

 

journalType

指定是否使用异步 I/O(AIO)或非阻塞 I/O(NIO)。

键入: string

示例 :aio

默认值为: nio

 

messageMigration

当代理 Pod 因为代理部署的意图而关闭时,指定是否将消息迁移到仍在代理集群中运行的另一个代理 Pod。

类型 :布尔值

示例 :false

默认值: true

 

resources.limits.cpu

主机节点 CPU 的最大数量,单位为 millicore,部署中的 Pod 中运行的每个代理容器都可消耗。

键入: string

示例 :"500m"

默认值 : 使用与 OpenShift Container Platform 版本相同的默认值。查阅集群管理员。

 

resources.limits.memory

主机节点内存的最大数量,以字节为单位,部署中的 Pod 中运行的每个代理容器都可消耗。支持字节表示法(例如 K、M、G)或二进制等同的标记(Ki、Mi、Gi)。

键入: string

示例 :"1024M"

默认值 : 使用与 OpenShift Container Platform 版本相同的默认值。查阅集群管理员。

 

resources.requests.cpu

主机节点 CPU 的数量,单位为 millicore,部署中的每个代理容器都明确请求在 Pod 中运行。

键入: string

示例 : "250m"

默认值 : 使用与 OpenShift Container Platform 版本相同的默认值。查阅集群管理员。

 

resources.requests.memory

主机节点内存量(以字节为单位),即在显式部署请求中 Pod 中运行的每个代理容器。支持字节表示法(例如 K、M、G)或二进制等同的标记(Ki、Mi、Gi)。

键入: string

示例 :"512M"

默认值 : 使用与 OpenShift Container Platform 版本相同的默认值。查阅集群管理员。

 

storage.size

以字节为单位,部署中每个代理所需的持久性卷声明(PVC)的大小(以字节为单位)。此属性仅在将 persistenceEnabled 设为 true 时才适用。您指定的值 必须包含一个 单元。支持字节表示法(例如 K、M、G)或二进制等同的标记(Ki、Mi、Gi)。

键入: string

示例 :4Gi

默认值 :2Gi

 

jolokiaAgentEnabled

指定部署中的代理是否为 Jolokia JVM Agent 启用。如果此属性的值设置为 true,Fuse Console 可以发现并显示代理的运行时数据。

类型 :布尔值

示例 :true

默认值: false

 

ManagementRBACEnabled

指定部署中的代理是否启用了基于角色的访问控制(RBAC)。要使用 Fuse 控制台,您必须 将值设为 false,因为 Fuse 控制台使用自己的基于角色的访问控制。

类型 :布尔值

示例 :false

默认值: true

 

关联性

指定 pod 的调度限制。有关关联性属性的信息,请参阅 OpenShift Container Platform 文档中的 属性

 

容限(tolerations)

指定 pod 的容限。如需有关 tolerations 属性的信息,请参阅 OpenShift Container Platform 文档中的 属性

 

nodeSelector

指定与要调度到该节点上的 pod 标签匹配的标签。

 

storageClassName

指定用于 PVC 的存储类的名称。存储类为管理员提供描述和分类可用存储的方法。例如,存储类可能具有特定的质量级别的服务质量、备份策略或其他与其关联的管理策略。

键入: string

示例: gp3

默认值 : 未指定

 

livenessProbe

在正在运行的代理容器上配置定期健康检查,以检查代理是否正在运行。如需有关存活度探测属性的信息,请参阅 OpenShift Container Platform 文档中的 属性

 

readinessProbe

在正在运行的代理容器上配置定期健康检查,以检查代理是否接受网络流量。有关就绪度探测属性的详情,请查看 OpenShift Container Platform 文档中的 属性

 

labels

为代理 pod 分配标签。

键入: string

示例 :位置:"生产环境"

默认值 : 未指定

控制台

 

代理管理控制台配置。

 

expose

指定是否在部署中的每个代理公开管理控制台端口。

类型 :布尔值

示例 :true

默认值: false

 

sslEnabled

指定是否在管理控制台端口中使用 SSL。

类型 :布尔值

示例 :true

默认值: false

 

sslSecret

存储代理密钥存储、信任存储及其对应密码(所有 Base64 编码的)的 secret。如果没有为 sslSecret 指定值,控制台将使用默认 secret 名称。默认 secret 名称采用 < custom_resource_name> -console-secret 的形式。此属性仅在 sslEnabled 属性设置为 true 时才应用。

键入: string

示例 :my-broker-deployment-console-secret

默认值 : 未指定

 

podSecurity.serviceAccountName

为代理 pod 指定服务帐户名称。

键入: string

示例 :activemq-artemis-controller-manager

默认值 :default

 

podSecurityContext

指定以下 pod 级别安全属性和常见容器设置。

* fsGroup

* fsGroupChangePolicy

* runAsGroup

* runAsUser

* runAsNonRoot

* seLinuxOptions

* seccompProfile

* supplementalGroups

* sysctls

* windowsOptions

如需有关 podSecurityContext 属性的信息,请参阅 OpenShift Container Platform 文档中的 属性

 

useClientAuth

指定管理控制台是否需要客户端授权。

类型 :布尔值

示例 :true

默认值: false

acceptors.acceptor

 

单个接受器配置实例。

 

name*

接受者名称.

键入: string

示例 :my-acceptor

默认值 :不适用

 

port

用于接受或实例的端口号。

键入: int

示例 :5672

默认值 :61626,用于您定义的第一个接受者。然后,您定义的每个后续接受者会增加 10。

 

协议

在接受器实例上启用消息传递协议。

键入: string

: amqp,core

默认值 :all

 

sslEnabled

指定是否在接受器端口上启用 SSL。如果设置为 true,在 sslSecret 中指定的 secret 名称中查找 TLS/SSL 所需的凭证。

类型 :布尔值

示例 :true

默认值: false

 

sslSecret

存储代理密钥存储、信任存储及其对应密码(所有 Base64 编码的)的 secret。

如果您没有为 sslSecret 指定自定义 secret 名称,接受器会假定默认 secret 名称。默认 secret 名称的格式为 < custom_resource_name> - &lt;acceptor_name>-secret

即使接受者假设默认名称,您也必须自行创建此 secret。

键入: string

示例 :my-broker-deployment-my-acceptor-secret

默认值: & lt;custom_resource_name>- &lt;acceptor_name&gt; -secret

 

enabledCipherSuites

用于 TLS/SSL 通信的密码套件的逗号分隔列表。

指定客户端应用程序支持的最安全密码套件。如果您使用逗号分隔列表指定代理和客户端的一组密码套件,或者您不指定任何密码套件,则代理和客户端会相互协商要使用的密码套件。如果您不知道要指定哪些密码套件,建议您首先与以 debug 模式运行的客户端建立 broker-client 连接,以验证代理和客户端是通用的密码套件。然后,在代理中配置 enabledCipherSuites

键入: string

默认值 : 未指定

 

keyStoreProvider

代理使用的密钥存储的供应商名称。

键入: string

示例 :SunJCE

默认值 : 未指定

 

trustStoreProvider

代理使用的信任存储供应商名称。

键入: string

示例 :SunJCE

默认值 : 未指定

 

trustStoreType

代理使用的信任存储类型。

键入: string

示例 :JCEKS

默认值 :JKS

 

enabledProtocols

用于 TLS/SSL 通信的以逗号分隔的协议列表。

键入: string

示例 : TLSv1,TLSv1.1,TLSv1.2

默认值 : 未指定

 

needClientAuth

指定代理是否告知客户端在接受者上需要双向 TLS。此属性覆盖 wantClientAuth

类型 :布尔值

示例 :true

默认值 : 未指定

 

wantClientAuth

指定代理是否告知客户端在接受者上 请求 双向 TLS,但不强制要求。此属性将被 needClientAuth 覆盖。

类型 :布尔值

示例 :true

默认值 : 未指定

 

verifyHost

指定是否将客户端证书的 Common Name(CN)与其主机名进行比较,以验证它们是否匹配。这个选项仅在使用双向 TLS 时适用。

类型 :布尔值

示例 :true

默认值 : 未指定

 

sslProvider

指定 SSL 供应商是 JDK 还是 OPENSSL。

键入: string

示例 :OPENSSL

默认值 : JDK

 

sniHost

与传入连接上的 server_name 扩展匹配的正则表达式。如果名称不匹配,则拒绝与接受器的连接。

键入: string

示例 : some_regular_expression

默认值 : 未指定

 

expose

指定是否向 OpenShift Container Platform 之外的客户端公开接受者。

当您向 OpenShift 外部的客户端公开接收器时,Operator 会自动为部署中的每个代理 Pod 创建一个专用的服务和路由。

类型 :布尔值

示例 :true

默认值: false

 

anycastPrefix

客户端使用的前缀来指定应使用任何 广播 路由类型。

键入: string

示例 :jms.queue

默认值 : 未指定

 

multicastPrefix

客户端用来指定应该使用 多播路由 类型的前缀。

键入: string

示例 :/topic/

默认值 : 未指定

 

connectionsAllowed

接受者上允许的连接数。达到此限制时,会向日志发出 DEBUG 消息,并且连接将被拒绝。使用中的客户端类型决定了连接被拒绝时发生的情况。

键入: integer

示例 :2

默认值 : 0(无限连接)

 

amqpMinLargeMessageSize

代理至少需要消息大小,以便代理将 AMQP 消息作为较大消息处理。如果 AMQP 消息的大小等于或大于这个值,代理会将消息存储在大型消息目录中(/opt/ <custom_resource_name> /data/large-messages,默认)由代理用于消息存储。将值设为 -1 可禁用 AMQP 消息的大型消息处理。

键入: integer

示例 : 204800

默认值为: 102400(100 KB)

 

BindToAllInterfaces

如果设置为 true,则使用 0.0.0.0 IP 地址(而非 pod 的内部 IP 地址)配置代理接受器。当代理接受者具有 0.0.0.0 IP 地址时,它们绑定到为 pod 配置的所有接口,客户端通过使用 OpenShift Container Platform 端口转发将流量定向到代理。通常,您要使用这个配置来调试服务。如需有关端口转发的更多信息,请参阅 OpenShift Container Platform 文档中的使用 端口转发访问容器中的应用程序

注意

如果错误地使用端口转发,则可能会给您的环境造成安全隐患。在可能的情况下,红帽建议您不要在生产环境中使用端口转发。

类型 :布尔值

示例 :true

默认值: false

connectors.connector

 

单一连接器配置实例。

 

name*

连接器名称。

键入: string

示例 :my-connector

默认值 :不适用

 

type

要创建的连接器类型,即 tcpvm

键入: string

示例 :vm

默认值 :tcp

 

host*

要连接到的主机名或 IP 地址。

键入: string

示例 :192.168.0.58

默认值 : 未指定

 

port*

用于连接器实例的端口号。

键入: int

示例 : 22222

默认值 : 未指定

 

sslEnabled

指定是否在连接器端口上启用 SSL。如果设置为 true,在 sslSecret 中指定的 secret 名称中查找 TLS/SSL 所需的凭证。

类型 :布尔值

示例 :true

默认值: false

 

sslSecret

存储代理密钥存储、信任存储及其对应密码(所有 Base64 编码的)的 secret。

如果您没有为 sslSecret 指定自定义 secret 名称,连接器会假定默认 secret 名称。默认 secret 名称的格式为 < custom_resource_name> - &lt;connector_name>-secret

即使连接器假定默认名称,您也必须自行创建此 secret。

键入: string

示例 :my-broker-deployment-my-connector-secret

默认值: & lt;custom_resource_name>- &lt;connector_name&gt; -secret

 

enabledCipherSuites

用于 TLS/SSL 通信的密码套件的逗号分隔列表。

键入: string

注意 : 对于连接器,建议您不要 指定密码套件列表。

默认值 : 未指定

 

keyStoreProvider

代理使用的密钥存储的供应商名称。

键入: string

示例 :SunJCE

默认值 : 未指定

 

trustStoreProvider

代理使用的信任存储供应商名称。

键入: string

示例 :SunJCE

默认值 : 未指定

 

trustStoreType

代理使用的信任存储类型。

键入: string

示例 :JCEKS

默认值 :JKS

 

enabledProtocols

用于 TLS/SSL 通信的以逗号分隔的协议列表。

键入: string

示例 : TLSv1,TLSv1.1,TLSv1.2

默认值 : 未指定

 

needClientAuth

指定代理是否告知客户端在连接器上需要双向 TLS。此属性覆盖 wantClientAuth

类型 :布尔值

示例 :true

默认值 : 未指定

 

wantClientAuth

指定代理是否告知客户端在连接器上 请求 双向 TLS,但不要求。此属性将被 needClientAuth 覆盖。

类型 :布尔值

示例 :true

默认值 : 未指定

 

verifyHost

指定是否将客户端证书的 Common Name(CN)与其主机名进行比较,以验证它们是否匹配。这个选项仅在使用双向 TLS 时适用。

类型 :布尔值

示例 :true

默认值 : 未指定

 

sslProvider

指定 SSL 供应商是 JDK 还是 OPENSSL

键入: string

示例 :OPENSSL

默认值 : JDK

 

sniHost

与传出连接上的 server_name 扩展匹配的正则表达式。如果名称不匹配,则拒绝连接器连接。

键入: string

示例 : some_regular_expression

默认值 : 未指定

 

expose

指定是否将连接器公开给 OpenShift Container Platform 之外的客户端。

类型 :布尔值

示例 :true

默认值: false

addressSettings.applyRule

 

指定 Operator 如何为每个匹配地址或一组地址应用您添加到 CR 中的配置。

您可以指定的值有:

merge_all

对于 CR 中指定的地址设置,以及 符合相同地址或一组地址的默认配置:

  • 将默认配置中指定的任何属性值替换为 CR 中指定的值。
  • 保留在 CR 默认配置中指定的任何属性值。请在最终合并的配置中包含其中之一。

对于在 CR 中指定的地址设置,或者唯一匹配一个特定地址或一组地址的默认配置,将它们包括在最终合并的配置中。

merge_replace

对于 CR 中指定的地址设置,以及 符合相同地址或一组地址的默认配置,请将 CR 中指定的设置包括在最终合并的配置中。不要 包括默认配置中指定的任何属性,即使 CR 中没有指定这些属性。

+ 对于在 CR 中指定的地址设置,或者唯一匹配一个特定地址或一组地址的默认配置,将它们包括在最终合并的配置中。

replace_all
使用在 CR 中指定的内容替换默认配置中指定的所有地址设置最后,Igred 配置与 CR 中指定的完全一致。

键入: string

示例 : replace_all

默认值 :merge_all

addressSettings.addressSetting

 

匹配地址 或一组 地址的地址设置。

 

addressFullPolicy

指定配置有 maxSizeBytes 的地址已满时会发生什么。可用的策略有:

页面
发送到完整地址的消息将传给磁盘。
DROP
发送到完整地址的消息将被静默丢弃。
FAIL
发送到完整地址的消息将被丢弃,消息制作者会收到异常。
BLOCK

当消息制作者试图发送任何进一步消息时,会阻断。

BLOCK 策略仅适用于 AMQP、OpenWire 和 Core 协议,因为这些协议支持流控制。

键入: string

示例 : DROP

默认值 :PAGE

 

autoCreateAddresses

指定代理在客户端发送信息时是否自动创建地址,还是尝试使用来自消息的队列(绑定到不存在的地址的队列)。

类型 :布尔值

示例 :false

默认值: true

 

autoCreateDeadLetterResources

指定代理是否自动创建死信地址和队列来接收未传输的消息。

如果 参数设置为 true,代理会自动创建一个死信地址和一个关联的死信队列。自动创建的地址的名称与您为 deadLetterAddress 指定的值匹配。

类型 :布尔值

示例 :true

默认值: false

 

autoCreateExpiryResources

指定代理是否自动创建地址和队列来接收过期的消息。

如果 参数设置为 true,代理会自动创建一个到期地址和关联的到期队列。自动创建的地址的名称与您为 到期Address 指定的值匹配。

类型 :布尔值

示例 :true

默认值: false

 

autoCreateJmsQueues

此属性已弃用。改为使用 autoCreateQueues

 

autoCreateJmsTopics

此属性已弃用。改为使用 autoCreateQueues

 

autoCreateQueues

指定代理在客户端发送消息时是否自动创建队列,还是尝试使用消息中的消息,即不存在的队列。

类型 :布尔值

示例 :false

默认值: true

 

autoDeleteAddresses

指定代理不再有队列时,代理是否自动删除自动创建的地址。

类型 :布尔值

示例 :false

默认值: true

 

autoDeleteAddressDelay

这个时间(以毫秒为单位),代理会在地址没有队列时自动删除自动创建的地址。

键入: integer

示例 :100

默认值 :0

 

autoDeleteJmsQueues

此属性已弃用。改为使用 autoDeleteQueues

 

autoDeleteJmsTopics

此属性已弃用。改为使用 autoDeleteQueues

 

autoDeleteQueues

指定当队列没有使用者且没有消息时,代理是否自动删除自动创建的队列。

类型 :布尔值

示例 :false

默认值: true

 

autoDeleteCreatedQueues

指定当队列没有使用者且没有消息时,代理是否自动删除手动创建的队列。

类型 :布尔值

示例 :true

默认值: false

 

autoDeleteQueuesDelay

这个时间(以毫秒为单位),代理会在队列没有消费者时自动删除自动创建的队列。

键入: integer

示例 :10

默认值 :0

 

autoDeleteQueuesMessageCount

在代理评估队列是否可自动删除前,可以处于队列中的最大消息数。

键入: integer

示例 :5

默认值 :0

 

configDeleteAddresses

当配置文件重新加载时,这个参数指定如何处理从配置文件中删除的地址(及其队列)。您可以指定以下值:

OFF
重新加载配置文件时,代理不会删除地址。
FORCE
当配置文件重新加载时,代理会删除地址及其队列。如果队列中有任何消息,它们也会被删除。

键入: string

示例 : FORCE

默认值 :OFF

 

configDeleteQueues

当配置文件重新加载时,此设置指定代理如何处理从配置文件中删除的队列。您可以指定以下值:

OFF
重新加载配置文件时,代理不会删除队列。
FORCE
当配置文件重新加载时,代理会删除队列。如果队列中有任何消息,它们也会被删除。

键入: string

示例 : FORCE

默认值 :OFF

 

deadLetterAddress

代理发送到的地址(即,未发送)消息。

键入: string

: DLA 示例

默认值: None

 

deadLetterQueuePrefix

代理应用到自动创建死信队列的名称前缀。

键入: string

示例 :myDLQ.

默认值 :DLQ.

 

deadLetterQueueSuffix

代理应用到自动创建的死信队列的后缀。

键入: string

示例 : .DLQ

默认值: None

 

defaultAddressRoutingType

在自动创建的地址上使用的路由类型。

键入: string

示例 : ANYCAST

默认值 :MULTICAST

 

defaultConsumersBeforeDispatch

在消息分配可以开始地址上的队列前所需的消费者数量。

键入: integer

示例 :5

默认值 :0

 

defaultConsumerWindowSize

消费者的默认窗口大小,以字节为单位。

键入: integer

示例 :300000

默认值 : 1048576(1024*1024)

 

defaultDelayBeforeDispatch

默认时间(以毫秒为单位),如果尚未达到 defaultConsumersBeforeDispatch 指定的值,代理会在分配消息前等待。

键入: integer

示例 :5

默认值 : -1(无延迟)

 

defaultExclusiveQueue

指定默认情况下是否有地址上所有队列都是独占队列。

类型 :布尔值

示例 :true

默认值: false

 

defaultGroupBuckets

用于消息分组的存储桶数。

键入: integer

示例 :0(禁用消息分组)

默认值 : -1(无限制)

 

defaultGroupFirstKey

用于指示组中消息先到的消费者的键。

键入: string

示例: firstMessageKey

默认值: None

 

defaultGroupRebalance

指定在新消费者连接到代理时是否重新平衡组。

类型 :布尔值

示例 :true

默认值: false

 

defaultGroupRebalancePauseDispatch

指定在代理重新平衡组时是否暂停消息发送。

类型 :布尔值

示例 :true

默认值: false

 

defaultLastValueQueue

指定地址上所有队列是否默认为最后值队列。

类型 :布尔值

示例 :true

默认值: false

 

defaultLastValueKey

用于最后一个值队列的默认键。

键入: string

示例 : stock_ticker

默认值: None

 

defaultMaxConsumers

队列上允许的最大消费者数量。

键入: integer

示例 :100

默认值 : -1(无限制)

 

defaultNonDestructive

默认情况下,指定地址上所有队列是否不是破坏性。

类型 :布尔值

示例 :true

默认值: false

 

defaultPurgeOnNoConsumers

指定代理是否在没有消费者时清除队列的内容。

类型 :布尔值

示例 :true

默认值: false

 

defaultQueueRoutingType

在自动创建的队列中使用的路由类型。默认值为 MULTICAST

键入: string

示例 : ANYCAST

默认值 :MULTICAST

 

defaultRingSize

没有明确设置环大小的匹配队列的默认环大小。

键入: integer

示例 :3

默认值 : -1(无大小限制)

 

enableMetrics

指定配置了指标插件,如 Prometheus 插件会为匹配地址或一组地址收集指标。

类型 :布尔值

示例 :false

默认值: true

 

expiryAddress

接收过期消息的地址。

键入: string

示例 :myExpiryAddress

默认值: None

 

expiryDelay

过期时间(以毫秒为单位)应用于使用默认的过期时间。

键入: integer

示例 :100

默认值 : -1(没有应用过期时间)

 

expiryQueuePrefix

代理应用到自动创建到期队列的名称前缀。

键入: string

示例 :myExp.

默认值 :EXP。

 

expiryQueueSuffix

代理应用于自动创建到期队列名称的后缀。

键入: string

示例 : .EXP

默认值: None

 

lastValueQueue

指定队列是否只使用最后的值。

类型 :布尔值

示例 :true

默认值: false

 

managementBrowsePageSize

指定管理资源可以浏览多少消息。

键入: integer

示例 :100

默认值 :200

 

匹配*

与代理中配置的地址设置匹配的字符串。您可以指定一个准确的地址名称,或使用通配符表达式将地址设置与一组地址匹配。

如果您使用通配符表达式作为 match 属性的值,则必须将值放在单引号中,如 'myAddresses*'

键入: string

示例 :"myAddresses*"

默认值: None

 

maxDeliveryAttempts

指定代理在发送消息到配置的死信地址前尝试传递的次数。

键入: integer

示例 :20

默认值 :10

 

maxExpiryDelay

过期时间(以毫秒为单位)应用于使用超过这个值的过期时间的信息。

键入: integer

示例 :20

默认值 : -1(没有应用最大到期时间)

 

maxRedeliveryDelay

代理重新发送尝试之间的最大值(以毫秒为单位)。

键入: integer

示例 :100

默认值redeliveryDelay 值的 10 倍,默认值为 0

 

maxSizeBytes

地址的最大内存大小,以字节为单位。当 地址FullPolicy 设置为 PAGING、BeilometerFAIL 时使用。还支持字节表示法,如"K"、"Mb"和"GB"。

键入: string

示例 :10Mb

默认值 : -1(无限制)

 

maxSizeBytesRejectThreshold

最大大小(以字节为单位),一个地址可在代理开始拒绝信息前访问。当 address-full-policy 设置为 BLOCK 时使用。只能与 maxSizeBytes 结合使用,用于 AMQP 协议。

键入: integer

示例 :500

默认值 : -1(无最大大小)

 

messageCounterHistoryDayLimit

代理为地址保留消息计数器历史记录的天数。

键入: integer

示例 :5

默认值 :0

 

minExpiryDelay

过期时间(以毫秒为单位)应用于使用过期时间低于这个值的消息。

键入: integer

示例 :20

默认值 : -1(没有应用最小过期时间)

 

pageMaxCacheSize

要保留内存的页面文件数量,以便在分页导航期间优化 I/O。

键入: integer

示例 :10

默认值 :5

 

pageSizeBytes

分页大小(以字节为单位)。还支持字节表示法,如 KMbGB

键入: string

示例 :20971520

默认值为: 10485760(approximately 10.5 MB)

 

redeliveryDelay

代理在重出已取消消息前等待的时间(以毫秒为单位)。

键入: integer

示例 :100

默认值 :0

 

redeliveryDelayMultiplier

应用于 重新传送延迟 值的多因素。

键入: number

示例 :5

默认值 :1

 

redeliveryCollisionAvoidanceFactor

应用到重新交付 延迟 值的多选因素以避免发生冲突。

键入: number

示例 :1.1

默认值 :0

 

redistributionDelay

在重新分发所有剩余消息前,代理会在队列上关闭最后一个消费者后等待这一时间。

键入: integer

示例 :100

默认值 : -1(未设置)

 

retroactiveMessageCount

为在地址上创建未来的队列保留的消息数量。

键入: integer

示例 :100

默认值 :0

 

sendToDlaOnNoRoute

如果无法路由到任何队列,请指定消息是否会被发送到配置的死信地址。

类型 :布尔值

示例 :true

默认值: false

 

slowConsumerCheckPeriod

代理检查较慢的用户的频率( 以秒为单位 )。

键入: integer

示例 :15

默认值 :5

 

slowConsumerPolicy

指定识别缓慢消费者时会发生什么。有效选项为 KILLNOTIFYKILL 可以终止使用者的连接,这样可使用相同的连接影响任何客户端线程。NotI FY 向客户端发送 CONSUMER_SLOW 管理通知。

键入: string

示例 : KILL

默认值 : NOTIFY

 

slowConsumerThreshold

在消费者被视为缓慢前,每秒消息消耗率最少。

键入: integer

示例 :100

默认值 : -1(未设置)

brokerProperties

 

配置在代理的自定义资源定义(CRD)中不公开的代理属性,且在自定义资源(CR)中不能配置。

 

<property name>=<value>

为代理配置的属性名称和值列表。代理Properties 部分中目前可配置属性 globalMaxSize。设置 globalMaxSize 属性会覆盖分配给代理的默认内存量。默认情况下,代理会为代理 Java 虚拟机提供的最大内存一半。

globalMaxSize 属性的默认单元是字节。要更改默认单元,请将 m(for MB)或 g(用于 GB)的后缀添加到值。

键入: string

示例: globalMaxSize=512m

默认值 :不适用

升级

  
 

enabled

当您更新 version 值来指定 AMQ Broker 的新目标版本时,指定是否允许 Operator 自动将 deploymentPlan.image 值更新为与 AMQ Broker 版本对应的代理容器镜像。

类型 :布尔值

示例 :true

默认值: false

 

指定当您将 version 值从一个 AMQ Broker 的一个次版本升级到另一个 次版本时,是否允许 Operator 自动更新 deploymentPlan.image 值,例如从 7.8.0 升级到 7.10.7

类型 :布尔值

示例 :true

默认值: false

version

 

指定您希望 Operator 自动更新 CR 的目标 次版本 AMQ Broker,以使用对应的代理容器镜像。例如,如果您将 version 的值从 7.6.0 改为 7.7.0 (且 upgrade .enabled 和 upgrade .minor 都被设置为 true),则 Operator 会将 deploymentPlan.image 更新为表单 registry.redhat.io/amq7/amq-broker-rhel8:7.8-x 的代理镜像。

键入: string

示例 : 7.7.0

默认值 : AMQ Broker 的当前版本

8.1.2. 地址自定义资源配置参考

基于地址 CRD 的 CR 实例可让您为部署中的代理定义地址和队列。下表详细介绍了您可以配置的项目。

重要

部署的任何对应自定义资源(CR)中需要标记为星号(*)的配置项。如果您没有为非必需项显式指定值,则配置将使用默认值。

条目描述和使用

addressName*

要在代理上创建的地址名称。

键入: string

示例 :address0

默认值 : 未指定

queueName

在代理上创建的队列名称。如果没有指定 queueName,则 CR 只创建地址。

键入: string

示例 : queue0

默认值 : 未指定

removeFromBrokerOnDelete*

指定 Operator 在删除该部署的地址 CR 实例时,是否删除部署中的所有代理的现有地址。默认值为 false,这意味着在删除 CR 时,Operator 不会删除现有的地址。

类型 :布尔值

示例 :true

默认值: false

routingType*

要使用的路由类型,任何广播 多播

键入: string

示例 :任何广播

默认值 :多播

8.1.3. 安全自定义资源配置参考

基于安全 CRD 的 CR 实例可让您为部署中的代理定义安全配置,包括:

  • 用户和角色
  • 登录模块,包括 propertiesLoginModuleguestLoginModulekeycloakLoginModule
  • 基于角色的访问控制
  • 控制台访问控制
注意

很多选项都需要您了解安全代理中描述的 代理安全概念

下表详细介绍了您可以配置的项目。

重要

部署的任何对应自定义资源(CR)中需要标记为星号(*)的配置项。如果您没有为非必需项显式指定值,则配置将使用默认值。

条目子条目描述和使用

loginModules

 

一个或多个登录模块配置。

登录模块可以是以下类型之一:

  • propertiesLoginModule 允许您直接定义代理用户。
  • guestLoginModule - 对于没有登录凭证的用户,或者凭证失败身份验证,您可以使用客户机帐户为代理授予有限访问权限。
  • keycloakLoginModule. - 允许您使用红帽单点登录保护代理。

propertiesLoginModule

name*

登录模块的名称。

键入: string

示例 :my-login

默认值 :不适用

 

users.name*

用户名。

键入: string

示例 :jdoe

默认值 :不适用

 

users.password*

用户的密码。

键入: string

示例 :password

默认值 :不适用

 

users.roles

角色的名称。

键入: string

示例 :查看器

默认值 :不适用

guestLoginModule

name*

客户机登录模块的名称。

键入: string

示例 :guest-login

默认值 :不适用

 

guestUser

guest 用户的名称。

键入: string

示例 :myguest

默认值 :不适用

 

guestRole

guest 用户的角色名称。

键入: string

示例 :guest

默认值 :不适用

keycloakLoginModule

name

KeycloakLoginModule 的名称

键入: string

示例 :sso

默认值 :不适用

 

moduleType

KeycloakLoginModule(directAccess 或 bearerToken)的类型

键入: string

示例: bearerToken

默认值 :不适用

 

配置

以下配置项目与红帽单点登录以及 OpenID Connect 文档中的详细信息。

 

configuration.realm*

KeycloakLoginModule 的域

键入: string

示例 :myrealm

默认值 :不适用

 

configuration.realmPublicKey

域的公钥

键入: string

默认值 :不适用

 

configuration.authServerUrl*

keycloak 验证服务器的 URL

键入: string

默认值 :不适用

 

configuration.sslRequired

指定是否需要 SSL

键入: string

有效值为 'all'、'external' 和 'none'。

 

configuration.resource*

资源名称

应用程序的 client-id。每个应用程序都有一个用于标识应用程序的 client-id。

 

configuration.publicClient

指定这是公共客户端。

类型 :布尔值

默认值: false

示例 :false

 

configuration.credentials.key

指定凭证密钥。

键入: string

默认值 :不适用

键入: string

默认值 :不适用

 

configuration.credentials.value

指定凭证值

键入: string

默认值 :不适用

 

configuration.useResourceRoleMappings

指定是否使用资源角色映射

类型 :布尔值

示例 :false

 

configuration.enableCors

指定是否启用跨资源共享(CORS)

它将处理 CORS preflight 请求。它还将查看访问令牌来确定有效的来源。

类型 :布尔值

默认值: false

 

configuration.corsMaxAge

CORS 最大年龄

如果启用了 CORS,这会设置 Access-Control-Max-Age 标头的值。

 

configuration.corsAllowedMethods

CORS 允许的方法

如果启用了 CORS,这会设置 Access-Control-Allow-Methods 标头的值。这应该是一个用逗号分开的字符串。

 

configuration.corsAllowedHeaders

CORS 允许的标头

如果启用了 CORS,这会设置 Access-Control-Allow-Headers 标头的值。这应该是一个用逗号分开的字符串。

 

configuration.corsExposedHeaders

CORS 公开的标头

如果启用了 CORS,这会设置 Access-Control-Expose-Headers 标头的值。这应该是一个用逗号分开的字符串。

 

configuration.exposeToken

指定是否公开访问令牌

类型 :布尔值

默认值: false

 

configuration.bearerOnly

指定是否验证 bearer 令牌

类型 :布尔值

默认值: false

 

configuration.autoDetectBearerOnly

指定是否只自动探测 bearer 令牌

类型 :布尔值

默认值: false

 

configuration.connectionPoolSize

连接池的大小

键入: Integer

默认值 :20

 

configuration.allowAnyHostName

指定是否允许任何主机名

类型 :布尔值

默认值: false

 

configuration.disableTrustManager

指定是否禁用信任管理器

类型 :布尔值

默认值: false

 

configuration.trustStore*

信任存储的路径

这是 REQUIRED,除非 ssl-required 为 none 或 disable-trust-manager 为 true。

 

configuration.trustStorePassword*

truststore 密码

如果设置了 truststore 且信任存储需要密码,则这是 REQUIRED。

 

configuration.clientKeyStore

客户端密钥存储的路径

键入: string

默认值 :不适用

 

configuration.clientKeyStorePassword

客户端密钥存储密码

键入: string

默认值 :不适用

 

configuration.clientKeyPassword

客户端密钥密码

键入: string

默认值 :不适用

 

configuration.alwaysRefreshToken

指定是否始终刷新令牌

类型 :布尔值

示例 :false

 

configuration.registerNodeAtStartup

指定是否在启动时注册节点

类型 :布尔值

示例 :false

 

configuration.registerNodePeriod

重新注册节点的周期

键入: string

默认值 :不适用

 

configuration.tokenStore

令牌存储类型(会话或 Cookie)

键入: string

默认值 :不适用

 

configuration.tokenCookiePath

Cookie 存储的 Cookie 路径

键入: string

默认值 :不适用

 

configuration.principalAttribute

使用 OpenID Connect ID Token 属性填充 UserPrincipal 名称

OpenID Connect ID Token 属性,用于填充 UserPrincipal 名称:如果 token 属性为空,则默认为 sub。可能的值有 sub、preferred_username、电子邮件、name、nickname、given_name、family_name。

 

configuration.proxyUrl

代理 URL

 

configuration.turnOffChangeSessionIdOnLogin

指定是否在成功登录时更改会话 id

类型 :布尔值

示例 :false

 

configuration.tokenMinimumTimeToLive

刷新活跃访问令牌的最低时间

键入: Integer

默认值 :0

 

configuration.minTimeBetweenJwksRequests

为 Keycloak 检索新公钥的两个请求之间的最小间隔

键入: Integer

默认值 :10

 

configuration.publicKeyCacheTtl

为 Keycloak 检索新公钥的两个请求之间的最大间隔

键入: Integer

默认值 :86400

 

configuration.ignoreOauthQueryParameter

是否为 bearer 令牌处理关闭对 access_token 查询参数的处理

类型 :布尔值

示例 :false

 

configuration.verifyTokenAudience

验证令牌是否包含这个客户端名称(资源)作为使用者

类型 :布尔值

示例 :false

 

configuration.enableBasicAuth

是否支持基本身份验证

类型 :布尔值

默认值: false

 

configuration.confidentialPort

Keycloak 服务器用来通过 SSL/TLS 进行安全连接的机密端口

键入: Integer

示例 :8443

 

configuration.redirectRewriteRules.key

用于匹配重定向 URI 的正则表达式。

键入: string

默认值 :不适用

 

configuration.redirectRewriteRules.value

替换的字符串

键入: string

默认值 :不适用

 

configuration.scope

DirectAccessGrantsLoginModule 的 OAuth2 范围参数

键入: string

默认值 :不适用

securityDomains

 

代理安全域

 

brokerDomain.name

代理域名

键入: string

示例: activemq

默认值 :不适用

 

brokerDomain.loginModules

一个或多个登录模块。每个条目以前必须在上面的 loginModules 部分中定义。

 

brokerDomain.loginModules.name

登录模块的名称

键入: string

示例 : prop-module

默认值 :不适用

 

brokerDomain.loginModules.flag

与 propertiesLoginModule、requiredrequisitesufficientoptional 相同。

键入: string

示例 : sufficient

默认值 :不适用

 

brokerDomain.loginModules.debug

Debug

 

brokerDomain.loginModules.reload

reload

 

consoleDomain.name

代理域名

键入: string

示例: activemq

默认值 :不适用

 

consoleDomain.loginModules

单一登录模块配置。

 

consoleDomain.loginModules.name

登录模块的名称

键入: string

示例 : prop-module

默认值 :不适用

 

consoleDomain.loginModules.flag

与 propertiesLoginModule、requiredrequisitesufficientoptional 相同。

键入: string

示例 : sufficient

默认值 :不适用

 

consoleDomain.loginModules.debug

Debug

类型 :布尔值

示例 :false

 

consoleDomain.loginModules.reload

reload

类型 :布尔值

示例 :true

默认 :false

securitySettings

 

要添加到 broker.xmlmanagement.xml的其他安全设置

 

broker.match

安全设置部分的地址匹配模式。有关匹配模式 语法的详情,请参阅 AMQ Broker 通配符语法。

 

broker.permissions.operationType

安全设置的操作类型,如 设置权限 中所述

键入: string

示例 :createAddress

默认值 :不适用

 

broker.permissions.roles

安全设置应用于这些角色,如 设置权限 中所述

键入: string

示例 :root

默认值 :不适用

securitySettings.management

 

用于配置 management.xml 的选项。

 

hawtioRoles

允许登录到代理控制台的角色。

键入: string

示例 :root

默认值 :不适用

 

connector.host

用于连接管理 API 的连接器主机。

键入: string

: myhost

默认值 :localhost

 

connector.port

用于连接管理 API 的连接器端口。

键入: integer

示例 :1099

默认值: 1099

 

connector.jmxRealm

管理 API 的 JMX 域。

键入: string

示例: activemq

默认值 :activemq

 

connector.objectName

管理 API 的 JMX 对象名称。

键入: String

示例 : connector:name=rmi

默认 : connector:name=rmi

 

connector.authenticatorType

管理 API 身份验证类型。

键入: String

示例 :password

默认 :password

 

connector.secured

管理 API 连接是否设有保护。

类型 :布尔值

示例 :true

默认值: false

 

connector.keyStoreProvider

管理连接器的密钥存储提供程序。如果您设置了 connector.secured="true",则需要此项。默认值为 JKS。

 

connector.keyStorePath

密钥存储的位置。如果您设置了 connector.secured="true",则需要此项。

 

connector.keyStorePassword

管理连接器的密钥存储密码。如果您设置了 connector.secured="true",则需要此项。

 

connector.trustStoreProvider

如果您设置了 connector.secured="true",则管理连接器的信任存储供应商。

键入: String

示例 :JKS

默认 : JKS

 

connector.trustStorePath

管理连接器的信任存储位置。如果您设置了 connector.secured="true",则需要此项。

键入: string

默认值 :不适用

 

connector.trustStorePassword

管理连接器的信任存储密码。如果您设置了 connector.secured="true",则需要此项。

键入: string

默认值 :不适用

 

connector.passwordCodec

管理连接器的 password codec。其密码码c 的完全限定类名称使用,如 配置文件 中的加密密码 所述。

 

authorisation.allowedList.domain

allowedList 的域

键入: string

默认值 :不适用

 

authorisation.allowedList.key

allowedList 的密钥

键入: string

默认值 :不适用

 

authorisation.defaultAccess.method

defaultAccess List 的方法

键入: string

默认值 :不适用

 

authorisation.defaultAccess.roles

defaultAccess List 角色

键入: string

默认值 :不适用

 

authorisation.roleAccess.domain

roleAccess List 域

键入: string

默认值 :不适用

 

authorisation.roleAccess.key

roleAccess List 键

键入: string

默认值 :不适用

 

authorisation.roleAccess.accessList.method

roleAccess List 的方法

键入: string

默认值 :不适用

 

authorisation.roleAccess.accessList.roles

roleAccess List 角色

键入: string

默认值 :不适用

 

applyToCrNames

将此安全配置应用到当前命名空间中指定 CR 定义的代理。* 或空字符串的值是适用于所有代理。

键入: string

示例 :my-broker

默认值 :由当前命名空间中 CR 定义的所有代理。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.