4.10. 配置代理健康检查


您可以使用存活度和就绪度探测在正在运行的代理容器上配置定期健康检查。存活度探测通过 ping 代理的 HTTP 端口来检查代理是否在运行。就绪度探测(Readiness probe)通过打开与为代理配置的每个接受器端口的连接来检查代理是否可以接受网络流量。

使用基本的存活度和就绪度探测打开与 HTTP 的连接,并接受器端口来验证代理的健康状况限制是这些检查无法识别底层问题,例如代理文件系统的问题。您可以将代理的命令行实用程序 artemis 合并到存活度或就绪度探测配置中,以创建包括向代理发送消息的更全面的健康检查。

4.10.1. 配置存活度和就绪度探测

以下示例演示了如何使用存活度和就绪度探测配置代理部署的主要自定义资源(CR)实例,以运行健康检查。

先决条件

流程

  1. 创建 CR 实例。

    1. 使用 OpenShift 命令行界面:

      1. 以有权在项目中部署代理部署的 CR 的用户登录到 OpenShift。

        oc login -u <user> -p <password> --server=<host:port>
      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 实例。

  2. 要配置存活度探测,在 CR 的 deploymentPlan 部分中添加一个 livenessProbe 部分。例如:

    spec:
      deploymentPlan:
        livenessProbe:
          initialDelaySeconds: 5
          periodSeconds: 5
    initialDelaySeconds
    探测在容器启动后运行前的延迟(以秒为单位)。默认值为 5
    periodSeconds

    探测运行的时间间隔(以秒为单位)。默认值为 5

    注意

    如果您没有配置存活度探测,或者配置探测中缺少处理程序,AMQ Operator 会创建一个具有以下配置的默认 TCP 探测。默认 TCP 探测尝试打开指定端口上的代理容器的套接字。

    spec:
      deploymentPlan:
        livenessProbe:
          tcpSocket:
            port: 8181
          initialDelaySeconds: 30
          timeoutSeconds: 5
  3. 要配置就绪度探测,在 CR 的 deploymentPlan 部分中添加一个 readinessProbe 部分。例如:

    spec:
      deploymentPlan:
        readinessProbe:
          initialDelaySeconds: 5
          periodSeconds: 5

    如果您没有配置就绪度探测,内置 脚本会 检查所有接收器是否可以接受连接。

  4. 如果要配置更全面的健康检查,请将 artemis 检查 命令行工具添加到存活度或就绪度探测配置中。

    1. 如果要配置健康检查以在 livenessProbereadinessProbe 部分中创建一个与代理的完整客户端连接,请添加 exec 部分。在 exec 部分中,添加 command 部分。在 command 部分中,添加 artemis 检查节点 命令语法。例如:

      spec:
        deploymentPlan:
          readinessProbe:
            exec:
              command:
                - bash
                - '-c'
                - /home/jboss/amq-broker/bin/artemis
                - check
                - node
                - '--silent'
                - '--acceptor'
                - <acceptor name>
                - '--user'
                - $AMQ_USER
                - '--password'
                - $AMQ_PASSWORD
            initialDelaySeconds: 30
            timeoutSeconds: 5

      默认情况下,artemis 检查节点 命令使用名为 artemis 的 acceptor 的 URI。如果代理有一个名为 artemis 的接受器,您可以在该命令中排除 --acceptor <acceptor name > 选项。

      注意

      $AMQ_USER$AMQ_PASSWORD 是 AMQ Operator 配置的环境变量。

    2. 如果要配置生成和使用消息的健康检查,在 livenessProbereadinessProbe 部分中验证代理文件系统的健康状况,请添加 exec 部分。在 exec 部分中,添加 command 部分。在 command 部分中,添加 artemis 检查队列 命令语法。例如:

      spec:
        deploymentPlan:
          readinessProbe:
            exec:
              command:
                - bash
                - '-c'
                - /home/jboss/amq-broker/bin/artemis
                - check
                - queue
                - '--name'
                - livenessqueue
                - '--produce'
                - "1"
                - '--consume'
                - "1"
                - '--silent'
                - '--user'
                - $AMQ_USER
                - '--password'
                - $AMQ_PASSWORD
            initialDelaySeconds: 30
            timeoutSeconds: 5
      注意

      您指定的队列名称必须在代理上配置,且 anycastroutingType。例如:

      apiVersion: broker.amq.io/v1beta1
      kind: ActiveMQArtemisAddress
      metadata:
        name: livenessqueue
        namespace: activemq-artemis-operator
      spec:
        addressName: livenessqueue
        queueConfiguration:
          purgeOnNoConsumers: false
          maxConsumers: -1
          durable: true
          enabled: true
        queueName: livenessqueue
        routingType: anycast
  5. 部署 CR 实例。

    1. 使用 OpenShift 命令行界面:

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

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

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

      1. 完成配置 CR 后,点 Create

其他资源

如需有关 OpenShift Container Platform 中存活度和就绪度探测的更多信息,请参阅 OpenShift Container Platform 文档中的使用 健康检查来监控应用程序健康状况

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部