第 8 章 参考


8.1. 自定义资源配置参考

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

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

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

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

重要

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

表 8.1. 代理 CR 参考
entrysub-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

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

ingressDomain

 

将自定义域附加到路由中的主机名,以及为接收器、连接器和管理控制台创建的入口。

类型: 字符串

示例 : mydomain.com

deploymentPlan*

 

代理部署配置

 

image*

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

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

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

类型: 字符串

示例: registry.redhat.io/amq7/amq-broker-rhel8@sha256:55ae4e28b100534d63c34ab86f69230d274c999d46d1493f26fe3e75ba7a0cec

默认值 :占位符

 

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.7 节 “Operator 如何选择容器镜像”

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

类型: 字符串

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

默认值 :未指定

 

journalType

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

类型: 字符串

示例: aio

默认值 :nio

 

messageMigration

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

类型: 布尔值

示例 :false

默认值: true

 

resources.limits.cpu

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

类型: 字符串

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

主机节点内存量(以字节为单位),每个代理容器在部署中的 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 代理。如果此属性的值设为 true,Fuse Console 可以发现并显示代理的运行时数据。

类型: 布尔值

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

类型 :对象

示例 see 第 4.18 节 “为代理配置日志记录”

默认值 :未指定

 

labels

为代理 pod 分配标签。

类型: 字符串

示例 :位置:"production"

默认值 :未指定

 

podSecurityContext

定义用于运行代理 pod 的安全选项。以下默认安全值允许代理 Pod 在 OpenShift Container Platform 受限安全上下文约束(SCC)上运行:

runAsNonRoot: true

SeccompProfile:type:RuntimeDefault

如果您希望代理在自定义 SCC 上运行,您可以在 CR 中配置以下 podSecurityContext 选项。如果在 CR 中配置任何 podSecurityContext 选项,则不应用默认值,因此您必须配置在自定义 SCC 下运行所需的所有选项。

  • fsGroup
  • fsGroupChangePolicy
  • runAsGroup
  • runAsUser
  • runAsNonRoot
  • seLinuxOptions
  • seccompProfile
  • supplementalGroups
  • sysctls
  • windowsOptions

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

 

containerSecurityContext

定义用于在 pod 中运行代理容器的安全选项。使用以下默认值,容器在 OpenShift Container Platform 受限安全上下文约束(SCC)上运行:

  • allowPrivilegeEscalation:false
  • capabilities:drop:ALL
  • runAsNonRoot: true
  • SeccompProfile:type:RuntimeDefault

如果您希望代理在自定义 SCC 上运行,您可以在 CR 中配置以下 containerSecurityContext 选项。如果在 CR 中配置任何 containerSecurityContext 选项,则不应用默认值,因此您必须配置在自定义 SCC 下运行所需的所有选项。

  • allowPrivilegeEscalation
  • 功能
  • privileged
  • procMount
  • readOnlyRootFilesystem
  • runAsGroup
  • runAsNonRoot
  • runAsUser
  • seLinuxOptions
  • seccompProfile
  • windowsOptions

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

 

podSecurity.serviceAccountName

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

类型: 字符串

示例 : amq-broker-controller-manager

默认值 :default

控制台

 

配置代理管理控制台。

 

expose

指定是否将管理控制台公开给 OpenShift Container Platform 之外的客户端。

类型: 布尔值

示例: true

默认值: false

 

exposeMode

指定是否使用路由或入口公开管理控制台。默认情况下,管理控制台仅使用路由公开。

类型 :字符串

示例 : ingress

默认值 :route

如果使用 ingress 公开控制台,则必须在 CR 中指定 ingressHostingressDomain 值。

 

ingressHost

为路由指定自定义主机值,并为管理控制台公开入口。您可以在 host 值中包含以下变量:

* $(CR_NAME)- CR 中的 metadata.name 属性的值。

* $(CR_NAMESPACE)- 自定义资源的命名空间。

* $(BROKER_ORDINAL)- StatefulSet 分配给代理 pod 的普通号。

* $(ITEM_NAME)- 控制台名称。默认名称为 wconsj

* $(RES_TYPE)- 资源类型。路由具有 rte 资源类型。入口的资源类型为 ing

* $(INGRESS_DOMAIN)- 如果在 CR 中配置,spec.ingressDomain 属性的值。

类型: 字符串

示例 :console-$(CR_NAME)-$(ITEM_NAME)-$(BROKER_ORDINAL).mydomain.com

 

sslEnabled

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

类型: 布尔值

示例: true

默认值: false

 

sslSecret

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

类型: 字符串

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

默认值 :未指定

 

useClientAuth

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

类型: 布尔值

示例: true

默认值: false

acceptors.acceptor

 

单个接收器配置实例。

 

name*

接受者的名称。

类型: 字符串

示例 : my-acceptor

默认值 :不适用

 

port

用于 acceptor 实例的端口号。

键入: int

示例 :5672

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

 

协议

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

类型: 字符串

示例: amqp,core

默认值 :all

 

sslEnabled

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

类型: 布尔值

示例: true

默认值: false

 

sslSecret

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

如果没有为 sslSecret 指定自定义 secret 名称,则接受者会假定默认 secret 名称。默认 secret 名称的格式是 < custom_resource_name> - &lt;acceptor_name>-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 扩展匹配的正则表达式。如果名称不匹配,则拒绝与接收器的连接。

类型: 字符串

示例 : some_regular_expression

默认值 :未指定

 

expose

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

类型: 布尔值

示例: true

默认值: false

 

exposeMode

指定是否使用路由或入口公开接受者。默认情况下,接收器只使用路由公开。

类型 :字符串

示例 : ingress

默认值 :route

如果使用 ingress 公开连接器,则必须在 CR 中包含 ingressHostingressDomain 属性。

 

ingressHost

为 acceptor 公开的路由和入口指定自定义主机值。您可以为主机包含以下变量:

* $(CR_NAME)- CR 中的 metadata.name 属性的值。

* $(CR_NAMESPACE)- 自定义资源的命名空间。

* $(BROKER_ORDINAL)- StatefulSet 分配给代理 pod 的普通号。

* $(ITEM_NAME)- 接受者的名称。

* $(RES_TYPE)- 资源类型。路由具有 rte 资源类型。入口的资源类型为 ing

* $(INGRESS_DOMAIN)- 如果在 CR 中配置,spec.ingressDomain 属性的值。

类型: 字符串

示例 :my-acceptor-$(CR_NAME)-$(ITEM_NAME)-$(BROKER_ORDINAL).mydomain.com

 

anycastPrefix

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

类型: 字符串

示例 :jms.queue

默认值 :未指定

 

multicastPrefix

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

类型: 字符串

示例 : /topic/

默认值 :未指定

 

connectionsAllowed

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

类型 :整数

示例 : 2

默认值 :0 (无限连接)

 

amqpMinLargeMessageSize

代理所需的最小消息大小(以字节为单位)以处理 AMQP 消息作为大消息。如果 AMQP 消息的大小等于或大于这个值,代理会将消息存储在大型消息目录中(/opt/ <custom_resource_name&gt; /data/large-messages,默认为代理用于消息存储的持久性卷(PV))。将值设为 -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,请查找 TLS/SSL 所需的凭证的 sslSecret 中指定的 secret 名称。

类型: 布尔值

示例: true

默认值: false

 

sslSecret

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

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

 

exposeMode

指定是否使用路由或入口公开连接器。默认情况下,连接器只使用路由公开。

类型: 字符串

示例 : ingress

默认值 :route

如果使用 ingress 公开连接器,则必须在 CR 中包含 ingressHostingressDomain 属性。

 

ingressHost

为连接器公开的路由和入口指定自定义主机值。您可以在 host 值中包含以下变量:

* $(CR_NAME)- CR 中的 metadata.name 属性的值。

* $(CR_NAMESPACE)- 自定义资源的命名空间。

* $(BROKER_ORDINAL)- StatefulSet 分配给代理 pod 的普通号。

* $(ITEM_NAME)- 连接器的名称。

* $(RES_TYPE)- 资源类型。路由具有 rte 资源类型。入口的资源类型为 ing

* $(INGRESS_DOMAIN)- 如果在 CR 中配置,spec.ingressDomain 属性的值。

类型: 字符串

示例 :my-connector-$(CR_NAME)-$(ITEM_NAME)-$(BROKER_ORDINAL).$(INGRESS_DOMAIN).mydomain.com

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 和核心协议,因为这些协议支持流控制。

类型: 字符串

示例 : 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 (1024*1024)

 

defaultDelayBeforeDispatch

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

类型 :整数

示例 :5

默认值: -1 (无延迟)

 

defaultExclusiveQueue

指定地址上的所有队列是否默认为专用队列。

类型: 布尔值

示例: true

默认值: false

 

defaultGroupBuckets

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

类型 :整数

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

默认值: -1 (无限制)

 

defaultGroupFirstKey

用于指示组中消息的使用者的关键。

类型: 字符串

示例: firstMessageKey

默认值: None

 

defaultGroupRebalance

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

类型: 布尔值

示例: true

默认值: false

 

defaultGroupRebalancePauseDispatch

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

类型: 布尔值

示例: true

默认值: false

 

defaultLastValueQueue

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

类型: 布尔值

示例: true

默认值: false

 

defaultLastValueKey

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

类型: 字符串

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

 

match*

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

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

类型: 字符串

示例: 'myAddresses*'

默认值: None

 

maxDeliveryAttempts

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

类型 :整数

示例 :20

默认值 :10

 

maxExpiryDelay

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

类型 :整数

示例 :20

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

 

maxRedeliveryDelay

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

类型 :整数

示例 :100

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

 

maxSizeBytes

地址的最大内存大小,以字节为单位。当 addressFullPolicy 设置为 PAGING, BLOCK ,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

时间(以毫秒为单位),代理会在重新设计取消消息前等待的时间。

类型 :整数

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

<variable name>=<value>

为代理设置环境变量。

类型 :数组

示例

Name: TZ
value: Europe/Vienna

默认值 :不适用

brokerProperties

 

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

 

<property name>=<value>

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

类型: 字符串

示例 : globalMaxSize=512m

默认值 :不适用

version

 

指定您希望 Operator 部署的 AMQ Broker 容器镜像版本。例如,如果您将 version 的值从 7.11.1 更改为 7.12.0,Operator 会将代理镜像升级到 7.12.0。

您可以从版本号省略 micro 和 minor 数字,以自动升级到可用于最新微版本或次版本的代理镜像。例如,如果您指定了 7.11 版本,Operator 会升级到最新的 7.11.x 版本的镜像。或者,如果您指定了 7 版本,Operator 会升级到最新的 7.x.x 版本的镜像。

类型: 字符串

示例 : 7.12.3

默认值 : AMQ Broker 的当前版本

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

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

重要

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

表 8.2. 地址 CR 参考
entry描述和用法

addressName*

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

类型: 字符串

示例 : address0

默认值 :未指定

queueName

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

类型: 字符串

示例 : queue0

默认值 :未指定

removeFromBrokerOnDelete*

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

类型: 布尔值

示例: true

默认值: false

routingType*

要使用的路由类型: anycastmulticast

类型: 字符串

示例: anycast

默认值 : multicast

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

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

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

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

重要

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

表 8.3. 安全 CR 参考
entrysub-entry描述和用法

loginModules

 

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

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

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

propertiesLoginModule

name*

登录模块的名称。

类型: 字符串

示例 : my-login

默认值 :不适用

 

users.name*

用户名称。

类型: 字符串

示例 :jdoe

默认值 :不适用

 

users.password*

用户的密码。

类型: 字符串

示例 :password

默认值 :不适用

 

users.roles

角色的名称。

类型: 字符串

示例 : viewer

默认值 :不适用

guestLoginModule

name*

客户机登录模块的名称。

类型: 字符串

示例 :guest-login

默认值 :不适用

 

guestUser

客户机用户的名称。

类型: 字符串

示例 : myguest

默认值 :不适用

 

guestRole

guest 用户的角色名称。

类型: 字符串

示例 :guest

默认值 :不适用

keycloakLoginModule

name

KeycloakLoginModule 的名称

类型: 字符串

示例 :sso

默认值 :不适用

 

moduleType

KeycloakLoginModule 类型(directAccess 或 bearerToken)

类型: 字符串

示例: bearerToken

默认值 :不适用

 

配置

以下配置项目与红帽单点登录相关,详细信息可通过 OpenID Connect 文档获取。

 

configuration.realm*

KeycloakLoginModule 的域

类型: 字符串

示例 : myrealm

默认值 :不适用

 

configuration.realmPublicKey

域的公钥

类型: 字符串

默认值 :不适用

 

configuration.authServerUrl*

keycloak 身份验证服务器的 URL

类型: 字符串

默认值 :不适用

 

configuration.sslRequired

指定是否需要 SSL

类型: 字符串

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

 

configuration.resource*

资源名称

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

 

configuration.publicClient

指定它是公共客户端。

类型: 布尔值

默认值: false

示例 :false

 

configuration.credentials.key

指定凭证密钥。

类型: 字符串

默认值 :不适用

类型: 字符串

默认值 :不适用

 

configuration.credentials.value

指定凭证值

类型: 字符串

默认值 :不适用

 

configuration.useResourceRoleMappings

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

类型: 布尔值

示例 :false

 

configuration.enableCors

指定是否启用 Cross-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*

信任存储的路径

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

 

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

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

类型: 布尔值

示例 :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 相同,必需requisitesufficientoptional 是有效的值。

类型: 字符串

示例 : sufficient

默认值 :不适用

 

brokerDomain.loginModules.debug

Debug

 

brokerDomain.loginModules.reload

reload

 

consoleDomain.name

代理域名

类型: 字符串

示例 :activemq

默认值 :不适用

 

consoleDomain.loginModules

单个登录模块配置。

 

consoleDomain.loginModules.name

登录模块的名称

类型: 字符串

示例 :prop-module

默认值 :不适用

 

consoleDomain.loginModules.flag

与 propertiesLoginModule 相同,必需requisitesufficientoptional 是有效的值。

类型: 字符串

示例 : sufficient

默认值 :不适用

 

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

默认 :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 List 的角色

类型: 字符串

默认值 :不适用

 

authorisation.roleAccess.domain

roleAccess List 的域

类型: 字符串

默认值 :不适用

 

authorisation.roleAccess.key

roleAccess List 的键

类型: 字符串

默认值 :不适用

 

authorisation.roleAccess.accessList.method

roleAccess List 的方法

类型: 字符串

默认值 :不适用

 

authorisation.roleAccess.accessList.roles

roleAccess List 的角色

类型: 字符串

默认值 :不适用

 

applyToCrNames

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

类型: 字符串

示例 : my-broker

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.