第 8 章 参考


8.1. 自定义资源配置参考

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

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

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

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

重要

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

entry子条目描述和使用

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 中的 image 明确指定值。占位符 的默认值表示 Operator 尚未决定要使用的适当镜像。

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

类型 :字符串

示例: registry.redhat.io/amq7/amq-broker-rhel8@sha256:137b893ad15e0cd53bae134c8fae833257a12641b12d0f774f1565ce66f63c

默认值 :占位符

 

size*

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

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

类型: int

示例 :1

默认值 :1

 

requireLogin

指定是否需要连接到代理。

类型 :布尔值

示例 :false

默认值: true

 

persistenceEnabled

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

类型 :布尔值

示例 :false

默认值: true

 

initImage

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

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

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

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

类型 :字符串

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

默认值 : 不指定

 

journalType

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

类型 :字符串

示例 :aio

默认值 :nio

 

messageMigration

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

类型 :布尔值

示例 :false

默认值: true

 

resources.limits.cpu

在部署中的 Pod 中运行的每个代理容器都可以使用主机节点 CPU 的最大数量(以 millicore 为单位)。

类型 :字符串

示例 :"500m"

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

 

resources.limits.memory

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

类型 :字符串

示例 :"1024M"

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

 

resources.requests.cpu

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

类型 :字符串

示例 :"250m"

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

 

resources.requests.memory

