3.4. 创建基于 Operator 的代理部署


3.4.1. 部署基本代理实例

以下流程演示了如何使用自定义资源(CR)实例来创建基本的代理部署。

注意

先决条件

流程

成功安装 Operator 后,Operator 正在运行并侦听与 CR 相关的更改。本示例步骤演示了如何使用 CR 实例在项目中部署基本代理。

  1. 为代理部署开始配置自定义资源(CR)实例。

    1. 使用 OpenShift 命令行界面:

      1. 以具有特权的用户身份登录 OpenShift,以在您要创建部署的项目中部署 CR。

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

      1. 以具有特权的用户身份登录控制台,以在您要创建部署的项目中部署 CR。
      2. 根据主代理 CRD 启动一个新的 CR 实例。在左侧窗格中,单击 Administration Custom Resource Definitions
      3. 单击 ActiveMQArtemis CRD。
      4. 实例 选项卡。
      5. 单击 Create ActiveMQArtemis

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

    对于基本的代理部署,配置可能类似如下。此配置是 broker_activemqartemis_cr.yaml 示例 CR 文件的默认内容。

    apiVersion: broker.amq.io/v2alpha4
    kind: ActiveMQArtemis
    metadata:
      name: ex-aao
      application: ex-aao-app
    spec:
        version: 7.9.3
        deploymentPlan:
            size: 1
            image: placeholder
            requireLogin: false
            persistenceEnabled: true
            journalType: nio
            messageMigration: true
    Copy to Clipboard Toggle word wrap

    请注意,在 broker_activemqartemis_cr.yaml 示例 CR 文件中,image 属性 被设置为默认值 占位符。此值表示 image 属性默认不指定用于部署的代理容器镜像。要了解 Operator 如何决定要使用的适当代理容器镜像,请参阅 第 2.4 节 “Operator 如何选择容器镜像”

    注意

    broker_activemqartemis_cr.yaml 示例 CR 使用 ex-aao 的命名约定。此命名规则表示 CR 是 AMQ Broker Operator 的示例 资源。AMQ Broker 基于 ActiveMQ Artemis 项目。当您部署此示例 CR 时,生成的 StatefulSet 使用名称 ex-aao-s。另外,部署中的代理 Pod 直接基于 StatefulSet 名称,如 ex-aao-s-0ex-aao-so-s-1 等。CR 中的应用程序名称作为 StatefulSet 上的标签出现在部署中。您可以在 Pod 选择器中使用此标签,例如:

  2. size 属性指定要部署的代理数量。2 或以上 值指定集群代理部署。但是,若要部署单个代理实例,请确保该值设置为 1
  3. 部署 CR 实例。

    1. 使用 OpenShift 命令行界面:

      1. 保存 CR 文件。
      2. 切换到您要在其中创建代理部署的项目。

        $ oc project <project_name>
        Copy to Clipboard Toggle word wrap
      3. 创建 CR 实例。

        $ oc create -f <path/to/custom_resource_instance>.yaml
        Copy to Clipboard Toggle word wrap
    2. 使用 OpenShift Web 控制台:

      1. 配置完 CR 后,点 Create
  4. 在 OpenShift Container Platform Web 控制台中,单击 Workloads StatefulSets。您会看到一个名为 ex-aao-s 的新 StatefulSet。

    1. 单击 ex-aao-ss StatefulSet。您会看到有一个 Pod,对应于您在 CR 中定义的单个代理。
    2. 在 StatefulSet 中,单击 Pods 选项卡。单击 ex-aao-ss Pod。在正在运行的 Pod 的 Events 选项卡中,您会看到代理容器已经启动。Logs 选项卡显示代理本身正在运行。
  5. 要测试代理是否正常运行,请访问代理 Pod 中的 shell 来发送一些测试信息。

    1. 使用 OpenShift Container Platform Web 控制台:

      1. 单击 Workloads Pods
      2. 单击 ex-aao-ss Pod。
      3. 点击 Terminal 选项卡。
    2. 使用 OpenShift 命令行界面:

      1. 获取项目的 Pod 名称和内部 IP 地址。

        $ oc get pods -o wide
        
        NAME                          STATUS   IP
        amq-broker-operator-54d996c   Running  10.129.2.14
        ex-aao-ss-0                   Running  10.129.2.15
        Copy to Clipboard Toggle word wrap
      2. 访问代理 Pod 的 shell。

        $ oc rsh ex-aao-ss-0
        Copy to Clipboard Toggle word wrap
  6. 在 shell 中,使用 artemis 命令来发送一些测试消息。在 URL 中指定代理 Pod 的内部 IP 地址。例如:

    sh-4.2$ ./amq-broker/bin/artemis producer --url tcp://10.129.2.15:61616 --destination queue://demoQueue
    Copy to Clipboard Toggle word wrap

    上述命令会在代理上自动创建一个名为 demoQueue 的队列,并将默认数量的 1000 条消息发送到队列。

    您应该看到类似如下的输出:

    Connection brokerURL = tcp://10.129.2.15:61616
    Producer ActiveMQQueue[demoQueue], thread=0 Started to calculate elapsed time ...
    
    Producer ActiveMQQueue[demoQueue], thread=0 Produced: 1000 messages
    Producer ActiveMQQueue[demoQueue], thread=0 Elapsed time in second : 3 s
    Producer ActiveMQQueue[demoQueue], thread=0 Elapsed time in milli second : 3492 milli seconds
    Copy to Clipboard Toggle word wrap

其它资源

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat