4.8. 启用对 AMQ 管理控制台的访问


基于 Operator 的部署中的每个代理 pod 在端口 8161 上托管自己的 AMQ 管理控制台实例。您可以为代理部署启用自定义资源(CR)实例中控制台的访问。启用访问控制台后,您可以使用控制台在 Web 浏览器中查看和管理代理。

流程

  1. 编辑用于代理部署的 ActiveMQArtemis (CR)实例。
  2. 在 CR 的 spec 部分,添加一个 console 属性。在 console 部分中,添加 expose 属性,并将值设为 true

    spec:
      ..
      console:
        expose: true
    Copy to Clipboard Toggle word wrap

    当您公开控制台时,Operator 会在部署中的每个代理 Pod 上自动为控制台创建一个专用服务和 Openshift 路由。

  3. 如果要自定义控制台公开的路由的主机名,以匹配 Openshift 集群上的内部路由配置,您可以执行以下操作之一或这两者:

    • 使用 ingressHost 属性将默认主机名替换为控制台路由的自定义主机名。
    • 使用 ingressDomain 属性将自定义域附加到主机名。自定义域也应用于所有其他路由,如接受器的路由,这些路由由 CR 配置公开。
    1. 要为控制台路由设置自定义主机名,请添加 ingressHost 属性并指定 host 字符串。例如:

      spec:
        ..
        console:
          expose: true
          ingressHost: my-console-production.my-subdomain.com
        ..
      Copy to Clipboard Toggle word wrap
      注意

      ingressHost 值在 Openshift 集群中必须是唯一的。如果您的代理集群有多个代理 pod,您可以通过在值中包含 $(BROKER_ORDINAL)变量使 ingressHost 值唯一。Operator 将每个代理 pod 创建的路由中的这个变量替换为分配给 pod 的 StatefulSet 的 ordinal 编号。例如,my-console-$(BROKER_ORDINAL)-production.my-subdomain.comingressHost 值设置到第二个 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 属性的值。

    2. 要将自定义域附加到路由中的主机名,请添加 spec.ingressDomain 属性并指定自定义字符串。例如:

      spec:
        ...
        ingressDomain: my.domain.com
      Copy to Clipboard Toggle word wrap
  4. 如果机构的网络策略需要您使用入口而不是路由公开控制台,请完成以下步骤:

    1. 添加 exposeMode 属性,并将值设置为 ingress

      spec:
        ..
        console:
          expose: true
          exposeMode: ingress
        ..
      Copy to Clipboard Toggle word wrap
    2. 如果要自定义控制台公开的 ingresses 的主机名,以匹配 Openshift 集群上的内部路由配置,您可以执行以下操作之一或这两者:

      • 使用 ingressHost 属性将默认主机名替换为自定义主机名。
      • 使用 ingressDomain 属性将自定义域附加到主机名。自定义域也应用于由 CR 配置公开的所有其他入口(如 acceptors 的 ingresses)。

        1. 要为控制台创建的 ingresses 设置自定义主机名,请添加 ingressHost 属性并指定 host 字符串。例如:

          spec:
            ..
            console:
              expose: true
              exposeMode: ingress
              expose: true
              exposeMode: ingress
              ingressHost: my-console-production.my-subdomain.com
            ...
          Copy to Clipboard Toggle word wrap

          您可以包含相同的变量来自定义作为路由主机的 ingress 主机,这在此流程前面进行了描述。

        2. 要将自定义域附加到 ingresses 中的主机名中,请添加 spec.ingressDomain 属性并指定自定义字符串。

          spec:
            ...
            ingressDomain: my.domain.com
          Copy to Clipboard Toggle word wrap

          对于控制台,入口的默认主机名格式为 < cr-name>-wconsj-<ordinal>-svc-ing-<namespace&gt;。例如,如果您在 amqbroker 名称空间中有一个名为 production 的 CR,则 ingressDomain 值为 mydomain.com 提供主机值 production-wconsj-0-svc-mynamespace.amqbroker.com 用于 pod 0 上创建的 ingress。

          有关 spec.ingressDomain 属性的更多信息,请参阅 第 8.1 节 “自定义资源配置参考”

  5. 如果要从 OpenShift 集群外的客户端启用到控制台的安全连接,请完成以下步骤:

    1. 添加 sslEnabled 属性,并将值设为 true

      spec:
        ..
        console:
          expose: true
          exposeMode: ingress
          sslEnabled: true
        ..
      Copy to Clipboard Toggle word wrap
    2. 添加 sslSecret 属性,并指定包含证书来保护控制台的 secret 名称。例如:

      spec:
        ..
        console:
          expose: true
          exposeMode: ingress
          sslEnabled: true
          sslSecret: console-tls-secret
        ..
      Copy to Clipboard Toggle word wrap
    3. 使用 spec.env 属性添加环境变量,该变量将控制台配置为在证书被续订时自动载入新证书。例如:

      spec:
        ..
        env:
        - name: JAVA_ARGS_APPEND
          value: -Dwebconfig.bindings.artemis.sslAutoReload=true
        ..
      Copy to Clipboard Toggle word wrap
  6. 保存 CR。

其他资源

有关如何连接到 AMQ 管理控制台的详情,请参考 第 5 章 为基于 Operator 的代理部署连接到 AMQ 管理控制台

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat