第 8 章 reference


8.1. 自定义资源配置参考

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

以下子部分详细描述了可根据主代理 CRD 在自定义资源实例中设置的配置项。

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

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

重要

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

条目子条目描述和使用

adminUser*

 

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

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

类型 :字符串

示例 :my-user

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

adminPassword*

 

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

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

类型 :字符串

示例 :my-password

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

deploymentPlan*

 

代理部署配置

 

image*

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

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

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

类型 :字符串

示例: registry.redhat.io/amq-broker-rhel8@sha256:979b59325aa0f34eb05625201beba53fccbb83bd5eb80a89dcb5261ae358138f

默认值 :占位符

 

Size*

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

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

类型 :int

示例 :1

默认值 :2

 

requireLogin

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

类型 :布尔值

示例 : false

默认值为 : true

 

persistenceEnabled

指定是否将日志存储用于部署中的每个代理 Pod。如果设置为 true,每个代理 Pod 需要一个可用的持久性卷(PV),Operator 可以使用持久性卷声明(PVC)声明。

类型 :布尔值

示例 : false

默认值为 : true

 

initImage

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

您不需要在 CR 中明确指定 initImage 的值,除非您要提供自定义镜像。

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

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

类型 :字符串

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

默认值 :未指定

 

journalType

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

类型 :字符串

示例 :aio

默认值为 :nio

 

messageMigration

当代理 Pod 因代理部署失败或有意缩减而关闭时,指定是否将消息迁移到仍然在代理集群中运行的另一代理 Pod。

类型 :布尔值

示例 : false

默认值为 : true

 

resources.limits.cpu

部署中 Pod 中运行的每个代理容器可以消耗的最大 host-node CPU 数量,以 millicore 为单位。

类型 :字符串

示例 :"500m"

默认值 :使用与您的 OpenShift Container Platform 版本相同的默认值。咨询集群管理员.

 

resources.limits.memory

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

类型 :字符串

示例 :"1024M"

默认值 :使用与您的 OpenShift Container Platform 版本相同的默认值。咨询集群管理员.

 

resources.requests.cpu

在部署中在 Pod 中运行的每个代理容器以 millicores 为单位的主机节点 CPU 量。

类型 :字符串

示例 :"250m"

默认值 :使用与您的 OpenShift Container Platform 版本相同的默认值。咨询集群管理员.

 

resources.requests.memory

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

类型 :字符串

示例 :"512M"

默认值 :使用与您的 OpenShift Container Platform 版本相同的默认值。咨询集群管理员.

 

storage.size

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

类型 :字符串

示例 :4Gi

默认值 :2Gi

 

jolokiaAgentEnabled

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

类型 :布尔值

示例 : true

默认值为 : false

 

managementRBACEnabled

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

类型 :布尔值

示例 : false

默认值为 : true

console

 

代理管理控制台的配置.

 

expose

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

类型 :布尔值

示例 : true

默认值为 : false

 

sslEnabled

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

类型 :布尔值

示例 : true

默认值为 : false

 

sslSecret

代理密钥存储、信任存储及其相应密码(所有 Base64 编码)的机密。如果没有为 sslSecret 指定值,控制台将使用默认的 secret 名称。默认 secret 名称的格式为 <custom_resource_name>-console-secret

类型 :字符串

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

默认值 :未指定

 

useClientAuth

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

类型 :布尔值

示例 : true

默认值为 : false

acceptors.acceptor

 

单个接收器配置实例。

 

name*

接收器名称.

类型 :字符串

示例 :my-acceptor

默认值 :Not applicable

 

port

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

类型 :int

示例 :5672

默认值 :61626 用于您定义的第一个接收器:然后,您定义的每个后续接收器的默认值都会递增 10。

 

protocols

要在接收器实例上启用的消息传递协议。

类型 :字符串

示例 : amqp,core

默认值为 :all

 

sslEnabled

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

类型 :布尔值

示例 : true

默认值为 : false

 

sslSecret

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

如果您没有为 sslSecret 指定自定义 secret 名称,则接收器假设默认 secret 名称。默认 secret 名称的格式为 <custom_resource_name>-<acceptor_name>-secret

您必须始终自行创建此 secret,即使接收器假设默认名称。

类型 :字符串

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

默认值为<custom_resource_name>-<acceptor_name>-secret

 

enabledCipherSuites

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

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

类型 :字符串

默认值 :未指定

 

enabledProtocols

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

类型 :字符串

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

默认值 :未指定

 

needClientAuth

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

类型 :布尔值

示例 : true

默认值 :未指定

 

wantClientAuth

指定是否向客户端告知在接收器上 请求 双向 TLS,但不是必需的。此属性将被 needClientAuth 覆盖

类型 :布尔值

示例 : true

默认值 :未指定

 

verifyHost

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

类型 :布尔值

示例 : true

默认值 :未指定

 

sslProvider

指定 SSL 提供程序是 JDK 还是 OPENSSL。

类型 :字符串

示例 :OPENSSL

默认值 :JDK

 

sniHost

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

类型 :字符串

示例 : some_regular_expression

默认值 :未指定

 

expose

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

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

类型 :布尔值

示例 : true

默认值为 : false

 

anycastPrefix

客户端用于指定应该使用 anycast 路由类型的前缀。

类型 :字符串

示例 : jms.queue

默认值 :未指定

 

multicastPrefix

客户端用于指定 多播 路由类型的前缀。

类型 :字符串

示例 :/topic/

默认值 :未指定

 

connectionsAllowed

接收器上允许的连接数。达到此限制时,会向日志发出 DEBUG 消息,连接将被拒绝。使用中的客户端类型决定了在连接被拒绝时会发生什么。

类型 :整数

示例 :2

默认值 :0(无限制连接)

 

amqpMinLargeMessageSize

代理作为大型消息处理 AMQP 消息所需的最小消息大小,以字节为单位。如果 AMQP 消息的大小等于或大于这个值,代理会将消息存储在大型信息目录中(默认为/opt/<custom_resource_name>/data/large-messages ),代理用于消息存储。将值设置为 -1 可 禁用 AMQP 消息的大型消息处理。

类型 :整数

示例 :204800

默认值 :102400 (100 KB)

connectors.connector

 

单个连接器配置实例。

 

name*

连接器的名称。

类型 :字符串

示例 :my-connector

默认值 :Not applicable

 

type

要创建的连接器的类型;tcp vm

类型 :字符串

示例 :vm

默认值 :tcp

 

主机*

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

类型 :字符串

示例 :192.168.0.58

默认值 :未指定

 

port*

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

类型 :int

示例 :22222

默认值 :未指定

 

sslEnabled

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

类型 :布尔值

示例 : true

默认值为 : false

 

sslSecret

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

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

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

类型 :字符串

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

默认值为<custom_resource_name>-<connector_name>-secret

 

enabledCipherSuites

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

类型 :字符串

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

默认值 :未指定

 

enabledProtocols

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

类型 :字符串

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

默认值 :未指定

 

needClientAuth

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

类型 :布尔值

示例 : true

默认值 :未指定

 

wantClientAuth

指定代理是否在连接器上 请求 双向 TLS,但不是必需的。此属性将被 needClientAuth 覆盖

类型 :布尔值

示例 : true

默认值 :未指定

 

verifyHost

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

类型 :布尔值

示例 : true

默认值 :未指定

 

sslProvider

指定 SSL 提供程序是 JDK 还是 OPENSSL

类型 :字符串

示例 :OPENSSL

默认值 :JDK

 

sniHost

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

类型 :字符串

示例 : 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 中指定。

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

replace_all
将默认配置中指定的 所有 地址设置替换为 CR 中指定的设置。最终的 Igred 配置与 CR 中指定的配置完全对应。

类型 :字符串

示例 : replace_all

默认值 : merge_all

addressSettings.addressSetting

 

匹配地址或地址集的地址 设置.

 

addressFullPolicy

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

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

消息制作者在尝试发送任何其他消息时将阻止。

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

类型 :字符串

示例 :DROP

默认值 :页面

 

autoCreateAddresses

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

类型 :布尔值

示例 : false

默认值为 : true

 

autoCreateDeadLetterResources

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

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

类型 :布尔值

示例 : true

默认值为 : false

 

autoCreateExpiryResources

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

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

类型 :布尔值

示例 : true

默认值为 : false

 

autoCreateJmsQueues

此属性已弃用。相反,应使用 autoCreateQueues

 

autoCreateJmsTopics

此属性已弃用。相反,应使用 autoCreateQueues

 

autoCreateQueues

指定当客户端发送消息或尝试使用尚不存在的队列中的邮件时,代理是否会自动创建队列。

类型 :布尔值

示例 : false

默认值为 : true

 

autoDeleteAddresses

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

类型 :布尔值

示例 : false

默认值为 : true

 

autoDeleteAddressDelay

当地址没有队列时,代理会在自动删除自动创建的地址前等待,以毫秒为单位。

类型 :整数

示例 :100

默认值 :0

 

autoDeleteJmsQueues

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

 

autoDeleteJmsTopics

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

 

autoDeleteQueues

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

类型 :布尔值

示例 : false

默认值为 : true

 

autoDeleteCreatedQueues

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

类型 :布尔值

示例 : true

默认值为 : false

 

autoDeleteQueuesDelay

当队列没有消费者时,代理会在自动删除自动创建的队列前等待,以毫秒为单位。

类型 :整数

示例 :10

默认值 :0

 

autoDeleteQueuesMessageCount

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

类型 :整数

示例 :5

默认值 :0

 

configDeleteAddresses

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

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

类型 :字符串

示例 :FORCE

默认值 :OFF

 

configDeleteQueues

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

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

类型 :字符串

示例 :FORCE

默认值 :OFF

 

deadLetterAddress

代理发送到的地址(即 未传送)信息。

类型 :字符串

示例 :DLA

默认值 :无

 

deadLetterQueuePrefix

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

类型 :字符串

示例 :myDLQ.

默认值 :DLQ.

 

deadLetterQueueSuffix

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

类型 :字符串

示例 :.DLQ

默认值 :无

 

defaultAddressRoutingType

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

类型 :字符串

示例 :ANYCAST

默认值 :多播

 

defaultConsumersBeforeDispatch

在消息发送开始前所需的消费者数量,以查找地址上的队列。

类型 :整数

示例 :5

默认值 :0

 

defaultConsumerWindowSize

使用者的默认窗口大小(以字节为单位)。

类型 :整数

示例 :300000

默认值 :1048576 (1024*1024)

 

defaultDelayBeforeDispatch

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

类型 :整数

示例 :5

默认值为 :-1(无延迟)

 

defaultExclusiveQueue

指定地址上的所有队列是否默认是独占队列。

类型 :布尔值

示例 : true

默认值为 : false

 

defaultGroupBuckets

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

类型 :整数

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

默认值为 :-1(无限制)

 

defaultGroupFirstKey

用于向消费者指明组中首先消息的密钥。

类型 :字符串

示例 : firstMessageKey

默认值 :无

 

defaultGroupRebalance

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

类型 :布尔值

示例 : true

默认值为 : false

 

defaultGroupRebalancePauseDispatch

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

类型 :布尔值

示例 : true

默认值为 : false

 

defaultLastValueQueue

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

类型 :布尔值

示例 : true

默认值为 : false

 

defaultLastValueKey

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

类型 :字符串

示例 :stock_ticker

默认值 :无

 

defaultMaxConsumers

队列中允许的最大消费者数量.

类型 :整数

示例 :100

默认值为 :-1(无限制)

 

defaultNonDestructive

指定地址上的所有队列是否默认是非破坏性的。

类型 :布尔值

示例 : true

默认值为 : false

 

defaultPurgeOnNoConsumers

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

类型 :布尔值

示例 : true

默认值为 : false

 

defaultQueueRoutingType

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

类型 :字符串

示例 :ANYCAST

默认值 :多播

 

defaultRingSize

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

类型 :整数

示例 :3

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

 

enableMetrics

指定配置的指标插件(如 Prometheus 插件)是收集匹配地址的指标或地址集。

类型 :布尔值

示例 : false

默认值为 : true

 

expiryAddress

收到过期邮件的地址。

类型 :字符串

示例 :myExpiryAddress

默认值 :无

 

expiryDelay

过期时间,以毫秒为单位应用到使用默认过期时间的消息。

类型 :整数

示例 :100

默认值为 :-1(未应用过期时间)

 

expiryQueuePrefix

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

类型 :字符串

示例 :myExp.

默认值 :EXP.

 

expiryQueueSuffix

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

类型 :字符串

示例 :.EXP

默认值 :无

 

lastValueQueue

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

类型 :布尔值

示例 : true

默认值为 : false

 

managementBrowsePageSize