在部署中运行的每个代理容器都明确请求的主机节点内存量(以字节为单位)。支持字节表示法(如 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 代理。如果此属性的值设为 true,则 Fuse 控制台可以发现并显示代理的运行时数据。

类型 :布尔值

示例 : true

默认值: false

 

managementRBACEnabled

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

类型 :布尔值

示例 :false

默认值: true

 

关联性

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

 

容限(tolerations)

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

 

nodeSelector

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

 

storageClassName

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

类型 :字符串

示例 : gp3

默认值 : 不指定

 

startupProbe

配置启动探测来检查代理容器中的 AMQ Broker 应用程序是否已启动。有关启动探测属性的详情,请查看 OpenShift Container Platform 文档中的 属性

 

livenessProbe

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

 

readinessProbe

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

 

extraMounts

将包含配置信息的 secret 或 configMAP 作为一个文件挂载到代理 Pod 上。例如,您可以挂载一个包含 AMQ Broker 的自定义日志记录配置的 secret。

类型 :对象

详情示例 第 4.15 节 “为代理配置日志记录”

默认值 : 不指定

 

labels

为代理 pod 分配标签。

类型 :字符串

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

默认值 : 不指定

 

podSecurity.serviceAccountName

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

类型 :字符串

示例 :amq-broker-controller-manager

默认值 :default

 

podSecurityContext

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

* fsGroup

* fsGroupChangePolicy

* runAsGroup

* runAsUser

* runAsNonRoot

* seLinuxOptions

evince SeccompProfile

* supplementalGroups

过程 sysctl

* windowsOptions

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

控制台

 

配置代理管理控制台。

 

expose

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

类型 :布尔值

示例 : true

默认值: false

 

sslEnabled

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

类型 :布尔值

示例 : true

默认值: false

 

sslSecret

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

类型 :字符串

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

默认值 : 不指定

 

useClientAuth

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

类型 :布尔值

示例 : true

默认值: false

acceptors.acceptor

 

单个 acceptor 配置实例。

 

name*

接受者的名称。

类型 :字符串

示例 :my-acceptor

默认值 :不适用

 

port

用于 acceptor 实例的端口号。

类型: int

示例 : 5672

您为您定义的 第一个接受者的默认值 : 61626。然后,对于您定义的每个后续接受者,默认值会乘以 10。

 

协议

要在 acceptor 实例上启用的消息协议。

类型 :字符串

示例 :amqp,core

默认值 :all

 

sslEnabled

指定在 acceptor 端口上是否启用了 SSL。如果设置为 true,请查看 sslSecret 中指定的 secret 名称,以了解 TLS/SSL 所需的凭据。

类型 :布尔值

示例 : true

默认值: false

 

sslSecret

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

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

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

类型 :字符串

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

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

 

enabledCipherSuites

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

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

可用的密码套件取决于代理和客户端使用的 TLS 协议版本。如果在升级代理后默认 TLS 协议版本有变化,您可能需要选择早期的 TLS 协议版本,以确保代理和客户端可以使用通用密码套件。如需更多信息,请参阅 enabledProtocols

类型 :字符串

默认值 : 不指定

 

enabledProtocols

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

类型 :字符串

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

默认值 : 不指定

如果没有指定 TLS 协议版本,代理将使用 JVM 的默认版本。如果代理使用 JVM 的默认 TLS 协议版本,且升级代理后该版本会改变,代理和客户端使用的 TLS 协议版本可能会不兼容。虽然建议您使用更新的 TLS 协议版本,但您可以在 enabledProtocols 中指定较早的版本,以便与不支持较新的 TLS 协议版本的客户端进行交互。

 

keyStoreProvider

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

类型 :字符串

示例 : SunJCE

默认值 : 不指定

 

trustStoreProvider

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

类型 :字符串

示例 : SunJCE

默认值 : 不指定

 

trustStoreType

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

类型 :字符串

示例 :JCEKS

默认值 :JKS

 

needClientAuth

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

类型 :布尔值

示例 : true

默认值 : 不指定

 

wantClientAuth

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

类型 :布尔值

示例 : true

默认值 : 不指定

 

verifyHost

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

类型 :布尔值

示例 : true

默认值 : 不指定

 

sslProvider

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

类型 :字符串

示例 : OPENSSL

默认值 : JDK

 

sniHost

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

类型 :字符串

示例 : some_regular_expression

默认值 : 不指定

 

expose

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

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

类型 :布尔值

示例 : true

默认值: false

 

anycastPrefix

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

类型 :字符串

示例 : jms.queue

默认值 : 不指定

 

multicastPrefix

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

类型 :字符串

示例 : /topic/

默认值 : 不指定

 

connectionsAllowed

接受者上允许的连接数。当达到这个限制时,会向日志发出 DEBUG 消息,并且拒绝连接。正在使用的客户端类型决定了连接被拒绝时会发生什么。

类型 :整数

示例 : 2

默认值 : 0 (无限连接)

 

amqpMinLargeMessageSize

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

类型 :整数

示例 : 204800

默认值 : 102400 (100 KB)

 

BindToAllInterfaces

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

注意

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

类型 :布尔值

示例 : true

默认值: false

connectors.connector

 

单个连接器配置实例。

 

name*

连接器的名称。

类型 :字符串

示例 :my-connector

默认值 :不适用

 

type

要创建的连接器类型; tcpvm

类型 :字符串

示例 :vm

默认值 :tcp

 

host*

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

类型 :字符串

示例 :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&gt; -secret

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

类型 :字符串

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

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

 

enabledCipherSuites

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

类型 :字符串

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

默认值 : 不指定

 

keyStoreProvider

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

类型 :字符串

示例 : SunJCE

默认值 : 不指定

 

trustStoreProvider

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

类型 :字符串

示例 : SunJCE

默认值 : 不指定

 

trustStoreType

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

类型 :字符串

示例 :JCEKS

默认值 :JKS

 

enabledProtocols

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

类型 :字符串

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

默认值 : 不指定

 

needClientAuth

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

类型 :布尔值

示例 : true

默认值 : 不指定

 

wantClientAuth

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

类型 :布尔值

示例 : true

默认值 : 不指定

 

verifyHost

指定是否将客户端证书的通用名称(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 中指定的地址设置,或者唯一匹配一个特定地址或一组地址的默认配置,将它们包括在最终合并的配置中。

replace_all
使用在 CR 中指定的内容替换默认配置中指定的所有地址设置最终的 megred 配置与 CR 中指定的配置完全匹配。

类型 :字符串

示例: replace_all

默认值 :merge_all

addressSettings.addressSetting

 

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

 

addressFullPolicy

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

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

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

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

类型 :字符串

示例 : DROP

默认值 :PAGE

 

autoCreateAddresses

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

类型 :布尔值

示例 :false

默认值: true

 

autoCreateDeadLetterResources

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

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

类型 :布尔值

示例 : true

默认值: false

 

autoCreateExpiryResources

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

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

类型 :布尔值

示例 : 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

默认值: None

 

deadLetterQueuePrefix

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

类型 :字符串

示例 :myDLQ。

默认值 :DLQ。

 

deadLetterQueueSuffix

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

类型 :字符串

示例 :.DLQ

默认值: None

 

defaultAddressRoutingType

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

类型 :字符串

示例 :ANYCAST

默认值 :MULTICAST

 

defaultConsumersBeforeDispatch

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

类型 :整数

示例 :5

默认值 :0

 

defaultConsumerWindowSize

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

类型 :整数

示例 :300000

默认值 :1048576 (102439) 1024)

 

defaultDelayBeforeDispatch

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

类型 :整数

示例 :5

默认值 :-1 (无延迟)

 

defaultExclusiveQueue

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

类型 :布尔值

示例 : true

默认值: false

 

defaultGroupBuckets

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

类型 :整数

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

默认值 :-1 (无限制)

 

defaultGroupFirstKey

用于指示组中的消息第一个消息的 key。

类型 :字符串

示例 : firstMessageKey

默认值: None

 

defaultGroupRebalance

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

类型 :布尔值

示例 : true

默认值: false

 

defaultGroupRebalancePauseDispatch

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

类型 :布尔值

示例 : true

默认值: false

 

defaultLastValueQueue

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

类型 :布尔值

示例 : true

默认值: false

 

defaultLastValueKey

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

类型 :字符串

示例:pinning_ticker

默认值: None

 

defaultMaxConsumers

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

类型 :整数

示例 :100

默认值 :-1 (无限制)

 

defaultNonDestructive

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

类型 :布尔值

示例 : true

默认值: false

 

defaultPurgeOnNoConsumers

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

类型 :布尔值

示例 : true

默认值: false

 

defaultQueueRoutingType

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

类型 :字符串

示例 :ANYCAST

默认值 :MULTICAST

 

defaultRingSize

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

类型 :整数

示例 :3

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

 

enableMetrics

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

类型 :布尔值

示例 :false

默认值: true

 

expiryAddress

接收已过期消息的地址。

类型 :字符串

示例 :myExpiryAddress

默认值: None

 

expiryDelay

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

类型 :整数

示例 :100

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

 

expiryQueuePrefix

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

类型 :字符串

示例 :myExp。

默认值 : EXP。

 

expiryQueueSuffix

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

类型 :字符串

示例 :.EXP

默认值: None

 

lastValueQueue

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

类型 :布尔值

示例 : true

默认值: false

 

managementBrowsePageSize

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

类型 :整数

示例 :100

默认值 : 200

 

match114

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

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

类型 :字符串

示例 : 'myAddresses114'

默认值: None

 

maxDeliveryAttempts

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

类型 :整数

示例 :20

默认值 :10

 

maxExpiryDelay

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

类型 :整数

示例 :20

默认值 :-1 (不应用最长过期时间)

 

maxRedeliveryDelay

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

类型 :整数

示例 :100

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

 

maxSizeBytes

地址的最大内存大小(以字节为单位)。当 addressFullPolicy 设置为 PAGING,BLOCK, 或 FAIL 时使用。还支持字节表示法,如"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

代理在 redelivering a cancelled 信息前等待的时间(毫秒)。

类型 :整数

示例 :100

默认值 :0

 

redistributionDelay

在重新分发任何剩余的消息前,代理会在队列关闭了最后一个消费者后等待的时间。

类型 :整数

示例 :100

默认值 :-1 (未设置)

 

retroactiveMessageCount

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

类型 :整数

示例 :100

默认值 :0

 

sendToDlaOnNoRoute

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

类型 :布尔值

示例 : true

默认值: false

 

slowConsumerCheckPeriod

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

类型 :整数

示例 :15

默认值 :5

 

slowConsumerPolicy

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

类型 :字符串

示例 : KILL

默认值 : NOTIFY

 

slowConsumerThreshold

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

类型 :整数

示例 :100

默认值 :-1 (未设置)

env

 

为代理设置环境变量。

 

<property name>=<value>

为代理配置的属性名称和值列表。

类型 :数组

'name:<变量名称 &gt;
value:<变量值 &gt;

为代理配置的环境变量名称和值列表。

类型 :数组

示例

Name: TZ
value: Europe/Vienna

默认值 :不适用

brokerProperties

 

配置没有在代理的自定义资源定义(CRD)中公开的代理属性,否则无法在自定义资源(CR)中配置。

 

<property name>=<value>

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

globalMaxSize 属性的默认单位为字节。要更改默认单元,请在值中添加 m (用于 MB)或 g ( GB)后缀。

类型 :字符串

示例 :globalMaxSize=512m

默认值 :不适用

version

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

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

重要

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

entry描述和使用

addressName*

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

类型 :字符串

示例 : address0

默认值 : 不指定

queueName

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

类型 :字符串

示例 : queue0

默认值 : 不指定

removeFromBrokerOnDelete*

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

类型 :布尔值

示例 : true

默认值: false

routingType*

要使用的路由类型; anycastmulticast

类型 :字符串

示例 : anycast

默认值 :多播

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

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

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

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

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

重要

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

entry子条目描述和使用

loginModules

 

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

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

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

propertiesLoginModule

name*

登录模块的名称。

类型 :字符串

示例 :my-login

默认值 :不适用

 

users.name*

user 的名称。

类型 :字符串

示例 :jdoe

默认值 :不适用

 

users.password*

用户密码。

类型 :字符串

示例 :密码

默认值 :不适用

 

users.roles

角色的名称。

类型 :字符串

示例 :查看器

默认值 :不适用

guestLoginModule

name*

客户机登录模块的名称。

类型 :字符串

示例 :guest-login

默认值 :不适用

 

guestUser

guest 用户的名称。

类型 :字符串

示例 :myguest

默认值 :不适用

 

guestRole

guest 用户的角色名称。

类型 :字符串

示例 :guest

默认值 :不适用

keycloakLoginModule

name

Name for KeycloakLoginModule

类型 :字符串

示例 :关联

默认值 :不适用

 

moduleType

KeycloakLoginModule (directAccess 或 bearerToken)的类型

类型 :字符串

示例 : bearerToken

默认值 :不适用

 

配置

以下配置项与 Red Hat Single Sign-On 相关,请参阅 OpenID Connect 文档。

 

configuration.realm*

Realm for KeycloakLoginModule

类型 :字符串

示例 :myrealm

默认值 :不适用

 

configuration.realmPublicKey

域的公钥

类型 :字符串

默认值 :不适用

 

configuration.authServerUrl*

keycloak 身份验证服务器的 URL

类型 :字符串

默认值 :不适用

 

configuration.sslRequired

指定是否需要 SSL

类型 :字符串

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

 

configuration.resource*

资源名称

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

 

configuration.publicClient

指定它是公共客户端。

类型 :布尔值

默认值: false

示例 :false

 

configuration.credentials.key

指定 credentials 密钥。

类型 :字符串

默认值 :不适用

类型 :字符串

默认值 :不适用

 

configuration.credentials.value

指定凭证值

类型 :字符串

默认值 :不适用

 

configuration.useResourceRoleMappings

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

类型 :布尔值

示例 :false

 

configuration.enableCors

指定是否启用跨Origin Resource Sharing (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*

信任存储的路径

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

 

configuration.trustStorePassword*

truststore 密码

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

 

configuration.clientKeyStore

客户端密钥存储的路径

类型 :字符串

默认值 :不适用

 

configuration.clientKeyStorePassword

客户端密钥存储密码

类型 :字符串

默认值 :不适用

 

configuration.clientKeyPassword

客户端密钥密码

类型 :字符串

默认值 :不适用

 

configuration.alwaysRefreshToken

指定是否总是刷新令牌

类型 :布尔值

示例 :false

 

configuration.registerNodeAtStartup

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

类型 :布尔值

示例 :false

 

configuration.registerNodePeriod

重新注册节点的周期

类型 :字符串

默认值 :不适用

 

configuration.tokenStore

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

类型 :字符串

默认值 :不适用

 

configuration.tokenCookiePath

Cookie 存储的 Cookie 路径

类型 :字符串

默认值 :不适用

 

configuration.principalAttribute

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

OpenID Connect ID Token 属性,用于填充 UserPrincipal 名称。如果 token 属性为空,则默认为 sub。可能的值有 sub, preferred_username, email, 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 的正则表达式。

类型 :字符串

默认值 :不适用

 

configuration.redirectRewriteRules.value

替换字符串

类型 :字符串

默认值 :不适用

 

configuration.scope

DirectAccessGrantsLoginModule 的 OAuth2 scope 参数

类型 :字符串

默认值 :不适用

securityDomains

 

代理安全域

 

brokerDomain.name

代理域名

类型 :字符串

示例 :activemq

默认值 :不适用

 

brokerDomain.loginModules

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

 

brokerDomain.loginModules.name

登录模块的名称

类型 :字符串

示例 :prop-module

默认值 :不适用

 

brokerDomain.loginModules.flag

与 propertiesLoginModule、必需先决条件 相同,足够 和可选 是有效的值。

类型 :字符串

示例 :足够

默认值 :不适用

 

brokerDomain.loginModules.debug

Debug

 

brokerDomain.loginModules.reload

reload

 

consoleDomain.name

代理域名

类型 :字符串

示例 :activemq

默认值 :不适用

 

consoleDomain.loginModules

单个登录模块配置。

 

consoleDomain.loginModules.name

登录模块的名称

类型 :字符串

示例 :prop-module

默认值 :不适用

 

consoleDomain.loginModules.flag

与 propertiesLoginModule、必需先决条件 相同,足够 和可选 是有效的值。

类型 :字符串

示例 :足够

默认值 :不适用

 

consoleDomain.loginModules.debug

Debug

类型 :布尔值

示例 :false

 

consoleDomain.loginModules.reload

reload

类型 :布尔值

示例 : true

默认 :false

securitySettings

 

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

 

broker.match

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

 

broker.permissions.operationType

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

类型 :字符串

示例 :createAddress

默认值 :不适用

 

broker.permissions.roles

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

类型 :字符串

示例 :root

默认值 :不适用

securitySettings.management

 

配置 management.xml 的选项。

 

hawtioRoles

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

类型 :字符串

示例 :root

默认值 :不适用

 

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

 

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",则管理连接器的 truststore 供应商需要。

类型 :字符串

示例 :JKS

默认 :JKS

 

connector.trustStorePath

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

类型 :字符串

默认值 :不适用

 

connector.trustStorePassword

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

类型 :字符串

默认值 :不适用

 

connector.passwordCodec

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

 

authorisation.allowedList.domain

allowedList 的域

类型 :字符串

默认值 :不适用

 

authorisation.allowedList.key

allowedList 的密钥

类型 :字符串

默认值 :不适用

 

authorisation.defaultAccess.method

defaultAccess List 的方法

类型 :字符串

默认值 :不适用

 

authorisation.defaultAccess.roles

defaultAccess 列表的角色

类型 :字符串

默认值 :不适用

 

authorisation.roleAccess.domain

roleAccess List 的域

类型 :字符串

默认值 :不适用

 

authorisation.roleAccess.key

roleAccess List 的密钥

类型 :字符串

默认值 :不适用

 

authorisation.roleAccess.accessList.method

roleAccess List 的方法

类型 :字符串

默认值 :不适用

 

authorisation.roleAccess.accessList.roles

roleAccess List 的角色

类型 :字符串

默认值 :不适用

 

applyToCrNames

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

类型 :字符串

示例 :my-broker

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.