搜索

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

download PDF

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

流程

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

    spec:
      ..
      console:
        expose: true

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

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

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

      spec:
        ..
        console:
          expose: true
          ingressHost: my-console-production.my-subdomain.com
        ..
      注意

      ingressHost 值在 Openshift 集群中必须是唯一的。如果您的代理集群有多个代理 pod,您可以通过在值中包含 $(BROKER_ORDINAL)变量来使 ingressHost 值是唯一的。Operator 会将每个代理 pod 创建的路由中的此变量替换为分配给 pod 的 StatefulSet 编号。例如,在第一个 pod 上,my-console-$(BROKER_ORDINAL)-production.my -subdomain.com 的 ingressHost 值将路由的主机名设置为 my-console-0-production.my-subdomain.com

      您可以在控制台路由的自定义主机名字符串中包含以下变量:

      表 4.3. 控制台路由的自定义主机名字符串中的变量
      Name描述

      $(CR_NAME)

      CR 中的 metadata.name 属性的值。

      $(CR_NAMESPACE)

      自定义资源的命名空间。

      $(BROKER_ORDINAL)

      StatefulSet 分配给代理 pod 的普通数量。

      $(ITEM_NAME)

      接受者的名称。

      $(RES_TYPE)

      资源类型。路由具有 rte 资源类型。入口的资源类型为 ing

      $(INGRESS_DOMAIN)

      如果在 CR 中配置,spec.ingressDomain 属性的值。

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

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

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

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

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

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

          spec:
            ..
            console:
              expose: true
              exposeMode: ingress
              expose: true
              exposeMode: ingress
              ingressHost: my-console-production.my-subdomain.com
            ...

          您可以包括相同的变量来自定义入口主机作为路由主机,如此流程前面所述。

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

          spec:
            ...
            ingressDomain: my.domain.com

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

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

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

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

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

      spec:
        ..
        console:
          expose: true
          exposeMode: ingress
          sslEnabled: true
          sslSecret: console-tls-secret
        ..
    3. 使用 spec.env 属性添加一个环境变量,该变量将控制台配置为在每次证书续订时自动加载新证书。例如:

      spec:
        ..
        env:
        - name: JAVA_ARGS_APPEND
          value: -Dwebconfig.bindings.artemis.sslAutoReload=true
        ..
  6. 保存 CR。

其他资源

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.