4.10. ブローカー可用性チェックの設定


活性および準備プローブを使用して、実行中のブローカーコンテナーで定期的な可用性チェックを設定できます。活性プローブは、ブローカーの HTTP ポートに ping を実行して、ブローカーが実行されているかどうかを確認します。準備プローブは、ブローカー用に設定された各アクセプターポートへの接続を開くことにより、ブローカーがネットワークトラフィックを受け入れることができるかどうかを確認します。

基本的な liveness および readiness プローブを使用して HTTP およびアクセプターポートへの接続を開くことによってブローカーの可用性を検証する場合の制限は、これらのチェックでは、ブローカーのファイルシステムの問題など、根本的な問題を識別できないことです。ブローカーのコマンドラインユーティリティーである artemis を liveness または readiness プローブ設定に組み込んで、ブローカーへのメッセージの送信を含む、より包括的な可用性チェックを作成できます。

4.10.1. liveness および readiness プローブの設定

次の例は、liveness および readiness プローブを使用して可用性チェックを実行するようにブローカーデプロイメントのメインカスタムリソース (CR) インスタンスを設定する方法を示しています。

前提条件

手順

  1. CR インスタンスを作成します。

    1. OpenShift コマンドラインインターフェイスの使用:

      1. ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとして OpenShift にログインします。

        oc login -u <user> -p <password> --server=<host:port>
      2. ダウンロードした Operator インストールアーカイブの deploy/crs ディレクトリーに含まれる broker_activemqartemis_cr.yaml というサンプル CR ファイルを開きます。
    2. OpenShift Container Platform Web コンソールの使用

      1. ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとしてコンソールにログインします。
      2. メインブローカー CRD に基づいて新規 CR インスタンスを起動します。左側のペインで、Administration Custom Resource Definitions をクリックします。
      3. ActiveMQArtemis CRD をクリックします。
      4. Instances タブをクリックします。
      5. Create ActiveMQArtemis をクリックします。

        コンソールで、YAML エディターが開き、CR インスタンスを設定できます。

  2. liveness プローブを設定するには、CR の deploymentPlan セクションに livenessProbe セクションを追加します。以下に例を示します。

    spec:
      deploymentPlan:
        livenessProbe:
          initialDelaySeconds: 5
          periodSeconds: 5
    initialDelaySeconds
    コンテナーの起動後にプローブが実行されるまでの遅延 (秒単位)。デフォルトは 5 です。
    periodSeconds

    プローブが実行される間隔 (秒単位)。デフォルトは 5 です。

    注記

    liveness プローブを設定していない場合、または設定されたプローブにハンドラーが欠落している場合、AMQ Operator は次の設定を持つデフォルトの TCP プローブを作成します。デフォルトの TCP プローブは、指定されたポートでブローカーコンテナーへのソケットを開こうとします。

    spec:
      deploymentPlan:
        livenessProbe:
          tcpSocket:
            port: 8181
          initialDelaySeconds: 30
          timeoutSeconds: 5
  3. readiness プローブを設定するには、CR の deploymentPlan セクションに、readinessProbe セクションを追加します。以下に例を示します。

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

    readiness プローブを設定しない場合、ビルトイン スクリプト は、すべてのアクセプターが接続を受け入れることができるかどうかをチェックします。

  4. より包括的な可用性チェックを設定する場合は、artemis check コマンドラインユーティリティーを liveness または readiness プローブの設定に追加します。

    1. ブローカーへの完全なクライアント接続を作成する可用性チェックを設定する場合は、livenessProbe または readinessProbe セクションに exec セクションを追加します。exec セクションに、command セクションを追加します。command セクションで、artemis check node コマンド構文を追加します。以下に例を示します。

      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 check node コマンドは artemis と呼ばれるアクセプターの URI を使用します。ブローカーに artemis というアクセプターがある場合は、コマンドから --acceptor <acceptor name> オプションを除外できます。

      注記

      $AMQ_USER および $AMQ_PASSWORD は、AMQ Operator によって設定される環境変数です。

    2. メッセージを生成および消費する可用性チェックを設定し、ブローカーのファイルシステムの可用性も検証する場合は、livenessProbe または readinessProbe セクションに exec セクションを追加します。exec セクションに、command セクションを追加します。command セクションで、artemis check queue コマンド構文を追加します。以下に例を示します。

      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 の liveness プローブと readiness プローブの詳細については、OpenShift Container Platform ドキュメントの ヘルスチェックを使用したアプリケーションの健全性の監視 を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.