指定管理资源可以浏览的消息数。

类型 :整数

示例 :100

默认值 :200

 

匹配*

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

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

类型 :字符串

示例 : 'myAddresses*'

默认值 :无

 

maxDeliveryAttempts

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

类型 :整数

示例 :20

默认值 :10

 

maxExpiryDelay

过期时间,以毫秒为单位应用到使用大于此值的消息。

类型 :整数

示例 :20

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

 

maxRedeliveryDelay

代理尝试的消息重新传送之间的最大值,以毫秒为单位。

类型 :整数

示例 :100

默认值 :默认值为 redeliveryDelay 的值的十倍,默认值为 0

 

maxSizeBytes

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

类型 :字符串

示例 :10Mb

默认值为 :-1(无限制)

 

maxSizeBytesRejectThreshold

代理开始拒绝信息之前,地址的最大大小,以字节为单位。address-full-policy 设置为 BLOCK 时使用。只适用于 AMQP 协议的 maxSizeBytes

类型 :整数

示例 :500

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

 

messageCounterHistoryDayLimit

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

类型 :整数

示例 :5

默认值 :0

 

minExpiryDelay

过期时间,以毫秒为单位应用到使用少于这个值的消息。

类型 :整数

示例 :20

默认值为 :-1(应用的最短过期时间)

 

pageMaxCacheSize

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

类型 :整数

示例 :10

默认值 :5

 

pageSizeBytes

以字节为单位的分页大小.还支持 KMbGB 等字节表示法。

类型 :字符串

示例 :20971520

默认值 :10485760(大约 10.5 MB)

 

redeliveryDelay

以毫秒为单位,代理在重新传送已取消消息前等待的时间。

类型 :整数

示例 :100

默认值 :0

 

redeliveryDelayMultiplier

应用到 redeliveryDelay 的值的倍数。

类型 :数字

示例 :5

默认值 :1

 

redeliveryCollisionAvoidanceFactor

要应用到 redeliveryDelay 的值的倍数,以避免冲突。

类型 :数字

示例 :1.1

默认值 :0

 

redistributionDelay

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

类型 :整数

示例 :100

默认值为 :-1(未设置)

 

retroactiveMessageCount

要保留用于将来在地址上创建的队列的消息数量。

类型 :整数

示例 :100

默认值 :0

 

sendToDlaOnNoRoute

指定是否将消息发送到配置的死信地址(如果无法路由到任何队列)。

类型 :布尔值

示例 : true

默认值为 : false

 

slowConsumerCheckPeriod

代理检查速度较慢的消费者的频率( 以秒为单位 )。

类型 :整数

示例 :15

默认值 :5

 

slowConsumerPolicy

指定识别慢消费者时发生的情况。有效选项为 KILLNOTIFYKILL 终止消费者的连接,这会影响使用同一连接的任何客户端线程。NOTIFY 向客户端发送 CONSUMER_SLOW 管理通知。

类型 :字符串

示例 :KILL

默认值 :通知

 

slowConsumerThreshold

在每秒消息中消息的最小消息消耗率,然后消费者被视为速度较慢。

类型 :整数

示例 :100

默认值为 :-1(未设置)

upgrades

  
 

enabled

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

类型 :布尔值

示例 : true

默认值为 : false

 

指定在将 版本 从 AMQ Broker 的值更新为另一个( 例如从 7.8.07.9. 3)时,指定是否允许 Operator 自动更新 deploymentPlan.image 值。

类型 :布尔值

示例 : true

默认值为 : false

version

 

指定 AMQ Broker 的目标 次要版本,您希望 Operator 自动更新 CR,以使用对应的代理容器镜像。例如,如果您将 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 的代理镜像。

类型 :字符串

示例 :7.7.0

默认值 :AMQ Broker 的当前版本

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

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

重要

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

条目描述和使用

addressName*

在代理中创建的地址名称。

类型 :字符串

示例 : address0

默认值 :未指定

queueName

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

类型 :字符串

示例 : queue0

默认值 :未指定

removeFromBrokerOnDelete*

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

类型 :布尔值

示例 : true

默认值为 : false

routingType*

要使用的路由类型; 任播 或多 .

类型 :字符串

示例 : anycast

默认值 :多播

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

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

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

下表详述了您可以配置的项目:

重要

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

条目子条目描述和使用

loginModules

 

个或多个登录模块配置。

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

  • propertiesLoginModule - 允许您直接定义代理用户。
  • guestLoginModule - 对于没有登录凭证或凭证失败身份验证的用户,您可以使用客户机帐户授予对代理的有限访问权限。
  • keycloakLoginModule. - 允许您使用 Red Hat Single Sign-On 安全代理。

propertiesLoginModule

name*

登录模块的名称。

类型 :字符串

示例 :my-login

默认值 :Not applicable

 

users.name*

用户名称。

类型 :字符串

示例 :jdoe

默认值 :Not applicable

 

users.password*

用户的密码。

类型 :字符串

示例 :password

默认值 :Not applicable

 

users.roles

角色的名称。

类型 :字符串

示例 :查看器

默认值 :Not applicable

guestLoginModule

name*

guest 登录模块的名称。

类型 :字符串

示例 :guest-login

默认值 :Not applicable

 

guestUser

guest 用户的名称。

类型 :字符串

示例 :myguest

默认值 :Not applicable

 

guestRole

guest 用户的角色名称。

类型 :字符串

示例 :guest

默认值 :Not applicable

keycloakLoginModule

name

KeycloakLoginModule 的名称

类型 :字符串

示例 :sso

默认值 :Not applicable

 

moduleType

KeycloakLoginModule 的类型(directAccess 或 bearerToken)

类型 :字符串

示例 : bearerToken

默认值 :Not applicable

 

配置

以下配置项目与红帽单点登录相关,并提供了 OpenID Connect 文档的详细信息。

 

configuration.realm*

KeycloakLoginModule 的域

类型 :字符串

示例 :myrealm

默认值 :Not applicable

 

configuration.realmPublicKey

域的公钥

类型 :字符串

默认值 :Not applicable

 

configuration.authServerUrl*

keycloak 身份验证服务器的 URL

类型 :字符串

默认值 :Not applicable

 

configuration.sslRequired

指定是否需要 SSL

类型 :字符串

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

 

configuration.resource*

资源名称

应用程序的 client-id。每个应用程序都有一个客户端 ID,用于识别应用程序。

 

configuration.publicClient

指定它是公共客户端。

类型 :布尔值

默认值为 : false

示例 : false

 

configuration.credentials.key

指定凭证密钥。

类型 :字符串

默认值 :Not applicable

类型 :字符串

默认值 :Not applicable

 

configuration.credentials.value

指定凭证值

类型 :字符串

默认值 :Not applicable

 

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

连接池的大小

类型 :整数

默认值 :20

 

configuration.allowAnyHostName

指定是否允许任何主机名

类型 :布尔值

默认值为 : false

 

configuration.disableTrustManager

指定是否禁用信任管理器

类型 :布尔值

默认值为 : false

 

configuration.trustStore*

信任存储的路径

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

 

configuration.trustStorePassword*

信任存储密码

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

 

configuration.clientKeyStore

客户端密钥存储的路径

类型 :字符串

默认值 :Not applicable

 

configuration.clientKeyStorePassword

客户端密钥存储密码

类型 :字符串

默认值 :Not applicable

 

configuration.clientKeyPassword

客户端密钥密码

类型 :字符串

默认值 :Not applicable

 

configuration.alwaysRefreshToken

指定是否始终刷新令牌

类型 :布尔值

示例 : false

 

configuration.registerNodeAtStartup

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

类型 :布尔值

示例 : false

 

configuration.registerNodePeriod

重新注册节点的周期

类型 :字符串

默认值 :Not applicable

 

configuration.tokenStore

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

类型 :字符串

默认值 :Not applicable

 

configuration.tokenCookiePath

Cookie 存储的 Cookie 路径

类型 :字符串

默认值 :Not applicable

 

configuration.principalAttribute

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

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

 

configuration.proxyUrl

代理 URL

 

configuration.turnOffChangeSessionIdOnLogin

指定是否在成功登录中更改会话 ID

类型 :布尔值

示例 : false

 

configuration.tokenMinimumTimeToLive

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

类型 :整数

默认值 :0

 

configuration.minTimeBetweenJwksRequests

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

类型 :整数

默认值 :10

 

configuration.publicKeyCacheTtl

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

类型 :整数

默认值 :86400

 

configuration.ignoreOauthQueryParameter

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

类型 :布尔值

示例 : false

 

