4.8. 启用对 AMQ 管理控制台的访问
基于 Operator 的部署中的每个代理 pod 在端口 8161 上托管自己的 AMQ 管理控制台实例。您可以为代理部署启用自定义资源(CR)实例中控制台的访问。启用访问控制台后,您可以使用控制台在 Web 浏览器中查看和管理代理。
流程
-
编辑用于代理部署的
ActiveMQArtemis
(CR)实例。 在 CR 的
spec
部分,添加一个console
属性。在console
部分中,添加expose
属性,并将值设为true
。spec: .. console: expose: true
spec: .. console: expose: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当您公开控制台时,Operator 会在部署中的每个代理 Pod 上自动为控制台创建一个专用服务和 Openshift 路由。
如果要自定义控制台公开的路由的主机名,以匹配 Openshift 集群上的内部路由配置,您可以执行以下操作之一或这两者:
-
使用
ingressHost
属性将默认主机名替换为控制台路由的自定义主机名。 -
使用
ingressDomain
属性将自定义域附加到主机名。自定义域也应用于所有其他路由,如接受器的路由,这些路由由 CR 配置公开。
要为控制台路由设置自定义主机名,请添加
ingressHost
属性并指定 host 字符串。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意ingressHost
值在 Openshift 集群中必须是唯一的。如果您的代理集群有多个代理 pod,您可以通过在值中包含 $(BROKER_ORDINAL)变量使ingressHost
值唯一。Operator 将每个代理 pod 创建的路由中的这个变量替换为分配给 pod 的 StatefulSet 的 ordinal 编号。例如,my-console-$(BROKER_ORDINAL)-production.my-subdomain.com
的ingressHost
值设置到第二个 pod 上的my-console-0-production.my-subdomain.com
的主机名,把路由的主机名设置为my-console-0-production.my-subdomain.com
,以此类推。您可以在控制台路由的自定义主机名字符串中包含以下变量:
Expand 表 4.3. 控制台路由的自定义主机名字符串中的变量 Name 描述 $(CR_NAME)
CR 中的
metadata.name
属性的值。$(CR_NAMESPACE)
自定义资源的命名空间。
$(BROKER_ORDINAL)
StatefulSet 分配给代理 pod 的 ordinal 号。
$(ITEM_NAME)
接受者的名称。
$(RES_TYPE)
资源类型。路由的资源类型为
rte
。入口的资源类型为。
$(INGRESS_DOMAIN)
如果在 CR 中配置了
spec.ingressDomain
属性的值。要将自定义域附加到路由中的主机名,请添加
spec.ingressDomain
属性并指定自定义字符串。例如:spec: ... ingressDomain: my.domain.com
spec: ... ingressDomain: my.domain.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
使用
如果机构的网络策略需要您使用入口而不是路由公开控制台,请完成以下步骤:
添加
exposeMode
属性,并将值设置为ingress
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要自定义控制台公开的 ingresses 的主机名,以匹配 Openshift 集群上的内部路由配置,您可以执行以下操作之一或这两者:
-
使用
ingressHost
属性将默认主机名替换为自定义主机名。 使用
ingressDomain
属性将自定义域附加到主机名。自定义域也应用于由 CR 配置公开的所有其他入口(如 acceptors 的 ingresses)。要为控制台创建的 ingresses 设置自定义主机名,请添加
ingressHost
属性并指定 host 字符串。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以包含相同的变量来自定义作为路由主机的 ingress 主机,这在此流程前面进行了描述。
要将自定义域附加到 ingresses 中的主机名中,请添加
spec.ingressDomain
属性并指定自定义字符串。spec: ... ingressDomain: my.domain.com
spec: ... ingressDomain: my.domain.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于控制台,入口的默认主机名格式为 <
cr-name>-wconsj-<ordinal>-svc-ing-<namespace>
;。例如,如果您在amqbroker
名称空间中有一个名为production
的 CR,则ingressDomain
值为mydomain.com
提供主机值production-wconsj-0-svc-mynamespace.amqbroker.com
用于 pod 0 上创建的 ingress。有关
spec.ingressDomain
属性的更多信息,请参阅 第 8.1 节 “自定义资源配置参考”。
-
使用
如果要从 OpenShift 集群外的客户端启用到控制台的安全连接,请完成以下步骤:
添加
sslEnabled
属性,并将值设为true
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加
sslSecret
属性,并指定包含证书来保护控制台的 secret 名称。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
spec.env
属性添加环境变量,该变量将控制台配置为在证书被续订时自动载入新证书。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 保存 CR。
其他资源
有关如何连接到 AMQ 管理控制台的详情,请参考 第 5 章 为基于 Operator 的代理部署连接到 AMQ 管理控制台