4.2.2. 为基于 Operator 的代理部署创建地址和队列

以下流程演示了如何使用自定义资源(CR)实例将地址和关联的队列添加到基于 Operator 的代理部署。

注意

要在代理部署中创建多个地址和/或队列,您需要创建单独的 CR 文件并单独部署它们,并在每次情况下指定新的地址和/或队列名称。此外,每个 CR 实例的 name 属性必须是唯一的。

先决条件

流程

  1. 开始配置自定义资源(CR)实例,以定义代理部署的地址和队列。

    1. 使用 OpenShift 命令行界面:

      1. 以具有特权的用户身份登录 OpenShift,以便在项目中为代理部署部署 CR。

        oc login -u <user> -p <password> --server=<host:port>
      2. 打开名为 broker_activemqartemisaddress_cr.yaml 的示例 CR 文件,该文件包含在您下载并提取的 Operator 安装存档的 deploy/crs 目录中。
    2. 使用 OpenShift Container Platform Web 控制台:

      1. 以具有特权的用户身份登录到控制台,以便在用于代理部署的项目中部署 CR。
      2. 根据地址 CRD 启动一个新的 CR 实例。在左侧窗格中,单击 AdministrationCustom Resource Definitions
      3. 单击 ActiveMQArtemisAddress CRD
      4. 实例 选项卡。
      5. 单击 Create ActiveMQArtemisAddress

        在控制台中,会打开 YAML 编辑器,供您配置 CR 实例。

  2. 在 CR 的 spec 部分中,添加行来定义地址、队列和路由类型。例如:

    apiVersion: broker.amq.io/v2alpha2
    kind: ActiveMQArtemisAddress
    metadata:
        name: myAddressDeployment0
        namespace: myProject
    spec:
        ...
        addressName: myAddress0
        queueName: myQueue0
        routingType: anycast
        ...

    上述配置定义一个名为 myAddress0 的地址,其队列名为 myQueue0,以及 anycast 路由类型。

    注意

    metadata 部分中,您需要包含 namespace 属性,只有在 使用 OpenShift Container Platform Web 控制台创建 CR 实例时才需要指定一个值。您应指定的值是代理部署的 OpenShift 项目的名称。

  3. 部署 CR 实例。

    1. 使用 OpenShift 命令行界面:

      1. 保存 CR 文件。
      2. 切换到代理部署的项目。

        $ oc project <project_name>
      3. 创建 CR 实例。

        $ oc create -f <path/to/address_custom_resource_instance>.yaml
    2. 使用 OpenShift Web 控制台:

      1. 配置完 CR 后,点 Create
  4. (可选)要删除之前使用 CR 实例添加到部署中的地址和队列,请使用以下命令:

    $ oc delete -f <path/to/address_custom_resource_instance>.yaml