configuration.verifyTokenAudience

验证令牌是否包含此客户端名称(资源)作为受众

类型 :布尔值

示例 : false

 

configuration.enableBasicAuth

是否支持基本身份验证

类型 :布尔值

默认值为 : false

 

configuration.confidentialPort

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

类型 :整数

示例 :8443

 

configuration.redirectRewriteRules.key

用于匹配 Redirect URI 的正则表达式。

类型 :字符串

默认值 :Not applicable

 

configuration.redirectRewriteRules.value

替换字符串

类型 :字符串

默认值 :Not applicable

 

configuration.scope

DirectAccessGrantsLoginModule 的 OAuth2 范围参数

类型 :字符串

默认值 :Not applicable

securityDomains

 

代理安全域

 

brokerDomain.name

代理域名

类型 :字符串

示例 :activemq

默认值 :Not applicable

 

brokerDomain.loginModules

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

 

brokerDomain.loginModules.name

登录模块名称

类型 :字符串

示例 : prop-module

默认值 :Not applicable

 

brokerDomain.loginModules.flag

与 propertiesLoginModule、必需requisitesufficientoptional 都是有效的值。

类型 :字符串

示例 :足够

默认值 :Not applicable

 

brokerDomain.loginModules.debug

Debug

 

brokerDomain.loginModules.reload

reload

 

consoleDomain.name

代理域名

类型 :字符串

示例 :activemq

默认值 :Not applicable

 

consoleDomain.loginModules

单个登录模块配置。

 

consoleDomain.loginModules.name

登录模块名称

类型 :字符串

示例 : prop-module

默认值 :Not applicable

 

consoleDomain.loginModules.flag

与 propertiesLoginModule、必需requisitesufficientoptional 都是有效的值。

类型 :字符串

示例 :足够

默认值 :Not applicable

 

consoleDomain.loginModules.debug

Debug

类型 :布尔值

示例 : false

 

consoleDomain.loginModules.reload

reload

类型 :布尔值

示例 : true

默认 :false

securitySettings

 

要添加到 broker.xmlmanagement.xml的额外安全设置

 

broker.match

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

 

broker.permissions.operationType

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

类型 :字符串

示例 :创建Address

默认值 :Not applicable

 

broker.permissions.roles

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

类型 :字符串

示例 :root

默认值 :Not applicable

securitySettings.management

 

用于配置 management.xml 的选项。

 

hawtioRoles

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

类型 :字符串

示例 :root

默认值 :Not applicable

 

connector.host

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

类型 :字符串

示例 :myhost

默认值为: localhost

 

connector.port

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

类型 :整数

示例 :1099

默认值 :1099

 

connector.jmxRealm

管理 API 的 JMX 域。

类型 :字符串

示例 :activemq

默认值: activemq

 

connector.objectName

管理 API 的 JMX 对象名称。

类型 :字符串

示例 :connector:name=rmi

默认 :connector:name=rmi

 

connector.authenticatorType

管理 API 身份验证类型。

类型 :字符串

示例 :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",则所需的管理连接器的信任存储供应商。

类型 :字符串

示例 :JKS

Default:JKS

 

connector.trustStorePath

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

类型 :字符串

默认值 :Not applicable

 

connector.trustStorePassword

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

类型 :字符串

默认值 :Not applicable

 

connector.passwordCodec

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

 

authorisation.allowedList.domain

allowedList 的域

类型 :字符串

默认值 :Not applicable

 

authorisation.allowedList.key

allowedList 的密钥

类型 :字符串

默认值 :Not applicable

 

authorisation.defaultAccess.method

defaultAccess List 的方法

类型 :字符串

默认值 :Not applicable

 

authorisation.defaultAccess.roles

defaultAccess List 的角色

类型 :字符串

默认值 :Not applicable

 

authorisation.roleAccess.domain

roleAccess List 的域

类型 :字符串

默认值 :Not applicable

 

authorisation.roleAccess.key

roleAccess List 键

类型 :字符串

默认值 :Not applicable

 

authorisation.roleAccess.accessList.method

roleAccess List 方法

类型 :字符串

默认值 :Not applicable

 

authorisation.roleAccess.accessList.roles

roleAccess List 角色

类型 :字符串

默认值 :Not applicable

 

applyToCrNames

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

类型 :字符串

示例 :my-broker

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.