第 8 章 参考


8.1. 自定义资源配置参考

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

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

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

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

重要

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

Expand
表 8.1. 代理 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

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

ingressDomain

 

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

类型 :字符串

示例: mydomain.com

deploymentPlan*

 

代理部署配置

 

image*

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

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

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

类型 :字符串

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

默认值 :占位符

 

size*

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

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

type: 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:e46a544134cbcf99b4946c93cd6d2816d993933a53bfdf5d76c132a237f35329

默认值 :未指定

 

journalType

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

类型 :字符串

示例 :aio

默认值 :nio

 

messageMigration

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

类型 :布尔值

示例 :false

默认值: true

 

resources.limits.cpu

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

类型 :字符串

示例: "500m"

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

 

resources.limits.memory

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

类型 :字符串

示例 :"1024M"

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

 

resources.requests.cpu

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

类型 :字符串

示例 :"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 Console,您必须 将值设为 false,因为 Fuse 控制台使用自己的基于角色的访问控制。

类型 :布尔值

示例 :false

默认值: true

 

关联性

为 pod 指定调度限制。有关关联性属性的详情,请查看 OpenShift Container Platform 文档中的 属性

 

容限(tolerations)

指定 pod 的容限。如需有关 tolerations 属性的信息,请参阅 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.18 节 “为代理配置日志记录”

默认值 :未指定

 

labels

为代理 pod 分配标签。

类型 :字符串

示例 : location: "production"

默认值 :未指定

 

podSecurityContext

定义用于运行代理 Pod 的安全选项。以下默认安全上下文允许代理 Pod 在 OpenShift Container Platform restricted 安全性上下文约束(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 restricted 安全性上下文约束(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

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

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

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

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

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

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

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

类型 :字符串

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

 

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

 

单个接收器配置实例。

 

name*

接受者的名称。

类型 :字符串

示例 : my-acceptor

默认值 :不适用

 

port

用于 acceptor 实例的端口号。

type: 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>-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

指定代理是否通知客户端在 acceptor 上是否需要双向 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

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

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

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

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

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

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

* $(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/ &lt;custom_resource_name> /data/large-messages,默认情况下,代理用于消息存储)。将值设为 -1 可禁用用于 AMQP 消息的大型消息处理。

类型 :整数

示例 : 204800

默认值为: 102400 (100 KB)

 

BindToAllInterfaces

如果设置为 true,请使用 0.0.0.0 IP 地址而不是 pod 的内部 IP 地址配置代理 acceptors。当代理 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*

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

type: 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,即使连接器假设默认名称。

类型 :字符串

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

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

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

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

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

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

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

* $(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 配置满时会发生什么。可用的策略有:

PAGE
发送到完整地址的消息将分页到磁盘。
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 (1024*1024)

 

defaultDelayBeforeDispatch

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

类型 :整数

示例 :5

默认值 : -1 (无延迟)

 

defaultExclusiveQueue

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

类型 :布尔值

示例 : true

默认值: false

 

defaultGroupBuckets

用于消息分组的 bucket 数量。

类型 :整数

示例 :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, 或 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.12.4 改为 7.13.0,Operator 会将代理镜像升级到 7.13.0。

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

类型 :字符串

示例: 7.13.1

默认值 :当前 AMQ Broker 版本

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

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

重要

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

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

addressName*

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

类型 :字符串

示例 :address0

默认值 :未指定

queueName

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

类型 :字符串

示例 : queue0

默认值 :未指定

removeFromBrokerOnDelete*

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

类型 :布尔值

示例 : true

默认值: false

routingType*

要使用的路由类型; anycastmulticast

类型 :字符串

示例 : anycast

默认值 :多播

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

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

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

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

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

重要

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

Expand
表 8.3. 安全 CR 参考
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

默认值 :不适用

keycloakLoginModule

name

KeycloakLoginModule 的名称

类型 :字符串

示例 :sso

默认值 :不适用

 

moduleType

KeycloakLoginModule 的类型(directAccess 或 bearerToken)

类型 :字符串

示例: bearerToken

默认值 :不适用

 

配置

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

 

configuration.realm*

KeycloakLoginModule 的域

类型 :字符串

示例 : myrealm

默认值 :不适用

 

configuration.realmPublicKey

域的公钥

类型 :字符串

默认值 :不适用

 

configuration.authServerUrl*

keycloak 身份验证服务器的 URL

类型 :字符串

默认值 :不适用

 

configuration.sslRequired

指定是否需要 SSL

类型 :字符串

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

 

configuration.resource*

资源名称

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

 

configuration.publicClient

指定它是公共客户端。

类型 :布尔值

默认值: false

示例 :false

 

configuration.credentials.key

指定 credentials 密钥。

类型 :字符串

默认值 :不适用

类型 :字符串

默认值 :不适用

 

configuration.credentials.value

指定 credentials 值

类型 :字符串

默认值 :不适用

 

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

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

使用 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, required,requisite,sufficientoptional 是有效的值。

类型 :字符串

示例 : sufficient

默认值 :不适用

 

brokerDomain.loginModules.debug

Debug

 

brokerDomain.loginModules.reload

重新加载

 

consoleDomain.name

代理域名

类型 :字符串

示例 :activemq

默认值 :不适用

 

consoleDomain.loginModules

单个登录模块配置。

 

consoleDomain.loginModules.name

登录模块的名称

类型 :字符串

示例 : prop-module

默认值 :不适用

 

consoleDomain.loginModules.flag

与 propertiesLoginModule, required,requisite,sufficientoptional 是有效的值。

类型 :字符串

示例 : sufficient

默认值 :不适用

 

consoleDomain.loginModules.debug

Debug

类型 :布尔值

示例 :false

 

consoleDomain.loginModules.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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

Theme

© 2025 Red Hat