OpenShift での AMQ Online のインストールおよび管理

Red Hat AMQ 2021.Q1

AMQ Online 1.7 との使用

概要

本ガイドでは、AMQ Online をインストールおよび管理する方法を説明します。

オープンソースをより包含的に設定する

Red Hat は、コード、ドキュメント、および Web プロパティーにおける問題のある言語の置き換えに努めています。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、弊社の CTO、Chris Wright のメッセージ を参照してください。

製品ライフサイクル

AMQ Online 1.7 は長期(Long Term Support)のリリースバージョンです。LTS 更新は、2023 年 6 月 30 日に製品の EOL まで提供されます。これらの更新は、重大なバグ修正およびセキュリティー修正に限定されます。

製品ライフサイクルの詳細は、以下の Red Hat サポート記事を参照してください。

第1章 はじめに

1.1. AMQ Online の概要

Red Hat AMQ Online は、メッセージを管理対象サービスとして配信する OpenShift ベースのメカニズムです。Red Hat AMQ Online では、管理者はクラウドまたはオンプレミスのいずれかでクラウドネイティブのマルチテナントメッセージングサービスを設定できます。開発者は Red Hat AMQ Console を使用してメッセージングをプロビジョニングすることができます。複数の開発チームは、各チームによるソフトウェアのインストール、設定、維持、またはパッチを必要とせず、コンソールからブローカーおよびキューをプロビジョニングできます。

AMQ Online はユースケースによって異なるタイプのメッセージングをプロビジョニングすることができます。ユーザーは、アドレス空間を作成してメッセージングリソースを要求できます。AMQ Online は現在、それぞれ異なるセマンティクスを持つ 2 つのアドレス領域タイプ(標準およびブローカー)をサポートします。以下の図は、各アドレス空間タイプのハイレベルアーキテクチャーを示しています。

図1.1 標準のアドレス空間

図1.2 ブローカー化されたアドレス空間

1.2. サポートされる機能

AMQ Online 1.7 でサポートされる機能を以下の表に示します。

表1.1 サポートされる機能の参照テーブル

機能 ブローカー化されたアドレス空間標準のアドレス空間

アドレスタイプ

Queue

Yes

Yes

トピック

Yes

Yes

マルチキャスト

いいえ

Yes

anycast

いいえ

Yes

サブスクリプション

いいえ

Yes

メッセージングプロトコル

AMQP

Yes

Yes

MQTT

Yes

いいえ

コア

Yes

いいえ

OpenWire

Yes

いいえ

STOMP

Yes

いいえ

トランスポート

TCP

Yes

Yes

WebSocket

Yes

Yes

永続サブスクリプション

JMS 永続サブスクリプション

Yes

いいえ

"named" 永続サブスクリプション

いいえ

Yes

JMS

トランザクションサポート

Yes

いいえ

キューのセレクター

Yes

いいえ

メッセージの順序の保証(優先順位の変更を含む)

Yes

いいえ

スケーラビリティー

スケーラブルな分散キューとトピック

いいえ

Yes

1.3. AMQ Online のユーザーロール

AMQ Online ユーザーは、サービスの管理者およびメッセージングテナントの 2 つのユーザーロールを幅広く定義できます。組織のサイズによっては、これらのロールは同じ人または別のユーザーによって実行されることがあります。

サービス管理者は、初期インストールおよびそれ以降のアップグレードを実行します。サービス管理者は、ルーター、ブローカー、管理コンポーネントの監視、アドレススペースプランの作成など、メッセージングインフラストラクチャーもデプロイし、管理することができます。OpenShift での AMQ Online のインストールおよび管理 は、AMQ Online の設定および管理方法と、インフラストラクチャーおよびプランをサービス管理者として設定する方法を説明します。

メッセージングテナントは、クラウドネイティブ API とツールを使用してメッセージングリソースを要求できます。メッセージングテナントは、メッセージングシステム内の特定のアドレス空間のユーザーおよびパーミッションを管理したり、アドレス空間およびアドレスを作成することもできます。アドレス空間、アドレス、およびユーザーを管理する方法の詳細は、『 Using AMQ Online on OpenShift Container Platform 』を参照してください。

1.4. サポートされる構成

AMQ Online のサポートされる構成については、「 Red Hat AMQ 7 でサポートされる構成 」を参照してください。

1.5. ドキュメントの規則

1.5.1. 変数テキスト

本書には、お使いのインストールに固有の値に置き換える必要がある変数が含まれる code ブロックが含まれます。本書では、このようなテキストはイタリックモノースペースとして記載されています。

たとえば、以下のコードブロックでは、my-namespace を、インストールで使用される namespace に置き換えます。

sed -i 's/amq-online-infra/my-namespace/' install/bundles/enmasse-with-standard-authservice/*.yaml

第2章 AMQ Online のインストール

AMQ Online は、OpenShift Container Platform コマンドラインインターフェースを使用して YAML ファイルを適用するか、または Ansible Playbook を実行してインストールできます。

前提条件

  • AMQ Online をインストールするには、OpenShift Container Platform コマンドラインインターフェース(CLI)が必要です。

  • OpenShift クラスターが必要です。
  • 必要なクラスターロールおよび API サービスを設定するには、cluster-admin パーミッションを持つ OpenShift クラスターのユーザーが必要です。

2.1. AMQ Online のダウンロード

注記

AMQ Online のコンテナーイメージは Red Hat Container Catalog で利用できますが、代わりに提供される YAML ファイルを使用することが推奨されます。

2.2. YAML バンドルを使用した AMQ Online のインストール

AMQ Online をインストールする最も簡単な方法は、事前定義された YAML バンドルを使用することです。

手順

  1. cluster-admin 権限を持つユーザーとしてログインします。

    oc login -u system:admin
  2. (オプション) amq-online-infra 以外のプロジェクトにデプロイする場合は、以下のコマンドを実行し、後続の手順で amq-online-infra を置き換える必要があります。

    sed -i 's/amq-online-infra/my-project/' install/bundles/amq-online/*.yaml
  3. AMQ Online をデプロイするプロジェクトを作成します。

    oc new-project amq-online-infra
  4. ディレクトリーをダウンロードしたリリースファイルの場所に変更します。
  5. amq-online バンドルを使用してデプロイします。

    oc apply -f install/bundles/amq-online
  6. (オプション)プランおよびインフラストラクチャー設定のサンプルをインストールします。

    oc apply -f install/components/example-plans
  7. (オプション)サンプルロールをインストールします。

    oc apply -f install/components/example-roles
  8. (オプション) 標準 の認証サービスをインストールします。

    oc apply -f install/components/example-authservices/standard-authservice.yaml
  9. (オプション)サービスカタログ統合をインストールします。

    oc apply -f install/components/service-broker
    oc apply -f install/components/cluster-service-broker

2.3. Ansible を使用した AMQ Online のインストール

Ansible を使用して AMQ Online をインストールするには、システムを設定するための変数が含まれるインベントリーファイルを作成する必要があります。インベントリーファイルのサンプルは、ansible/inventory フォルダーにあります。

以下のインベントリーファイルのサンプルは、AMQ Online の最小インストールを有効にします。

[enmasse]
localhost ansible_connection=local

[enmasse:vars]
namespace=amq-online-infra
enable_rbac=False
api_server=True
service_catalog=False
register_api_server=True
keycloak_admin_password=admin
authentication_services=["standard"]
standard_authentication_service_postgresql=False
monitoring_namespace=enmasse-monitoring
monitoring_operator=False
monitoring=False

以下の Ansible 構成設定がサポートされます。

表2.1 Ansible 構成設定

名前説明デフォルト値必須

namespace

AMQ Online がインストールされているプロジェクトを指定します。

該当なし

はい

enable_rbac

REST API の RBAC 認証を有効にするかどうかを指定します。

True

no

service_catalog

サービスカタログとの統合を有効にするかどうかを指定します。

False

no

authentication_services

デプロイする認証サービスの一覧を指定します。サポートされる値は nonestandard です。

none

no

keycloak_admin_password

標準 の認証サービス Red Hat Single Sign-On インスタンスに使用する管理者パスワードを指定します。

該当なし

はい( 標準 の認証サービスが有効になっている場合)

api_server

REST API サーバーを有効にするかどうかを指定します。

True

no

register_api_server

API サーバーを OpenShift マスターに登録するかどうかを指定します。

False

no

secure_api_server

API サーバーの相互 TLS を有効にするかどうかを指定します。

False

no

install_example_plans

プランおよびインフラストラクチャー設定のサンプルをインストールするかどうかを指定します。

True

no

monitoring_namespace

AMQ Online モニタリングがインストールされているプロジェクトを指定します。

該当なし

はい

monitoring_operator

監視インフラストラクチャーをインストールするかどうかを指定します

該当なし

no

手順

  1. インベントリーファイルを作成します。
  2. Ansible Playbook を実行します。

    ansible-playbook -i inventory-file ansible/playbooks/openshift/deploy_all.yml

2.4. Operator Lifecycle Manager を使用した AMQ Online のインストールおよび設定

Operator Lifecycle Manager を使用して AMQ Online のインスタンスをインストールし、設定できます。

OpenShift 4.x では、Operator Lifecycle Manager(OLM)を使用することにより、ユーザーはすべての Operator およびクラスター全体で実行される関連サービスをインストールし、更新し、管理することができます。これは、Kubernetes のネイティブアプリケーション(Operator)を効果的かつ自動化されたスケーラブルな方法で管理するために設計されたオープンソースツールキットの Operator Framework の一部です。

OLM は OpenShift 4.x でデフォルトで実行されます。これは、クラスター管理者がクラスターで実行されている Operator をインストールし、アップグレードし、アクセスをこれに付与するのに役立ちます。OpenShift コンソールは、クラスター管理者が Operator をインストールし、クラスターで利用可能な Operator のカタログを使用できるように特定のプロジェクトアクセスを付与するための管理画面を提供します。

OperatorHub は、OpenShift クラスター管理者が Operator を検出、インストール、およびアップグレードするために使用するグラフィカルインターフェースです。1 回のクリックで、これらの Operator を OperatorHub からプルし、クラスターにインストールし、OLM で管理し、エンジニアリングチームが開発、テスト、および実稼働環境でソフトウェアをセルフサービスで管理される状態にすることができます。

2.4.1. OpenShift コンソールを使用した OperatorHub からの AMQ Online のインストール

OpenShift コンソールで OperatorHub を使用すると、AMQ Online Operator を OpenShift 4.x クラスターにインストールできます。

重要
  • AMQ Online 1.7 は長期(Long Term Support)のリリースバージョンとして指定されています。バグ修正およびセキュリティーアドバイザリーは、一連のマイクロリリース(1.7.1、1.7.2、1.7.3 など)で AMQ Online 1.7 で利用可能になります。
  • AMQ Online 1.7 の Operator の最新の LTS バージョンをインストールする必要があります。AMQ Online 1.7 の最新の LTS バージョンをインストールするには、stable というラベルが付けられた Operator チャネルを選択します。

前提条件

  • OpenShift 4.x クラスターおよび cluster-admin パーミッションを持つアカウントへのアクセス。

手順

  1. OpenShift 4.x コンソールで、cluster-admin 権限を持つアカウントを使用してログインします。
  2. AMQ Online をデプロイするプロジェクトを作成するには、Home > Projects をクリックしてから Create Project をクリックします。Create Project ウィンドウが開きます。
  3. Name フィールドに amq-online-infra と入力し、Create を クリックします。amq-online-infra プロジェクトが作成されます。
  4. Operators > OperatorHub の順にクリックします。
  5. Filter by keyword ボックスで AMQ Online を入力し、AMQ Online Operator を検索します。
  6. AMQ Online Operator をクリックします。Operator についての情報が表示されます。
  7. Operator についての情報を確認してから、Install をクリックします。
  8. Install Operator ページで以下を行います。

    1. Installation Mode で、A specific namespace on the cluster を クリックします。
    2. Installed Namespace ドロップダウンリストから amq-online-infra namespace を選択します。
    3. 残りのすべてのデフォルト設定を受け入れ、Install をクリックします。

Operator のインストールが完了すると、Installed Operators ページが開きます。AMQ Online Operator が指定したプロジェクト namespace にインストールされていることを確認する必要があります。

トラブルシューティングに関する情報は、OpenShift のドキュメント を参照してください。

2.4.2. OpenShift コンソールを使用した AMQ Online の設定

OpenShift コンソールを使用して OperatorHub から AMQ Online をインストールした後、amq-online-infra プロジェクトに以下の項目用にカスタムリソースの新規インスタンスを作成します。

  • 認証サービス
  • アドレス空間タイプのインフラストラクチャー設定(以下の例では、標準的なアドレス空間タイプを使用)
  • アドレス空間プラン
  • アドレスプラン

カスタムリソースの新規インスタンスの作成後に、次に以下を実行します。

以下の手順では、OpenShift コンソールの使用時に提供されるサンプルデータを使用します。

2.4.2.1. OpenShift コンソールを使用した認証サービスカスタムリソースの作成

AMQ Online を使用するには、認証サービスのカスタムリソースを作成する必要があります。この例では、標準の認証サービスを使用しています。

手順

  1. 右上の Plus アイコン(+)をクリックします。Import YAML ウィンドウが開きます。
  2. 左のドロップダウンメニューから、amq-online-infra プロジェクトを選択します。
  3. 以下のコードをコピーします。

    apiVersion: admin.enmasse.io/v1beta1
    kind: AuthenticationService
    metadata:
      name: standard-authservice
    spec:
      type: standard
  4. Import YAML ウィンドウで、コピーしたコードを貼り付け、Create をクリックします。AuthenticationService の概要ページが表示されます。
  5. Workloads > Pods をクリックします。Readiness 列で、カスタムリソースがデプロイされると Pod のステータスは Ready になります。

2.4.2.2. OpenShift コンソールを使用したインフラストラクチャー設定カスタムリソースの作成

AMQ Online を使用するには、インフラストラクチャー設定のカスタムリソースを作成する必要があります。この例では、標準 のアドレス空間に StandardInfraConfig を使用します。

手順

  1. 右上の Plus アイコン(+)をクリックします。Import YAML ウィンドウが開きます。
  2. 左のドロップダウンメニューから、amq-online-infra プロジェクトを選択します。
  3. 以下のコードをコピーします。

    apiVersion: admin.enmasse.io/v1beta1
    kind: StandardInfraConfig
    metadata:
      name: default
  4. Import YAML ウィンドウで、コピーしたコードを貼り付け、Create をクリックします。StandardInfraConfig overview ページが表示されます。
  5. Operators > Installed Operators の順にクリックします。
  6. AMQ Online Operator をクリックし、Standard Infra Config タブをクリックして StatusActive として表示されることを確認します。

2.4.2.3. OpenShift コンソールを使用したアドレス空間プランカスタムリソースの作成

AMQ Online を使用するには、アドレス空間プランのカスタムリソースを作成する必要があります。この手順では、OpenShift コンソールの使用時に提供されるデータのサンプルを使用します。

手順

  1. 右上の Plus アイコン(+)をクリックします。Import YAML ウィンドウが開きます。
  2. 左のドロップダウンメニューから、amq-online-infra プロジェクトを選択します。
  3. 以下のコードをコピーします。

    apiVersion: admin.enmasse.io/v1beta2
    kind: AddressSpacePlan
    metadata:
      name: standard-small
    spec:
      addressSpaceType: standard
      infraConfigRef: default
      addressPlans:
        - standard-small-queue
      resourceLimits:
        router: 2.0
        broker: 3.0
        aggregate: 4.0
  4. Import YAML ウィンドウで、コピーしたコードを貼り付け、Create をクリックします。AddressSpacePlan overview ページが表示されます。
  5. Operators > Installed Operators の順にクリックします。
  6. AMQ Online Operator をクリックし、Address Space Plan タブをクリックして StatusActive として表示されることを確認します。

2.4.2.4. OpenShift コンソールを使用したアドレスプランカスタムリソースの作成

AMQ Online を使用するには、アドレスプランのカスタムリソースを作成する必要があります。この手順では、OpenShift コンソールの使用時に提供されるデータのサンプルを使用します。

手順

  1. 右上の Plus アイコン(+)をクリックします。Import YAML ウィンドウが開きます。
  2. 左のドロップダウンメニューから、amq-online-infra プロジェクトを選択します。
  3. 以下のコードをコピーします。

    apiVersion: admin.enmasse.io/v1beta2
    kind: AddressPlan
    metadata:
      name: standard-small-queue
    spec:
      addressType: queue
      resources:
        router: 0.01
        broker: 0.1
  4. Import YAML ウィンドウで、コピーしたコードを貼り付け、Create をクリックします。AddressPlan overview ページが表示されます。
  5. Operators > Installed Operators の順にクリックします。
  6. AMQ Online Operator をクリックし、Address Plan タブをクリックして StatusActive として表示されることを確認します。

第3章 AMQ Online のアップグレード

AMQ Online は、クラウドネイティブツールを使用してマイナーバージョン間のアップグレードをサポートします。アップグレード時に、設定変更を適用すると、アップグレードプロセスが自動的にトリガーされます。

最初に AMQ Online をインストールするために使用したのと同じ方法を使用して、AMQ Online の新しいバージョンにアップグレードすることが推奨されます。

AMQ Online のアップグレードは、新バージョンの YAML ファイルを適用して実行できます。

3.1. YAML バンドルを使用した AMQ Online のアップグレード

前提条件

  • AMQ Online の新しいリリース。詳細は、「 Downloading AMQ Online 」を参照してください。

手順

  1. サービス Operator としてログインします。

    oc login -u system:admin
  2. AMQ Online がインストールされているプロジェクトを選択します。

    oc project amq-online-infra
  3. 新規リリースバンドルを適用します。

    oc apply -f install/bundles/amq-online
  4. 再起動時に Pod を監視します。

    oc get pods -w

    Pod が再起動され、数分以内にアクティブになります。

  5. アップグレード後に api-server リソースを削除します。

    oc delete sa api-server -n amq-online-infra
    oc delete clusterrolebinding enmasse.io:api-server-amq-online-infra
    oc delete clusterrole enmasse.io:api-server
    oc delete rolebinding api-server -n amq-online-infra
    oc delete role enmasse.io:api-server -n amq-online-infra

3.2. Ansible を使用した AMQ Online のアップグレード

前提条件

  • AMQ Online の新しいリリース。詳細は、「 Downloading AMQ Online 」を参照してください。

手順

  1. サービス Operator としてログインします。

    oc login -u system:admin
  2. 新規リリースから Ansible Playbook を実行します。

    ansible-playbook -i inventory-file ansible/playbooks/openshift/deploy_all.yml
  3. 再起動時に Pod を監視します。

    oc get pods -w

    Pod が再起動され、数分以内にアクティブになります。

  4. アップグレード後に api-server リソースを削除します。

    oc delete sa api-server -n amq-online-infra
    oc delete clusterrolebinding enmasse.io:api-server-amq-online-infra
    oc delete clusterrole enmasse.io:api-server
    oc delete rolebinding api-server -n amq-online-infra
    oc delete role enmasse.io:api-server -n amq-online-infra

第4章 AMQ Online のアンインストール

AMQ Online のインストールに使用したのと同じ方法を使用して AMQ Online をアンインストールする必要があります。

4.1. YAML バンドルを使用した AMQ Online のアンインストール

この方法では、YAML バンドルを使用してインストールされた AMQ Online をアンインストールします。

手順

  1. cluster-admin 権限を持つユーザーとしてログインします。

    oc login -u system:admin
  2. クラスターレベルのリソースを削除します。

    oc delete crd -l app=enmasse
    oc delete crd -l app=enmasse --timeout=600s
    oc delete clusterrolebindings -l app=enmasse
    oc delete clusterroles -l app=enmasse
    oc delete apiservices -l app=enmasse
    oc delete oauthclients -l app=enmasse
  3. (OpenShift 4)コンソールの統合を削除します。

    oc delete consolelinks -l app=enmasse
  4. (オプション)サービスカタログの統合を削除します。

    oc delete clusterservicebrokers -l app=enmasse
  5. AMQ Online がデプロイされているプロジェクトを削除します。

    oc delete project amq-online-infra

4.2. Ansible を使用した AMQ Online のアンインストール

Ansible を使用して AMQ Online をアンインストールするには、AMQ Online のインストールに使用したものと同じインベントリーファイルを使用する必要があります。

注記

Playbook は amq-online-infra プロジェクトを削除します。

手順

  1. Ansible Playbook を実行します。inventory-file は、インストールで使用されるインベントリーファイルを指定します。

    ansible-playbook -i inventory-file ansible/playbooks/openshift/uninstall.yml

4.3. Operator Lifecycle Manager(OLM)を使用した AMQ Online のアンインストール

この方法では、Operator Lifecycle Manager(OLM)を使用してインストールされた AMQ Online をアンインストールします。

手順

  1. cluster-admin 権限を持つユーザーとしてログインします。

    oc login -u system:admin
  2. すべての AddressSpace インスタンス 削除します。

    oc delete addressspaces -A --all --timeout=600s
  3. サブスクリプションを削除します( amq-online は、インストールで使用されるサブスクリプションの名前に置き換えます)。

    oc delete subscription amq-online -n amq-online-infra
  4. Operator の CSV を削除します。

    oc delete csv -l app=enmasse -n amq-online-infra
  5. 残りのリソースを削除します( amq-online-infra を、AMQ Online をインストールしたプロジェクトに置き換えます)。

    oc delete all -l app=enmasse -n amq-online-infra
    oc delete cm -l app=enmasse -n amq-online-infra
    oc delete secret -l app=enmasse amq-online-infra
    oc delete consolelinks -l app=enmasse
    oc delete oauthclients -l app=enmasse
    oc delete crd -l app=enmasse
  6. (任意手順: AMQ Online が openshift-operators namespace にインストールされている場合はこの手順をスキップ)、AMQ Online がインストールされている namespace を削除します。

    oc delete namespace amq-online-infra

4.4. OpenShift コンソールを使用した AMQ Online のアンインストール

この方法では、OpenShift Container Platform コンソールで Operator Lifecycle Manager(OLM)を使用してインストールされた AMQ Online をアンインストールします。

手順

  1. Project リストから、AMQ Online をインストールしたプロジェクトを選択します。
  2. Catalog → Operator Management をクリックします。Operator Management ページが開きます。
  3. Operator Subscriptions タブをクリックします。
  4. アンインストールする AMQ Online Operator を見つけます。右端の列で、垂直記号のアイコンをクリックし、Remove Subscription を選択します。
  5. Remove Subscription ウィンドウでプロンプトが表示されたら、Also completely remove the AMQ Online Operator from the selected namespace チェックボックスを選択して、インストールに関連するすべてのコンポーネントを削除します。

    • 削除 をクリックします。AMQ Online Operator は実行を停止し、更新を受信しなくなります。
  6. 以下のコマンドを実行して残りのリソースを削除します( amq-online-infra を、AMQ Online をインストールしたプロジェクトに置き換えます)。

    oc delete all -l app=enmasse -n amq-online-infra
    oc delete cm -l app=enmasse -n amq-online-infra
    oc delete secret -l app=enmasse amq-online-infra
    oc delete consolelinks -l app=enmasse
    oc delete oauthclients -l app=enmasse
  7. (任意手順: AMQ Online が openshift-operators namespace にインストールされている場合はこの手順をスキップ)、AMQ Online がインストールされている namespace を削除します。

    oc delete namespace amq-online-infra

第5章 AMQ Online の設定

5.1. サービスの最小設定

実稼働用に AMQ Online を設定するには、多少時間がかかります。以下の手順では、最小限のサービス設定を使い始めます。詳細な例については、AMQ Online ディストリビューションの install/components/example-plans ディレクトリーに移動します。すべてのコマンドは、AMQ Online がインストールされている namespace で実行する必要があります。

手順

  1. 設定例を保存します。

    apiVersion: admin.enmasse.io/v1beta1
    kind: StandardInfraConfig
    metadata:
      name: default
    spec: {}
    ---
    apiVersion: admin.enmasse.io/v1beta2
    kind: AddressPlan
    metadata:
      name: standard-small-queue
    spec:
      addressType: queue
      resources:
        router: 0.01
        broker: 0.1
    ---
    apiVersion: admin.enmasse.io/v1beta2
    kind: AddressSpacePlan
    metadata:
      name: standard-small
    spec:
      addressSpaceType: standard
      infraConfigRef: default
      addressPlans:
      - standard-small-queue
      resourceLimits:
        router: 2.0
        broker: 3.0
        aggregate: 4.0
    ---
    apiVersion: admin.enmasse.io/v1beta1
    kind: AuthenticationService
    metadata:
      name: none-authservice
    spec:
      type: none
  2. 設定例を適用します。

    oc apply -f service-config.yaml

5.2. アドレス空間のプラン

アドレス空間プランは、クォータを設定し、アドレス空間が消費するリソースを制御するために使用されます。アドレス空間プランは AMQ Online サービス Operator によって設定され、アドレス空間の作成時にメッセージングテナントによって選択されます。

AMQ Online には、ほとんどのユースケースで十分なデフォルトのプランのセットが含まれています。

プランはカスタムリソースとして設定されます。以下の例は、標準のアドレス空間のプランを示しています。

apiVersion: admin.enmasse.io/v1beta2
kind: AddressSpacePlan
metadata:
  name: restrictive-plan
  labels:
    app: enmasse
spec:
  displayName: Restrictive Plan
  displayOrder: 0
  infraConfigRef: default 1
  shortDescription: A plan with restrictive quotas
  longDescription: A plan with restrictive quotas for the standard address space
  addressSpaceType: standard 2
  addressPlans: 3
  - small-queue
  - small-anycast
  resourceLimits: 4
    router: 2.0
    broker: 2.0
    aggregate: 2.0
1
このプランを使用し デプロイされたインフラストラクチャー用に、StandardInfraConfig 標準アドレス スペースタイプの場合)または BrokeredInfraConfig(ブローカー化されたアドレス空間タイプの場合)への参照。
2
このプランが適用されるアドレス領域のタイプ( standard または brokered のいずれか
3
このプランを使用してスペースに対応することのできるアドレスプランの一覧です。
4
このプランを使用するアドレス空間のルーター(ルーターおよびブローカー(ブローカー)。ブローカー化されたアドレス領域タイプでは、broker フィールドのみが必要に なり ます。

他のフィールドは Red Hat AMQ Console UI によって使用されます。spec.infraConfigRef フィールド spec.infraConfigRef は、このプランを使用するアドレス空間の作成時に存在する必要があるインフラストラクチャー設定を参照します。インフラストラクチャーの設定に関する詳細は、「インフラストラクチャーの 設定」を参照し てください。

5.3. アドレス空間プランの作成

手順

  1. サービスの admin としてログインします。

    oc login -u system:admin
  2. AMQ Online がインストールされているプロジェクトを選択します。

    oc project amq-online-infra
  3. アドレス空間プランの定義を作成します。

    apiVersion: admin.enmasse.io/v1beta2
    kind: AddressSpacePlan
    metadata:
      name: restrictive-plan
      labels:
        app: enmasse
    spec:
      displayName: Restrictive Plan
      displayOrder: 0
      infraConfigRef: default
      shortDescription: A plan with restrictive quotas
      longDescription: A plan with restrictive quotas for the standard address space
      addressSpaceType: standard
      addressPlans:
      - small-queue
      - small-anycast
      resourceLimits:
        router: 2.0
        broker: 2.0
        aggregate: 2.0
  4. アドレス空間プランを作成します。

    oc create -f restrictive-plan.yaml
  5. スキーマが更新され、プランが含まれていることを確認します。

    oc get addressspaceschema standard -o yaml

5.4. アドレスプラン

アドレスプランでは、特定のアドレスの予想されるリソース使用量を指定します。すべてのリソースタイプのリソース使用量の合計は、アドレス空間にプロビジョニングされるインフラストラクチャーの量を決定します。単一ルーターおよびブローカー Pod には最大 1 つの使用があります。新規アドレスに追加のリソースが必要で、リソース消費がアドレス空間の制限内にある場合には、増加した負荷を処理するために新しい Pod が自動的に作成されます。

アドレスプランは、AMQ Online サービス Operator によって設定され、アドレスの作成時に選択されます。

AMQ Online には、ほとんどのユースケースで十分なデフォルトのアドレスプランのセットが含まれています。

Address space plans セクションで、アドレススペースプランは small-queue と small- anycast の 2 つのアドレスプランを参照します。これらのアドレスプランはカスタムリソースとして保存され、以下のように定義されます。

apiVersion: admin.enmasse.io/v1beta2
kind: AddressPlan
metadata:
  name: small-queue
  labels:
    app: enmasse
spec:
  displayName: Small queue plan
  displayOrder: 0
  shortDescription: A plan for small queues
  longDescription: A plan for small queues that consume little resources
  addressType: queue 1
  resources: 2
    router: 0.2
    broker: 0.3
  partitions: 1 3
  messageTtl: 4
    minimim: 30000
    maximum: 300000
  messageRedelivery: 5
    maximumDeliveryAttempts: 3
    redeliveryDelay: 5000
    redeliveryDelayMultiplier: 1.5
    maximumDeliveryDelay: 30000
1
このプランが適用されるアドレスタイプ。
2
このプランを使用してアドレスが消費するリソース。router フィールドは、ブローカー化されたアドレス空間プランによって参照さ れる アドレスプランのオプションです。
3
このプランを使用してキュー用に作成されるパーティションの数。標準 のアドレス空間でのみ利用可能です。
4
(オプション)メッセージの time-to-live(TTL)を制限します。これは、タイプ キュートピックにのみ該当 します。
5
(オプション)メッセージの再配信設定を提供します。アドレスタイプの キューサブスクリプション のみに適用されます。

他のフィールドは Red Hat AMQ Console UI によって使用されます。

単一のルーターはアドレスの 5 つのインスタンスをサポートし、ブローカーはこのプランによるアドレスの 3 つのインスタンスをサポートします。このプランのアドレス数が 4 に増加する場合、別のブローカーが作成されます。6 個以上増加すると、別のルーターも作成されます。

標準 のアドレス空間では、キュー アドレスタイプのアドレスプランに、フィールドパーティションが含まれる場合があります。これにより HA の複数のブローカー間でキューをシャード化してパフォーマンスを向上できます。1 を超える ブローカー リソース量を指定すると、キューが自動的にパーティションに分割されます。

messageTtl フィールド は、キューまたはトピックに配置したメッセージの有効な absolute-expiry-time を制限するために使用されます。最大 および 最小 値はミリ秒単位で定義されます。システムは、受信メッセージの TTL の値を、これらの値に基づいて特定のアドレスに調整します。

  • メッセージが 最大 値よりも大きい TTL 値を持つアドレスに到達すると、システムはメッセージ TTL を最大値に変更します。
  • メッセージが 最小 値未満の TTL 値を持つアドレスに到達すると、システムはメッセージ TTL を最小値に変更します。

TTL 定義なしで到達するメッセージは、TTL の値が infinity となると見なされます。

messageRedelivery フィールド 、受信側がメッセージの処理に失敗し、システムが再配信のためにメッセージをキューに戻すときに、キューまたはトピックまたはサブスクリプションの動作を制御するために使用されます。デフォルトでは、システムはメッセージを無限に再配信します。ただし、messageRedelivery フィールド 使用すると、再配信を遅延させるか、またはメッセージを デッドレターアドレス にリダイレクトすることで動作を変更できます。

注記

シャード化キューは、メッセージの順序付けを保証しなくなりました。

アドレススペースプランの例では、2 つ のルーターと 2 つのブローカーをデプロイできますが、2 つの Pod を合計でデプロイすることのみが可能です。つまり、アドレス領域は 小規模のキュー プランの 3 つのアドレスに制限されます。

small-anycast 計画はいずれのブローカーリソースも消費せず、ブローカーを作成できる代わりに 2 つのルーターをプロビジョニングすることができます。

apiVersion: admin.enmasse.io/v1beta2
kind: AddressPlan
metadata:
  name: small-anycast
  labels:
    app: enmasse
spec:
  addressType: anycast
  resources:
    router: 0.2

このプランにより、最大 10 個のアドレスを作成できます。

5.5. アドレスプランの作成

手順

  1. サービスの admin としてログインします。

    oc login -u system:admin
  2. AMQ Online がインストールされているプロジェクトを選択します。

    oc project amq-online-infra
  3. アドレスプラン定義を作成します。

    apiVersion: admin.enmasse.io/v1beta2
    kind: AddressPlan
    metadata:
      name: small-anycast
      labels:
        app: enmasse
    spec:
      addressType: anycast
      resources:
        router: 0.2
  4. アドレスプランを作成します。

    oc create -f small-anycast-plan.yaml
  5. スキーマが更新され、プランが含まれていることを確認します。

    oc get addressspaceschema standard -o yaml

5.6. インフラストラクチャーの設定

AMQ Online は、ルーター、ブローカー、コンソールなどのインフラストラクチャーコンポーネントを作成します。これらのコンポーネントは、システムの実行中に設定でき、AMQ Online は新しい設定でコンポーネントを自動的に更新します。AMQ Online サービス Operator は AMQ Online のデフォルトインフラストラクチャー設定を編集したり、新しい設定を作成したりできます。

インフラストラクチャー設定は、1 つ以上のアドレス空間プランから参照することができます。アドレス空間プランについての詳しい情報は、「アドレススペースプラン」を 参照してください。

インフラストラクチャー設定は、BrokeredInfraConfig および StandardInfraConfig リソース を使用して、ブローカー 化されたインフラストラクチャー および 標準 インフラストラクチャーの両方に対して管理できます。

5.6.1. ブローカー化されたインフラストラクチャーの設定

BrokeredInfraConfigリソース は、ブローカー化された アドレス 空間によってデプロイされたインフラストラクチャーを設定するために使用されます。スペースプランは、spec.infraConfigRef フィールド を使用してブローカー化されたインフラストラクチャー設定を参照します。アドレス空間プランについての詳しい情報は、「アドレススペースプラン」を 参照してください。

利用可能なブローカー化されたインフラストラクチャー設定フィールドの詳細については、ブローカー化された インフラストラクチャー設定フィールドの表 を参照してください。

5.6.1.1. ブローカー化されたインフラストラクチャーの設定例

ブローカー化されたインフラストラクチャー設定ファイルの例は、指定できるさまざまな設定を示しています。

apiVersion: admin.enmasse.io/v1beta1
kind: BrokeredInfraConfig
metadata:
  name: brokered-infra-config-example
spec:
  version: "0.34" 1
  admin: 2
    resources:
      memory: 256Mi
    podTemplate:
      metadata:
        labels:
          key: value
  broker: 3
    resources:
      memory: 2Gi
      storage: 100Gi
    addressFullPolicy: PAGE
    globalMaxSize: 256Mb
    podTemplate: 4
      spec:
        priorityClassName: messaging
1
使用される AMQ Online バージョンを指定します。アップグレード時に、AMQ Online はこのフィールドを使用して、インフラストラクチャーを要求したバージョンにアップグレードするかどうかを判断します。省略すると、バージョンは設定を読み込むコントローラーと同じバージョンであると見なされます。
2
admin コンポーネントに設定できる設定を指定します。
3
ブローカー コンポーネントに設定できる設定を指定します。.broker. resources.storage 設定を変更しても、既存のブローカーのストレージ サイズを設定しないことに注意してください。
4
admin および broker コンポーネントの両方について、以下の podTemplate 要素を設定できます。
  • metadata.labels
  • spec.priorityClassName
  • spec.tolerations
  • spec.affinity
  • spec.containers.readinessProbe
  • spec.containers.livenessProbe
  • spec.containers.resources
  • spec.containers.env

    他のすべての podTemplate 要素は無視されます。これらの要素の詳細は、以下の 関連リンク セクションの OpenShift ドキュメントを参照してください。

    readiness プローブのタイムアウトの設定方法に関する詳細は、「ブローカー化された インフラストラクチャー設定の readiness プローブタイミングの上書き 」を参照してください。

使用可能なすべてのインフラストラクチャー設定フィールドの詳細については、ブローカー化された インフラストラクチャー設定フィールドの表 を参照してください。

関連リンク

5.6.1.2. ブローカー化されたインフラストラクチャー設定のプローブタイミングの上書き

ブローカーリソースでプローブのタイミングのデフォルト値を上書きできます。たとえば、ブローカーストレージが利用可能になるまで想定よりも長い時間がかかる場合や、サーバーが遅い場合などにデフォルト値を変更する必要がある場合があります。

以下の例は、ブローカーリソースの readiness プローブの特定のデフォルト値を上書きする方法を示しています。

apiVersion: admin.enmasse.io/v1beta1
kind: BrokeredInfraConfig
metadata:
  name: brokered-infra-config
spec:
  broker:
    ...
    podTemplate:
      spec:
        containers:
          - name: broker 1
            readinessProbe:
              failureThreshold: 6 2
              initialDelaySeconds: 20 3
1
name の値はターゲットコンテナー名に一致する必要があります。ブローカーでは、podTemplate 名は broker になります。
2
Pod の起動時に OpenShift が試行する回数を指定し、Pod が readiness プローブの Unready とマークされるか、liveness プローブ コンテナーを再起動するまでプローブが失敗する回数を指定します。デフォルト値は 3 で、最小値は 1 です。
3
コンテナーが起動してから最初のプローブが実行されるまでの秒数を指定します。

5.6.2. 標準インフラストラクチャーの設定

StandardInfraConfigリソース は、標準 アドレス空間によってデプロイされたインフラストラクチャーを設定するために使用されます。アドレススペースプランは、spec.infraConfigRef フィールド を使用して標準インフラストラクチャー設定を参照します。アドレス空間プランについての詳しい情報は、「アドレススペースプラン」を 参照してください。

利用可能な標準インフラストラクチャー設定フィールドの詳細は、「標準インフラストラクチャー設定フィールドの 」を参照してください。

5.6.2.1. 標準インフラストラクチャー設定の例

以下の標準インフラストラクチャー設定ファイルの例は、指定できるさまざまな設定を示しています。

apiVersion: admin.enmasse.io/v1beta1
kind: StandardInfraConfig
metadata:
  name: myconfig
spec:
  version: "0.34" 1
  admin: 2
    resources:
      memory: 256Mi
  broker: 3
    resources:
      cpu: 0.5
      memory: 2Gi
      storage: 100Gi
    addressFullPolicy: PAGE
  router: 4
    resources:
      cpu: 1
      memory: 256Mi
    linkCapacity: 1000
    minReplicas: 1
    policy:
      maxConnections: 1000
      maxConnectionsPerHost: 1
      maxConnectionsPerUser: 10
      maxSessionsPerConnection: 10
      maxSendersPerConnection: 5
      maxReceiversPerConnection: 5
      maxMessageSize: 1048576
    podTemplate: 5
      spec:
        affinity:
          nodeAffinity:
            preferredDuringSchedulingIgnoredDuringExecution:
            - weight: 1
              preference:
              matchExpressions:
              - key: e2e-az-EastWest
                operator: In
                values:
                - e2e-az-East
                - e2e-az-West
1
使用される AMQ Online バージョンを指定します。アップグレード時に、AMQ Online はこのフィールドを使用して、インフラストラクチャーを要求したバージョンにアップグレードするかどうかを判断します。省略すると、バージョンは設定を読み込むコントローラーと同じバージョンであると見なされます。
2
admin コンポーネントに設定できる設定を指定します。
3
ブローカー コンポーネントに設定できる設定を指定します。. broker.resources.storage 設定を変更しても、既存のブローカーのストレージサイズは設定されません。
4
ルーターコンポーネントに設定できる設定を指定 ます。
5
管理ブローカー およびルーターコンポーネントの 場合、以下の podTemplate 要素を設定できます。
  • metadata.labels
  • spec.priorityClassName
  • spec.tolerations
  • spec.affinity
  • spec.containers.resources
  • spec.containers.readinessProbe
  • spec.containers.livenessProbe
  • spec.containers.env

    他のすべての podTemplate 要素は無視されます。これらの要素の詳細は、以下の 関連リンク セクションの OpenShift ドキュメントを参照してください。

    readiness プローブのタイムアウトの設定方法に関する詳細は、「 標準インフラストラクチャー設定の readiness プローブタイミングの上書き」 を参照してください。

利用可能な標準インフラストラクチャー設定フィールドの詳細は、「標準インフラストラクチャー設定フィールドの 表」 を参照してください。

関連リンク

5.6.2.2. 標準インフラストラクチャー設定のプローブのタイミングの上書き

ブローカーおよびルーターリソースでプローブのタイミングのデフォルト値を上書きできます。たとえば、ブローカーストレージが利用可能になるまで想定よりも長い時間がかかる場合や、サーバーが遅い場合などにデフォルト値を変更する必要がある場合があります。

以下の例は、ブローカーリソースの readiness プローブおよびルーターリソースの liveness プローブの readiness プローブの特定のデフォルト値を上書きする方法を示しています。

apiVersion: admin.enmasse.io/v1beta1
kind: StandardInfraConfig
metadata:
  name: standard-infra-config
spec:
  broker:
    ...
    podTemplate:
      spec:
        containers:
          - name: broker 1
            readinessProbe:
              failureThreshold: 6 2
              initialDelaySeconds: 20 3

  router:
    ...
    podTemplate:
      spec:
        containers:
          - name: router 4
            livenessProbe:
              failureThreshold: 6 5
              initialDelaySeconds: 20 6
1 4
name の値はターゲットコンテナー名に一致する必要があります。たとえば、ブローカーの podTemplate では namebroker であり、ルーター podTemplate の場合は router になり ます。
2 5
Pod の起動時に OpenShift が試行する回数を指定し、Pod が readiness プローブの Unready とマークされるか、liveness プローブ コンテナーを再起動するまでプローブが失敗する回数を指定します。デフォルト値は 3 で、最小値は 1 です。
3 6
コンテナーが起動してから最初のプローブが実行されるまでの秒数を指定します。

5.7. インフラストラクチャー設定の作成および編集

新規のインフラストラクチャー設定を作成するか、または既存インフラストラクチャー設定を編集することができます。詳細は、「インフラストラクチャーの 設定」を参照 してください。

手順

  1. サービス Operator としてログインします。

    oc login -u developer
  2. AMQ Online がインストールされているプロジェクトに切り替えます。

    oc project amq-online-infra
  3. 既存のインフラストラクチャー設定を編集するか、以下の例を使用して新規インフラストラクチャー設定を作成します。

    apiVersion: admin.enmasse.io/v1beta1
    kind: StandardInfraConfig
    metadata:
      name: myconfig
    spec:
      version: "0.34"
      admin:
        resources:
          memory: 256Mi
      broker:
        resources:
          memory: 2Gi
          storage: 100Gi
        addressFullPolicy: PAGE
      router:
        resources:
          memory: 256Mi
        linkCapacity: 1000
        minReplicas: 1
  4. 設定の変更を適用します。

    oc apply -f standard-infra-config-example.yaml
  5. 再起動時に Pod をモニターします。

    oc get pods -w

    設定の変更は数分以内に適用されます。

5.8. 認証サービス

認証サービスは、メッセージングクライアントで利用可能な認証および承認エンドポイントを設定するために使用されます。認証サービスは AMQ Online サービス Operator によって設定され、アドレススペースの作成時に指定されます。

認証サービスはカスタムリソースとして設定されます。認証サービスには type( standardexternal、または none )があります。

5.8.1. 標準の認証サービス

標準 の認証サービスタイプにより、テナント管理者は MessagingUser カスタム リソースを使用してユーザーおよび関連するパーミッションを管理できます。これは、Red Hat Single Sign-On インスタンスを使用して、ユーザー認証情報とアクセスポリシーを格納することで実現されます。一般的なユースケースでは、1 つの 標準 的な認証サービスのみを定義する必要があります。

5.8.1.1. 標準の認証サービスの例

以下の例は、standard タイプの認証サービスを示しています。

apiVersion: admin.enmasse.io/v1beta1
kind: AuthenticationService
metadata:
  name: standard
spec:
  type: standard 1
  standard:
    credentialsSecret: 2
      name: my-admin-credentials
    certificateSecret: 3
      name: my-authservice-certificate
    resources: 4
      requests:
        memory: 2Gi
      limits:
        memory: 2Gi
    storage: 5
      type: persistent-claim
      size: 5Gi
    datasource: 6
      type: postgresql
      host: example.com
      port: 5432
      database: authdb
1
type の有効な値は nonestandard、または external です。
2
(オプション)シークレットには、Red Hat Single Sign-On 管理ユーザーの パスワードの admin. username フィールドと、admin.password フィールドが含まれている必要があります。指定されていない場合は、無作為に生成され、シークレットに保存されます。
3
(OpenShift の場合)カスタム証明書を指定できます。OpenShift では、指定されていない場合、証明書は自動的に作成されます。
4
(オプション)Red Hat Single Sign-On インスタンスのリソース制限を指定できます。
5
(オプション)ストレージタイプは ephemeral または persistent-claim として指定できます。persistent-claim の場合、要求 のサイズも設定する必要があります。デフォルトのタイプは ephemeral です。
6
(オプション)Red Hat Single Sign-On が使用するデータソースを指定します。デフォルトオプションは、組み込み h2 データソースです。実稼働環境の使用には、postgresql データソースが推奨されます。

5.8.1.2. 標準 の認証サービスのデプロイ

標準 の認証サービスを実装するには、これをデプロイします。

手順

  1. サービスの admin としてログインします。

    oc login -u admin
  2. AMQ Online がインストールされているプロジェクトに切り替えます。

    oc project amq-online-infra
  3. AuthenticationService 定義を 作成 します。

    apiVersion: admin.enmasse.io/v1beta1
    kind: AuthenticationService
    metadata:
      name: standard-authservice
    spec:
      type: standard
  4. 認証サービスをデプロイします。

    oc create -f standard-authservice.yaml

5.8.1.3. 高可用性(HA)向けの 標準 的な認証サービスのデプロイ

実稼働デプロイメントの場合、OpenShift の更新時またはノードに障害が発生した場合のダウンタイムを短縮するために、認証サービスは高可用性を確保するために設定する必要があります。標準 の認証サービスを HA モードで実装するには、PostgreSQL データベースをバックエンドとして使用し、これをデプロイします。

前提条件

  • PostgreSQL データベース。

手順

  1. サービスの admin としてログインします。

    oc login -u admin
  2. データベースの認証情報でシークレットを作成します。

    oc create secret generic db-creds -n amq-online-infra --from-literal=database-user=admin --from-literal=database-password=secure-password
  3. AuthenticationService 定義を 作成 します。

    apiVersion: admin.enmasse.io/v1beta1
    kind: AuthenticationService
    metadata:
      name: standard-authservice
    spec:
      type: standard
      standard:
        replicas: 2
        datasource:
          type: postgresql
          host: database.example.com
          port: 5431
          database: auth
          credentialsSecret:
            name: db-creds
  4. 認証サービスをデプロイします。

    oc create -f standard-authservice.yaml -n amq-online-infra

5.8.2. 外部認証サービス

外部 認証サービスを使用して、AMQP SASL ハンドシェイクを使用して認証および承認ポリシーの外部プロバイダーを設定できます。この設定は、既存のアイデンティティー管理システムのブリッジを実装するために使用できます。

ユースケースによっては、外部 認証サービスを複数定義することができます。

5.8.2.1. 外部認証サービスの例

以下の例は、external タイプの認証サービスを示しています。

apiVersion: admin.enmasse.io/v1beta1
kind: AuthenticationService
metadata:
  name: my-external-1
spec:
  type: external
  realm: myrealm 1
  external:
    host: example.com 2
    port: 5671 3
    caCertSecret: 4
      name: my-ca-cert
1
(任意設定): レルム は認証要求に渡されます。指定のない場合は、namespace-addressspace 形式の識別子がレルムとして使用さ れます。
2
外部認証サーバーのホスト名。
3
外部認証サーバーのポート番号。
4
(オプション)認証サーバーへの接続時に信頼する CA 証明書。

外部認証サーバーは、「外部認証サーバー API」で説明されている API を実装する必要があります。

5.8.2.2. オーバーライドを許可する外部認証サービスの例

以下の例は、メッセージングテナントによってホスト名、ポート番号、およびレルムのオーバーライドを許可する external タイプの認証サービスを示しています。

apiVersion: admin.enmasse.io/v1beta1
kind: AuthenticationService
metadata:
  name: my-external-2
spec:
  type: external
  realm: myrealm 1
  external:
    host: example.org 2
    port: 5671 3
    caCertSecret: 4
      name: my-ca-cert
    allowOverride: true 5
1
(任意設定): レルム は認証要求に渡されます。指定のない場合は、namespace-addressspace 形式の識別子がレルムとして使用さ れます。
2
外部認証サーバーのホスト名。
3
外部認証サーバーのポート番号。
4
(オプション)認証サーバーへの接続時に信頼する CA 証明書。
5
(オプション)ホスト名、ポート番号、レルム、CA 証明書にアドレス空間のオーバーライドが許可されるかどうかを指定します。有効な値は true または false です。指定されていない場合、デフォルト値は false です。

外部認証サーバーは、「外部認証サーバー API」で説明されている API を実装する必要があります。

5.8.2.3. 外部認証サーバー API

外部認証サーバーは AMQP SASL ハンドシェイクを実装し、クライアントの接続プロパティーを読み取り、認証および承認情報が含まれる予想される接続プロパティーで応答する必要があります。認証サーバーは、新しい接続がメッセージングエンドポイントに確立されるたびに、ルーターやブローカーなどのアドレス空間コンポーネントによってクエリーされます。

5.8.2.3.1. 認証

クライアントの要求されたアイデンティティーは SASL ハンドシェイクユーザー名から読み込むことができ ます。その後、この実装でユーザーを認証できます。

認証アイデンティティーは、以下のキー/値を使用して authenticated-identity マップで返されます。この例では JSON を使用しますが、コネクションプロパティーで AMQP マップとして設定する必要があります。

{
    "authenticated-identity": {
        "sub": "myid",
        "preferred_username": "myuser"
    }
}
5.8.2.3.2. 承認

承認は、ADDRESS-AUTHZ 接続 機能を使用してクライアントが要求できる機能です。接続が設定されている場合、サーバーは提供された機能でこの機能に対応し、承認情報を接続プロパティーに追加します。

承認情報は、アドレスをそのアドレスで許可される操作の一覧に関連付けるマップ内に保存されます。以下の接続プロパティー情報には、アドレス myqueue および mytopic のポリシーが含まれ ます

{
    "address-authz": {
        "myqueue": [
          "send",
          "recv"
        ],
        "mytopic": [
          "send"
        ]
    }
}

許可される操作は次のとおりです。

  • send: ユーザーはアドレスに送信できます。
  • recv: ユーザーはアドレスから受信できます。

5.8.3. 認証サービスなし

none 認証サービスタイプでは、任意のユーザー名とパスワードを使用するクライアントは任意のアドレスにメッセージを送受信できます。

注記

実稼働環境では、none 認証サービスを使用することは推奨されません。これは、内部テストや開発環境など、非実稼働環境での使用のみを目的としています。

5.8.3.1. 認証サービス なし のデプロイ

認証サービス なし を実装するには、そのサービスをデプロイします。

手順

  1. サービスの admin としてログインします。

    oc login -u admin
  2. AMQ Online がインストールされているプロジェクトに切り替えます。

    oc project amq-online-infra
  3. AuthenticationService 定義を 作成 します。

    apiVersion: admin.enmasse.io/v1beta1
    kind: AuthenticationService
    metadata:
      name: none-authservice
    spec:
      type: none
  4. 認証サービスをデプロイします。

    oc create -f none-authservice.yaml

5.9. AMQ Online のロールの例

AMQ Online には、直接使用できる以下のロールのサンプルが提供され、これをモデルとして使用して独自のロールを作成できます。

サービス管理者のリソースに関する詳細は、AMQ Online サービスの管理者リソースの表 を参照してください。

メッセージングテナントリソースに関する詳細は、「 AMQ Online メッセージングテナントリソースの表」を参照して ください。

表5.1 AMQ Online のロールテーブルの例

ロール説明

enmasse.io:tenant-view

アドレス、アドレス 空間、アドレススペーススキーマ、および messagingusers の get および list パーミッション 指定します

enmasse.io:tenant-edit

creategetupdatedeletelist、specify アドレス、アドレス 空間、および messagingusers の監視 および パッチパーミッション。アドレススペーススキーマget および list パーミッションです

service-admin クラスターロール

creategetupdatedeletelist、specify addressplans、addressspaceplans brokeredinfraconfigs、standardinfraconfigs および authenticationservices監視 および パッチパーミッション

第6章 AMQ Online の監視

AMQ Online は、ビルトイン監視ツールをデプロイするか、または既存の監視インフラストラクチャーを使用して監視できます。

6.1. OpenShift 4.7 でのモニタリングの有効化

既存のモニタリングスタックを使用して OpenShift 4.7 で AMQ Online を監視するには、user-workload モニタリングを 有効 にする必要があります。

6.2. (オプション)Application Monitoring Operator のデプロイ

AMQ Online を監視するには、モニタリングのカスタムリソース定義で機能する Operator をデプロイする必要があります。このような Operator が OpenShift クラスターにインストールされている場合は、この手順を省略できます。

手順

  1. cluster-admin 権限を持つユーザーとしてログインします。

    oc login -u system:admin
  2. (オプション)enmasse -monitoring 以外の namespace にデプロイする場合は、以下のコマンドを実行し、後続の手順で enmasse -monitoring を置き換える必要があります。

    sed -i 's/enmasse-monitoring/my-namespace/' install/components/monitoring-operator/amq-online/*.yaml
  3. enmasse-monitoring namespace を作成します。

    oc new-project enmasse-monitoring
  4. monitoring-operator リソースをデプロイします。

    oc apply -f install/components/monitoring-operator
  5. monitoring-operator コンポーネントをデプロイします。

    oc apply -f install/components/monitoring-deployment

6.3. (オプション)kube-state-metrics エージェントのデプロイ

kube-state-metrics エージェントを使用して AMQ Online Pod を監視できます。

手順

  1. cluster-admin 権限を持つユーザーとしてログインします。

    oc login -u system:admin
  2. amq-online-infra プロジェクトを選択します。

    oc project amq-online-infra
  3. kube-state-metrics コンポーネントをデプロイします。

    oc apply -f install/components/kube-state-metrics

6.4. モニタリングの有効化

デフォルトのインストール設定を使用しない場合、監視を最も簡単にデプロイすることは、enmasse -operator デプロイメントでモニタリング環境変数を有効化することです。

前提条件

手順

  1. amq-online-infra 名前空間にラベルを付けます。

    oc label namespace amq-online-infra monitoring-key=middleware
  2. Operator でモニタリングを有効にします。

    oc set env deployment -n amq-online-infra enmasse-operator ENABLE_MONITORING=true

6.5. アラート通知の設定

メールなどのアラート通知を設定するには、Alertmanager のデフォルト設定を変更する必要があります。

前提条件

  • Alertmanager ドキュメント に従って、Alertmanager 設定ファイルを作成します。メール通知の設定ファイルの例を以下に示します。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      labels:
        app: enmasse
      name: alertmanager-config
    data:
      alertmanager.yml: |
        global:
          resolve_timeout: 5m
          smtp_smarthost: localhost
          smtp_from: alerts@localhost
          smtp_auth_username: admin
          smtp_auth_password: password
        route:
          group_by: ['alertname']
          group_wait: 60s
          group_interval: 60s
          repeat_interval: 1h
          receiver: 'sysadmins'
        receivers:
        - name: 'sysadmins'
          email_configs:
          - to: sysadmin@localhost
        inhibit_rules:
          - source_match:
              severity: 'critical'
            target_match:
              severity: 'warning'
            equal: ['alertname']
  • Alertmanager 設定ファイルには、Prometheus Operator で読み取りできるように alertmanager.yaml という名前を指定する必要があります。

手順

  1. デフォルト設定が含まれるシークレットを削除します。

    oc delete secret alertmanager-application-monitoring
  2. 新しい設定が含まれるシークレットを作成します。

    oc create secret generic alertmanager-application-monitoring --from-file=alertmanager.yaml

6.6. メトリクスおよびルール

6.6.1. 共通メトリクス

以下のコンポーネントは、これらの共通メトリクスをエクスポートします。

  • enmasse-operator
  • address-space-controller
  • standard-controller

    enmasse_version
    タイプ
    バージョン
    説明
    バージョンラベルを使用して、AMQ Online の各コンポーネントの現行バージョンを提供します。メトリクスは常に 1 の値を返します。
enmasse_version{job="address-space-controller",version="1.0.1"} 1
enmasse_version{job="enmsse-operator",version="1.0.1"} 1
enmasse_version{job="standard-controller",version="1.0.1"} 1

6.6.2. アドレス空間コントローラーメトリクス

AMQ Online では、address-space-controller の以下のメトリクスを使用できます。

6.6.2.1. サマリー

タイプ enmasse_address_ space_status_ready タイプのすべてのメトリクスについて、enmasse_ address_space_status_not_ready タイプの対応するメトリクスがあります。各値は同じにすることはできません。

以下に例を示します。

enmasse_address_space_status_ready{name="my-address-space"} 1
enmasse_address_space_status_not_ready{name="my-address-space"} 0

アドレス空間の合計数は、ready 状態のすべてのアドレス空間の合計と、not ready 状態のすべてのアドレス空間の合計と等しくなります。

enmasse_address_spaces_total == (sum(enmasse_address_space_status_ready) + sum(enmasse_address_space_status_not_ready))
enmasse_address_space_status_ready
タイプ
ブール値
説明
準備 状態にある各アドレス空間を示します。
enmasse_address_space_status_ready{name="prod-space"} 1
enmasse_address_space_status_ready{name="dev-space"} 0
enmasse_address_space_status_not_ready
タイプ
ブール値
説明
準備ができていない 各アドレス空間を示します。
enmasse_address_space_status_not_ready{name="prod-space"} 0
enmasse_address_space_status_not_ready{name="dev-space"} 1
enmasse_address_spaces_total
タイプ
ゲージ
説明
完成 した 状態 であるかに関係なく、アドレス空間の合計数を返します。
enmasse_address_spaces_total 1
enmasse_address_space_connectors_total
タイプ
ゲージ
説明
各アドレス空間にあるアドレス空間コネクターの合計数を返します。
enmasse_address_space_connectors_total{name="space-one"} 0
enmasse_address_space_connectors_total{name="space-two"} 2

6.6.3. 標準のコントローラーおよびエージェントメトリクス

以下の standard-controller およびエージェントメトリクスは AMQ Online のブローカー化されたアドレス空間でのみ利用できます。

6.6.3.1. サマリー

アドレスの合計数は、ready 状態のアドレスの合計数と not ready 状態のアドレスの合計数と等しくなります。

enmasse_addresses_total == enmasse_addresses_ready_total + enmasse_addresses_not_ready_total

アドレスの合計数は、すべてのフェーズにおけるアドレスの合計数と等しくなります。

enmasse_addresses_total == enmasse_addresses_active_total + enmasse_addresses_configuring_total + enmasse_addresses_failed_total + enmasse_addresses_pending_total + enmasse_addresses_terminating_total
enmasse_addresses_total
説明
状態に関係なく、アドレス空間ごとのアドレスの合計数を提供します。
タイプ
ゲージ
enmasse_addresses_total{addressspace="space-one"} 5
enmasse_addresses_total{addressspace="space-two"} 3
enmasse_addresses_ready_total
タイプ
ゲージ
説明
準備状態にあるアドレスの合計数を提供します。
enmasse_addresses_ready_total{addressspace="space-one"} 3
enmasse_addresses_ready_total{addressspace="space-two"} 2
enmasse_addresses_not_ready_total
タイプ
ゲージ
説明
準備ができていない状態のアドレスの合計数を提供します。
enmasse_addresses_not_ready_total{addressspace="space-one"} 2
enmasse_addresses_not_ready_total{addressspace="space-two"} 1
enmasse_addresses_active_total
タイプ
ゲージ
説明
アクティブなフェーズに存在するアドレスの合計数を提供します。
enmasse_addresses_active_total{addressspace="space-one"} 2
enmasse_addresses_configuring_total
タイプ
ゲージ
説明
設定フェーズの現在アドレスの合計数を提供します。
enmasse_addresses_configuring_total{addressspace="space-one"} 2
enmasse_addresses_failed_total
タイプ
ゲージ
説明
障害が発生したフェーズに現在存在するアドレスの合計数を提供します。
enmasse_addresses_failed_total{addressspace="space-one"} 2
enmasse_addresses_pending_total
タイプ
ゲージ
説明
保留中のフェーズに存在するアドレスの合計数を提供します。
enmasse_addresses_pending_total{addressspace="space-one"} 2
enmasse_addresses_terminating_total
タイプ
ゲージ
説明
終了フェーズに存在するアドレスの合計数を提供します。
enmasse_addresses_terminating_total{addressspace="space-one"} 2
enmasse_standard_controller_loop_duration_seconds
タイプ
ゲージ
説明
最新の標準のコントローラー調整ループの実行時間(秒単位)を提供します。
enmasse_standard_controller_loop_duration_seconds 0.33
enmasse_standard_controller_router_check_failures_total
タイプ
カウンター
説明
調整ループ時のルーターチェックの失敗の合計数を指定します。
enmasse_standard_controller_router_check_failures_total{addressspace="firstspace"}	0
enmasse_standard_controller_router_check_failures_total{addressspace="myspace"} 0
enmasse_addresses_forwarders_ready_total
タイプ
ゲージ
説明
準備状態のアドレスフォワーダーの合計数を提供します。
enmasse_addresses_forwarders_ready_total{addressspace="myspace"} 2
enmasse_addresses_forwarders_not_ready_total
タイプ
ゲージ
説明
準備ができていない状態でアドレスフォワーダーの合計数を提供します。
enmasse_addresses_forwarders_not_ready_total{addressspace="myspace"} 0
enmasse_addresses_forwarders_total
タイプ
ゲージ
説明
準備状態であるかどうかに関わらず、アドレスフォワーダーの合計数を提供します。
enmasse_addresses_forwarders_total{addressspace="myspace"} 2
enmasse_address_canary_health_failures_total
タイプ
ゲージ
説明
アドレスへのメッセージの送受信に失敗したため、ヘルスチェックの失敗の合計数。
enmasse_address_canary_health_failures_total{addressspace="myspace"} 2
enmasse_address_canary_health_check_failures_total
タイプ
ゲージ
説明
コントローラーエラーが原因で失敗したヘルスチェックの実行試行の合計数。
enmasse_address_canary_health_check_failures_total{addressspace="myspace"} 1

6.6.4. ルール

このセクションでは、AMQ Online で PrometheusRule CRD を使用してインストールされた Prometheus ルールの詳細を説明します。AMQ Online では、2 種類の Prometheus ルールを利用できます。

  • レコード - 新しい時系列として保存される事前計算式。
  • alert: true として評価される際にアラートをトリガーする式。

6.6.4.1. レコード

レコードは、事前に計算された式が新しい時系列として保存される Prometheus ルールのタイプです。AMQ Online では、以下のレコードを利用できます。

enmasse_address_spaces_ready_total
説明
準備状態にある アドレスの合計数を提供する単一のゲージタイプメトリクスで enmasse_address_space_status_ready を集約します。
expression
sum by(service, exported_namespace) (enmasse_address_space_status_ready)
enmasse_address_spaces_ready_total{exported_namespace="prod_namespace",service="address-space-controller"} 1
enmasse_address_spaces_not_ready_total
説明
準備が できていない状態にあるアドレスの合計数を提供する単一のゲージタイプメトリクスで enmasse_address_space_ not_status_ready を集約します。
expression
sum by(service, exported_namespace) (enmasse_address_space_status_not_ready)
enmasse_address_spaces_not_ready_total{exported_namespace="prod_namespace",service="address-space-controller"} 1
enmasse_component_health
説明
address-space-controller および api- server には、それらが稼働しているかを示すブール値スタイルのメトリクスを提供します。
expression
up{job="address-space-controller"} or on(namespace) (1 - absent(up{job="address-space-controller"}))
up{job="api-server"} or on(namespace) (1 - absent(up{job="api-server"}))
enmasse_component_health{job="address-space-controller"}	1
enmasse_component_health{job="api-server"}	1

6.6.4.2. アラート

アラートは、true と評価される際にアラートをトリガーする式である Prometheus ルールのタイプです。AMQ Online では以下のアラートを利用できます。

ComponentHealth
説明
コンポーネントの状態が正常ではない場合にトリガー。
expression
component_health == 0
AddressSpaceHealth
説明
1 つ以上のアドレス空間が ready 状態にない場合にトリガー。
expression
enmasse_address_spaces_not_ready_total > 0
AddressHealth
説明
1 つ以上のアドレスが 準備 状態にない場合にトリガー。
enmasse_addresses_not_ready_total > 0

6.7. テナントメトリクスの有効化

ブローカーおよびルーターからのメトリクスは、system-admin メトリクスを公開せずにテナントに公開できます。テナントメトリクスを公開するには、amq-online-infra namespace でサービスモニターを作成します。これは、懸念されるアドレス領域の namespace です。

前提条件

  • Prometheus Operator によって提供される servicemonitor カスタムリソース定義がインストールされている必要があります。
  • テナントには、独自のモニタリングスタックがインストールされている必要があります。

手順

  • monitoring-key: enmasse-tenants および amq-online- infra のラベルを namespace セレクターとして一致するよう設定されたセレクターで servicemonitor リソースを作成します。サービスモニターの例を以下に示します。

    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      name: enmasse-tenants
      labels:
        app: enmasse
    spec:
      selector:
        matchLabels:
          monitoring-key: enmasse-tenants
      endpoints:
      - port: health
      namespaceSelector:
        matchNames:
          - amq-online-infra
  • テナントのモニタリングスタックに、サービスモニターの namespace のサービスモニターの読み取りパーミッションがあることを確認しますが、amq-online-infra には service-admin メトリクスも公開しないためです。

6.8. qdstat の使用

qdstat を使用し AMQ Online サービスを監視できます。

6.8.1. qdstat を使用したルーター接続の表示

qdstat を使用してルーター接続を表示でき ます

手順

  1. コマンドラインで以下のコマンドを実行し、以下の手順で必要な podname の を取得します。

    oc get pods
  2. コマンドラインで、以下のコマンドを実行します。

    oc exec -n namespace -it qdrouterd-podname -- qdstat -b 127.0.0.1:7777 -c
    
    Connections
      id   host                 container                             role    dir  security                              authentication                tenant
      =========================================================================================================================================================
      3    172.17.0.9:34998     admin-78794c68c8-9jdd6                normal  in   TLSv1.2(ECDHE-RSA-AES128-GCM-SHA256)  CN=admin,O=io.enmasse(x.509)
      12   172.30.188.174:5671  27803a14-42d2-6148-9491-a6c1e69e875a  normal  out  TLSv1.2(ECDHE-RSA-AES128-GCM-SHA256)  x.509
      567  127.0.0.1:43546      b240c652-82df-48dd-b54e-3b8bbaef16c6  normal  in   no-security                           PLAIN

6.8.2. qdstat を使用したルーターアドレスの表示

qdstat を使用してルーターアドレスを表示でき ます

手順

  1. コマンドラインで以下のコマンドを実行し、以下の手順で必要な podname の を取得します。

    oc get pods
  2. 次のコマンドを実行します。

    oc exec -n namespace -it qdrouterd-podname -- qdstat -b 127.0.0.1:7777 -a
    
    Router Addresses
      class     addr                   phs  distrib       in-proc  local  remote  cntnr  in     out    thru  to-proc  from-proc
      ===========================================================================================================================
      local     $_management_internal       closest       1        0      0       0      0      0      0     588      588
      link-in   $lwt                        linkBalanced  0        0      0       0      0      0      0     0        0
      link-out  $lwt                        linkBalanced  0        0      0       0      0      0      0     0        0
      mobile    $management            0    closest       1        0      0       0      601    0      0     601      0
      local     $management                 closest       1        0      0       0      2,925  0      0     2,925    0
      local     qdhello                     flood         1        0      0       0      0      0      0     0        5,856
      local     qdrouter                    flood         1        0      0       0      0      0      0     0        0
      topo      qdrouter                    flood         1        0      0       0      0      0      0     0        196
      local     qdrouter.ma                 multicast     1        0      0       0      0      0      0     0        0
      topo      qdrouter.ma                 multicast     1        0      0       0      0      0      0     0        0
      local     temp.VTXOKyyWsq7OEei        balanced      0        1      0       0      0      0      0     0        0
      local     temp.k2RGQNPe6sDMvz4        balanced      0        1      0       0      0      3,511  0     0        3,511
      local     temp.xg+y8I_Tr4Y94LA        balanced      0        1      0       0      0      5      0     0        5

第7章 AMQ Online の操作手順

7.1. セキュリティー修正を取得するためのコンポーネントの再起動

CVE のイメージ更新を取得するには、AMQ Online コンポーネントを再起動する必要があります。スクリプトは、script フォルダー内の AMQ Online インストールファイルで提供されます。すべてのコンポーネントを再起動するには、すべてのスクリプトを実行します。

7.1.1. Operator の再起動

メッセージングシステムに影響を与えずに Operator を再起動できます。

手順

  • restart-operators.sh スクリプトを実行します。

    ./scripts/restart-operators.sh amq-online-infra

7.1.2. 認証サービスの再起動

認証サービスの再起動は、新しいメッセージング接続に一時的に影響します。既存の接続は、認証サービスが再起動されても引き続き機能します。

手順

  • restart-authservices.sh スクリプトを実行します。

    ./scripts/restart-authservices.sh amq-online-infra

7.1.3. ルーターの再起動

メッセージングルーターは、標準 のアドレス空間タイプにのみデプロイされます。このスクリプトは、ルーターのレプリカが少なくとも 2 つあること、およびローリング再起動を実行することを前提としています。ルーターを再起動する接続するメッセージングクライアントは切断され、別のルーターによって処理されるように再接続する必要があります。

手順

  • restart-routers.sh スクリプトを実行します。この場合、最低でも 1 つのルーターが利用できる必要があります。

    ./scripts/restart-routers.sh amq-online-infra 1

7.1.4. ブローカーの再起動

ブローカーでアドレス 領域 タイプの場合、ブローカーを再起動すると、ブローカーの再起動時に、メッセージングクライアントにダウンタイムが一時的になります。標準 のアドレス空間タイプの場合、メッセージングクライアントはメッセージングルーターから切断されていませんが、クライアントは再起動したメッセージの再起動に保管されたメッセージを消費できません。

手順

  • restart-brokers.sh スクリプトを実行します。

    ./scripts/restart-brokers.sh amq-online-infra

7.2. ルーターログの表示

標準 のアドレススペースタイプの場合、ルーターログを表示して、メッセージの送信および受信にクライアントが接続されていない問題のトラブルシューティングを行うことができます。

手順

  1. すべてのルーター Pod を一覧表示し、関連するアドレス空間の Pod を選択します。

    oc get pods -l name=qdrouterd -o go-template --template '{{range .items}}{{.metadata.name}}{{"\t"}}{{.metadata.annotations.addressSpace}}{{"\n"}}{{end}}'
  2. Pod のログを表示します。

    oc logs pod -c router

7.3. ブローカーログの表示

ブローカー化されたアドレス領域タイプのブローカー または 標準 アドレス領域タイプの場合、ブローカーログを表示して、メッセージの送信および受信にクライアントが接続されていない問題のトラブルシューティングを行うことができます。

手順

  1. すべてのブローカー Pod を一覧表示し、関連するアドレス空間の Pod を選択します。

    oc get pods -l role=broker -o go-template --template '{{range .items}}{{.metadata.name}}{{"\t"}}{{.metadata.annotations.addressSpace}}{{"\n"}}{{end}}'
  2. Pod のログを表示します。

    oc logs pod

7.4. ルーターの AMQP プロトコルトレースの有効化

診断の目的で、ルーターの AMQP プロトコルトレースを有効にできます。これは、クライアントの接続に関連する問題のトラブルシューティングやメッセージの送受信に関する問題のトラブルシューティングに役立ちます。ルーターに対してプロトコルトレースを有効にする方法は 2 つあります。

  • qdmange コマンドを使用して、1 つのルーターのプロトコルトレースを動的に有効または無効 できます。この方法では、ルーターを再起動する必要がなくなります。この設定は、次回ルーターの再起動時に失われます。
  • または、standardinfraconfig を使用して、すべてのアドレス空間のすべてのルーターのプロトコルトレースを 有効 にする standardinfraconfig に適用でき ます。この方法では、すべてのルーターが再起動します。
警告

プロトコルトレースを有効にすると、ルーターの CPU オーバーヘッドが増え、メッセージングのパフォーマンスが低下する可能性があります。また、ログ保持システムに関連するディスク容量要件を増やすこともできます。したがって、できるだけ短期にプロトコルトレースを有効にすることが推奨されます。

7.4.1. 単一ルーターのプロトコルトレースを動的に有効化

手順

  1. サービス Operator としてログインします。

    oc login -u developer
  2. AMQ Online がインストールされているプロジェクトに切り替えます。

    oc project amq-online-infra
  3. すべてのルーター Pod を一覧表示し、関連するアドレス空間の Pod を選択します。

    oc get pods -l name=qdrouterd -o go-template --template '{{range .items}}{{.metadata.name}}{{"\t"}}{{.metadata.annotations.addressSpace}}{{"\n"}}{{end}}'
  4. 単一ルーターのプロトコルトレースを有効にします。

    echo '{"enable":"trace+"}' | oc exec qdrouterd-podname --stdin=true --tty=false -- qdmanage update -b 127.0.0.1:7777 --type=log --name=log/PROTOCOL --stdin
  5. プロトコルトレースが含まれる Pod のログを表示します。

    oc logs pod
  6. プロトコルトレースを無効にします。

    echo '{"enable":"info"}' | oc exec qdrouterd-podname --stdin=true --tty=false -- qdmanage update -b 127.0.0.1:7777 --type=log --name=log/PROTOCOL --stdin

7.4.2. StandardInfraConfig 環境 変数を使用したプロトコルトレースの有効化

手順

  1. サービス Operator としてログインします。

    oc login -u developer
  2. AMQ Online がインストールされているプロジェクトに切り替えます。

    oc project amq-online-infra
  3. 懸念される アドレス 空間のアドレス名を決定します。

    oc get addressspace -n namespace address-space-name --output 'jsonpath={.spec.plan}{"\n"}'
  4. addressspaceplan 名 standardinfraconfig 名を判別 ます。

    oc get addressspaceplan address-space-plan --output 'jsonpath={.spec.infraConfigRef}{"\n"}'
  5. standardinfraconfig を使用して、すべてのアドレス空間のすべてのルーターに対してプロトコルトレースを有効に ます。

    oc patch standardinfraconfig standardinfraconfig-name --type=merge -p '{"spec":{"router":{"podTemplate":{"spec":{"containers":[{"env":[{"name":"PN_TRACE_FRM","value":"true"}],"name":"router"}]}}}}}'
  6. プロトコルトレースが含まれる Pod のログを表示します。

    oc logs pod
  7. プロトコルトレースを無効にします。

    oc patch standardinfraconfig standardinfraconfig-name --type=merge -p '{"spec":{"router":{"podTemplate":{"spec":{"containers":[{"env":[{"name":"PN_TRACE_FRM"}],"name":"router"}]}}}}}'

7.5. ブローカーの AMQP プロトコルトレースの有効化

診断の目的で、ブローカーの AMQP プロトコルトレースを有効にできます。これは、メッセージの送受信に関する問題のトラブルシューティングに役立ちます。

プロトコルトレースを有効にするには、設定を standardinfraconfig 標準アドレス空間の場合)または brokeredinfraconfig に適用し、その設定を使用してすべての アドレス 空間のすべてのブローカーに対してプロトコルトレースを有効にします。この設定を適用すると、ブローカーが再起動します。

警告

プロトコルトレースを有効にするとブローカーの CPU のオーバーヘッドが増え、メッセージングのパフォーマンスが低下する可能性があります。また、ログ保持システムに関連するディスク容量要件を増やすこともできます。したがって、できるだけ短期にプロトコルトレースを有効にすることが推奨されます。

手順

  1. サービス Operator としてログインします。

    oc login -u developer
  2. AMQ Online がインストールされているプロジェクトに切り替えます。

    oc project amq-online-infra
  3. 懸念される アドレス 空間のアドレス名を決定します。

    oc get addressspace -n namespace address-space-name --output 'jsonpath={.spec.plan}{"\n"}'
  4. addressspaceplan 名 standardinfraconfig または brokeredinfraconfig 名を判別 ます。

    oc get addressspaceplan address-space-plan --output 'jsonpath={.spec.infraConfigRef}{"\n"}'
  5. standardinfraconfig または brokeredinfraconfig を使用して、すべてのアドレス空間のすべてのブローカーに対してプロトコルトレースを有効にし ます

    oc patch infraconfig-resource infraconfig-name --type=merge -p '{"spec":{"broker":{"podTemplate":{"spec":{"containers":[{"env":[{"name":"PN_TRACE_FRM","value":"true"}],"name":"broker"}]}}}}}'
  6. プロトコルトレースが含まれる Pod のログを表示します。

    oc logs pod
  7. プロトコルトレースを無効にします。

    oc patch infraconfig-resource infraconfig-name --type=merge -p '{"spec":{"broker":{"podTemplate":{"spec":{"containers":[{"env":[{"name":"PN_TRACE_FRM"}],"name":"broker"}]}}}}}'

7.6. AMQ Broker 管理インターフェースを使用したブローカーの状態の検証

問題がアドレス空間に関連付けられたブローカーと疑われる場合は、組み込み 管理インターフェース を使用してブローカーの状態を直接検証できます。AMQ Online は、(Jolokia を介して)AMQ Broker の CLI と JMX を公開します。AMQ Broker Console を公開しません。

手順

  1. サービスの admin としてログインします。

    oc login -u admin
  2. AMQ Online がインストールされているプロジェクトに切り替えます。

    oc project amq-online-infra
  3. アドレス空間の uuid を取得します。

    oc get addressspace myspace -o jsonpath='{.metadata.annotations.enmasse\.io/infra-uuid}'
  4. アドレス空間のブローカーサポートクレデンシャル(ユーザー名およびパスワード)を取得します。

    oc get secret broker-support-uuid  --template='{{.data.username}}' | base64 --decode
    oc get secret broker-support-uuid  --template='{{.data.password}}' | base64 --decode
  5. ブローカー Pod 名を特定します。

    oc get pods -l infraUuid=uuid,role=broker

    標準アドレスには多くのブローカーが含まれる場合があります。特定のキューをホストするブローカーを特定するには、以下のコマンドを使用します。

    oc get address address-resource-name  -o jsonpath="{.status.brokerStatuses[*].containerId}"
  6. ブローカーの Pod でサポートコマンドを実行します。

    AMQ Broker CLI コマンドを実行するには、以下のようなコマンドを使用します。

    oc exec broker-pod-name -- /opt/amq/bin/artemis address show --user username --password password

    AMQ Broker Jolokia JMX コマンドを実行するには、以下のようなコマンドを使用します。

    oc exec broker-pod-name -- curl --silent --insecure --user username:_password_ -H "Origin: https://localhost:8161" 'https://localhost:8161/console/jolokia/read/org.apache.activemq.artemis:broker="broker pod name"/AddressMemoryUsage'
    重要

    URL 内のブローカー Pod 名を二重引用符で囲む必要があります。上記のコマンドにあるように、URL 全体を囲む一重引用符を使用してコマンドシェルから保護するようにしてください。存在しない場合には、承認の失敗を受け取ります。

7.7. ランタイム時のブローカーのロギングレベルの変更

診断の目的で、ランタイム時にブローカーのロギングレベルを変更できます。これは、メッセージの送受信に関する問題のトラブルシューティングに役立ちます。

これを実行するには、oc rsh コマンドを使用してブローカー Pod に接続し、ブローカーによって使用される logging.properties ファイルを調整します。ブローカーはこのファイルを自動的に再読み込みし、確立されたメッセージング接続を中断せずに変更を即座に適用します。

logging.properties への変更は一時的なものです。システムは、次回ブローカー Pod の再起動時にロギングレベルをデフォルトレベルに戻します。

警告

ログの詳細レベルを増やすと、ブローカーの CPU オーバーヘッドが増え、メッセージングのパフォーマンスが低下する可能性があります。また、ログ保持システムに関連するディスク領域の要件も増大する可能性があります。したがって、可能な限り早期にログの詳細レベルを上げることが推奨されます。

手順

  1. サービス Operator としてログインします。

    oc login -u developer
  2. AMQ Online がインストールされているプロジェクトに切り替えます。

    oc project amq-online-infra
  3. すべてのブローカー Pod を一覧表示し、関連するアドレス空間の Pod を選択します。

    oc get pods -l role=broker -o go-template --template '{{range .items}}{{.metadata.name}}{{"\t"}}{{.metadata.annotations.addressSpace}}{{"\n"}}{{end}}'
  4. 単一ブローカーのロギングレベルを変更するには、oc rsh コマンドを使用してブローカー Pod に接続し、logging.properties ファイルを編集します。ブローカーは JBoss Logging フレームワークを使用します。関連するエリアに対応するパッケージのロギングレベルを調整します。このファイルには、ガイドするコメントがあります。

    oc rsh pod
    cp /var/run/artemis/split-1/broker/etc/logging.properties /tmp/logging.properties
    vi /var/run/artemis/split-1/broker/etc/logging.properties
    exit
  5. プロトコルトレースが含まれる Pod のログを表示します。

    oc logs pod
  6. 通常のロギングレベルに戻すには、logging.properties ファイルの内容を元に戻します。

    oc rsh pod
    cp /tmp/logging.properties /var/run/artemis/split-1/broker/etc/logging.properties
    exit

第8章 AMQ Online 設定サイジングのガイドライン

以下の情報は、AMQ Online インストールのサイズに関するガイドラインを提供します。具体的には、これらのガイドラインはユースケースに基づくコンポーネントおよびプランに特定の設定の推奨事項と、設定の調整時に関係するトレードオフを提供します。AMQ Online のサイジングには、以下の設定が必要です。

  • ブローカー
  • ルーター(標準アドレス領域のみ)
  • Operator
  • プラン

たとえば、各アドレス空間タイプには、アドレスプランの作成時に考慮する必要のある特定の機能があります。

アドレス空間のタイプおよびそのセマンティクスについての詳細は、「 アドレス空間」を参照してください

注記

AMQ Online コンポーネントのサイズを適切に調整するには、OpenShift クラスターについて以下のポイントを考慮する必要があります。

  • OpenShift クラスターには、要求されたリソースを処理するのに十分な容量が必要です。OpenShift ノードが 4 GB のメモリーに設定されている場合、メモリーサイズが 4 GB を超えるブローカーおよびルーターを設定することはできません。
  • 各アドレス空間は専用のインフラストラクチャーで構成されるので、アドレススペースの数が増えると、クラスターの容量が需要を満たすようにする必要があります。
  • アフィニティーと容認(Toleration)を使用すると、メッセージングインフラストラクチャーで使用できるノードも制限される可能性があります。

8.1. ブローカーコンポーネントのサイズ

ブローカーは、アドレス空間のタイプ 応じて BrokeredInfraConfig および StandardInfraConfig リソース を使用して設定されます。ブローカーのサイジングについては、以下を考慮してください。

  • 平均メッセージサイズ
  • 保存されたメッセージの数
  • キューおよびトピックの数
  • アドレス完全ポリシー
注記

AMQ Online では、ブローカーに割り当てられるメモリーの合計量だけを制限できます。各アドレスで使用されるメモリーの量を制限することはできません。

ブローカーは、すべてのメッセージをディスクに永続化します。BLOCKFAIL、または DROP アドレス full ポリシーを指定すると、永続化できるメッセージの数はブローカーのメモリー量に制限されます。PAGE アドレス full ポリシーを使用すると、メモリーにより多くのメッセージを保存できるため、ディスクからのデータの読み取りからパフォーマンスが低下する可能性があります。したがって、ページングは、大きなメッセージや、システムにあるメッセージの大きなバックログ時に便利です。

8.1.1. ブローカーコンポーネント設定のユースケース例

キューごとに保存される最大 1000 個のキューがあり、平均メッセージサイズが 128 kB の 10 個のキューがある場合、メッセージの保存に必要なストレージ容量は以下のようになります。

10 queues * 1000 messages * (128 + (128 kB * 1024)) = 1.25 GB

また、ブローカーには約 50 MB のストレージフットプリントが固定されています。

ブローカーに必要なメモリーの量は、指定されるアドレスの詳細ポリシーによって異なります。PAGE ポリシーを使用すると、メッセージがジャーナルとは別に保存されるため(常にメモリーに合致する必要がある)、メモリー要件を減らすことができます。FAILBLOCK、または DROP ポリシーを指定すると、永続化されている場合でも、すべてのメッセージがメモリーにも保持される必要があります。

また、ブローカーの実行と JVM の実行に関連する定数メモリーコストもあります。メッセージを保存することのできるメモリーは、ブローカー設定にあるメモリーセットから自動的に派生され、JVM メモリーの半分に設定されます。これにより、システムメモリーの半分に設定されます(コンテナーに割り当てられているメモリー)。

注記

標準 のアドレス空間タイプでは、複数のブローカーインスタンスが作成される可能性があります。これらのブローカーインスタンスのサイジングは、アドレスプラン設定や、別のブローカーを起動する前に各ブローカーが処理できることが予想されるアドレス数により異なります。

8.1.1.1. ページングのないブローカーコンポーネント設定の例

PAGE ポリシーを使用しないブローカー設定については、アドレスごとに 5 パーセントブック管理のオーバーヘッドを考慮する必要があります(1.05* 1.25 = 1.35 GB)。

apiVersion: admin.enmasse.io/v1beta1
kind: BrokeredInfraConfig
metadata:
  name: cfg1
spec:
  broker:
    addressFullPolicy: FAIL
    globalMaxSize: 1.35Gb
    resources:
      memory: 8Gi
      storage: 2Gi
  ...

8.1.1.2. ページングを使用したブローカーコンポーネント設定の例

ページングを有効にすると、元の式を変更して、メッセージへの参照のみに対応でき、メモリーに 1000 インフライトメッセージを保持することもできます。

(1000 messages * 1000 * 128 kB) + (10 queues * 128 kB * 1024) = 123.5 MB

そのため、以下の設定例にあるように、ブローカーに指定されたメモリーの量を減らすことができます。

apiVersion: admin.enmasse.io/v1beta1
kind: BrokeredInfraConfig
metadata:
  name: cfg1
spec:
  broker:
    addressFullPolicy: PAGE
    globalMaxSize: 124Mb
    resources:
      memory: 1Gi
      storage: 2Gi
  ...

8.1.2. ブローカーのスケーリング(標準アドレス領域のみ)

ブローカーは、タイプ キュー または トピック のアドレスが作成されると、オンデマンドでデプロイされます。デプロイされるブローカーの数は、AddressSpacePlan 設定 で指定したリソース制限によって制限されます。以下の AddressSpacePlan 設定 例は、アドレス空間ごとに 4 つのブローカーの制限を指定します。

apiVersion: admin.enmasse.io/v1beta2
kind: AddressSpacePlan
metadata:
  name: cfg1
spec:
  resourceLimits:
    broker: 4.0
  ...

容量の観点では、制限に基づいてブローカーのメモリー要件に乗算されます。

ブローカーインスタンスの数は、異なるアドレスに使用される AddressPlan に基づいて指定される最大限度の間 動的にスケーリングされます。AddressPlan は、アドレスで必要となるブローカーの一部を 指定 します。プランで指定した分数には、このプランを参照するアドレスの数で乗算され、その後に必要なブローカーレプリカ数を生成するために丸められます。

AddressPlan 設定の例

apiVersion: admin.enmasse.io/v1beta2
kind: AddressPlan
metadata:
  name: plan1
spec:
  ...
  resources:
    broker: 0.01

address プランに plan1 を使用して 110 アドレスを作成する場合、ブローカーレプリカの数は ceil (110 アドレス * 0.01 broker)= 2 つのレプリカ になります。

ブローカーの合計数は、アドレス空間のリソース制限で制限されます。

8.2. ルーターコンポーネントのサイジング

ルーターは StandardInfraConfig リソース で設定されます。ルーターのサイズを決定するには、以下を考慮してください。

  • アドレス数
  • 接続およびリンクの数
  • リンク容量

ルーターは状態が永続化されないため、永続ストレージは必要ありません。

アドレス設定自体は、大量のルーターメモリーを必要としません。ただし、キューとサブスクリプションには、ルーターとブローカーごとの 2 つのリンクが必要です。

リンクの合計数は、キュー/サブスクリプションの数とクライアントリンクの数の 2 倍になります。それぞれのリンクには、そのリンクのルーティングメッセージを処理するためにルーターにメタデータとバッファーが必要です。

ルーターリンクの容量は、ルーターがリンクごとに処理できるメッセージ数に影響を与えます。リンク容量を高い値を設定すると、パフォーマンスが向上しますが、送信側がリンクを埋める場合に、インフライトメッセージを保持するために使用される可能性が高くなります。接続とリンクが多数ある場合は、メモリー使用量のバランスを取るために小さい値を指定することを検討してください。

さらに、ルーターはメッセージヘッダーを解析し、メッセージの分散や設定管理、およびその他のリンクごとのアクティビティーを管理する必要があります。リンクごとのコストは、リンク容量とメッセージサイズの定数係数を使用して派生できます。この係数はメッセージのサイズによって異なります。以下の表は、異なるメッセージサイズ範囲のこの係数を示しています。

表8.1 リンク多重要素

メッセージサイズ(バイト)係数

20-1000

18,000

1000-4000

22,000

4000-10,000

30,000

>10,000

50,000

8.2.1. ルーターコンポーネントのサイズの使用例

以下のユースケース例を見てみましょう。

  • 500 anycast および 1000 のキューアドレス
  • 10,000 接続済みクライアント(クライアントごとに 1 つのリンク)
  • リンク容量 10
  • 512 バイトの平均メッセージサイズ

測定に基づいて、anycast アドレスごとの推定 7 kB オーバーヘッドは現実的ため、以下のようになります。

500 anycast addresses * 7 kB overhead per address = 3.5 MB

キューとトピックのメモリー使用量は、アドレスごとに予測される 32 kB オーバーヘッドのどのキャストアドレスよりも若干高くなります。さらに、各 router-broker リンクでは、追跡する容量が最大で linkCapacity メッセージ配信を行うことが可能です。また、最悪のシナリオに対応するために、多重化係数と共にリンク容量を乗算する必要があります。

(1000 queued addresses * 32,768) + (2000 * 18,000 link multiplication factor * 100 links) = 374 MB

クライアント接続/リンクのメモリー使用量:

10,000 clients * 10 link capacity * 18,000 link multiplication factor = 1717 MB
注記

クライアント接続/リンクのメモリー使用量は、ルーターインスタンスの数で分割することができます。

N ルーターがある場合、この設定に必要なルーターメモリーの合計容量が 50 MB の場合は、50 + 3.5 +(374 + 1717)/N MB になります。

接続とリンクの最大数を超えないようにするには、ルーターポリシーも適用することができます。以下の設定例は、ルーターポリシーが指定された 2 つのルーターを示しています。

apiVersion: admin.enmasse.io/v1beta1
kind: StandardInfraConfig
metadata:
  name: cfg1
spec:
  router:
    resources:
      memory: 1100Mi
    linkCapacity: 10
    policy:
      maxConnections: 5000
      maxSessionsPerConnection: 1
      maxSendersPerConnection: 1
      maxReceiversPerConnection: 1
  ...

8.2.2. 高可用性(HA)

高可用性(HA)のルーターを設定するには、予想されるメモリー使用量を算出するためにルーターごとのメモリー量で必要なルーターレプリカの最小数を乗算します。すべての接続およびリンクがすべてのルーターに分散されますが、1 つのルーターに 1 つのルーターに分かれる場合、それらの接続とリンクが残りのルーターで再配布されるように計画する必要があります。

8.2.3. ルーターのスケーリング

ルーターは、StandardInfraConfig リソースminReplicas に指定された制限内のオンデマンドで、さらに AddressSpacePlan で指定される resourceLimits .router に動的にスケーリングされ ます。ルーター数を最大 4 に制限しますが、HA 目的で最小で 2 つのルーターを必要とするには、以下の設定が必要です。

apiVersion: admin.enmasse.io/v1beta1
kind: StandardInfraConfig
metadata:
  name: cfg1
spec:
  router:
    minReplicas: 2
  ...
---
apiVersion: admin.enmasse.io/v1beta2
kind: AddressSpacePlan
metadata:
  name: plan1
spec:
  infraConfigRef: cfg1
  resourceLimits:
    router: 4
  ...

容量の観点では、ルーターのメモリー要件をリソース制限で乗算します。次に、ルーターはアドレス領域 AddressSpacePlan に指定されたリソース制限にスケールアップします。

ルーターレプリカの数は、異なるアドレスに使用される AddressPlan に基づいて、最小および最大の制限の間で動的にスケーリング れます。AddressPlan は、アドレスで必要となるルーターの数を 記述 します。プランで定義された分数には、このプランを参照するアドレスの数を増やして乗算され、必要なルーターレプリカ数を生成するために丸められます。

AddressPlan 設定の例:

apiVersion: admin.enmasse.io/v1beta2
kind: AddressPlan
metadata:
  name: plan1
spec:
  ...
  resources:
    router: 0.01

address プランに plan1 を使用して 110 アドレスを作成する場合、ルーターレプリカの数は ceil (110 アドレス * 0.01 router)= 2 つのレプリカ になります。

レプリカの数がアドレス空間の制限を超える場合、アドレスは最大回数を超えた状態が Pending 状態に留まり、その問題に関するエラーメッセージが Address status セクションに表示されます。

8.3. Operator コンポーネントのサイジング

Operator コンポーネントは、すべてのアドレス設定を読み取り、これらの設定をルーターおよびブローカーに適用してタスク化されます。Operator コンポーネントのサイズをアドレス数に比例することが重要です。

標準 のアドレス空間では、管理者 Pod には agentstandard-controller の 2 つのプロセスが含まれます。これらのプロセスを個別にサイズにすることはできませんが、両方のメモリー使用量はアドレスの数に比例します。ブローカー化され アドレス領域には、単一の エージェント プロセスのみが存在します。

注記

Operator プロセスは JVM または Node.JS 仮想マシンのいずれかで実行されている。アドレス設定に必要なメモリー容量の 2 倍に、これらのプロセスのメモリーの量をサイジングすることを推奨します。

8.3.1. Operator コンポーネント設定の例

それぞれのアドレスは約 20 kB オーバーヘッドを Operator プロセスに追加します。1500 アドレスは、追加の 1500 * 20 kB = 30 MB が Operator プロセスに必要です。

また、これらのプロセスには 256 MB のベースメモリー要件があります。そのため、必要な Operator メモリーの合計は 256 MB + 30 MB = 286 MB です。この値は、StandardInfraConfig および BrokeredInfraConfig リソースの 両方 で設定 でき ます。

apiVersion: admin.enmasse.io/v1beta1
kind: StandardInfraConfig
metadata:
  name: cfg1
spec:
  admin:
    resources:
      memory: 300Mi
  ...

8.4. プランのサイジング

プランは、ブローカーおよびルーターのサイズについてのセクションで説明されているように、標準 のアドレス空間で動的なスケーリングを有効にします。クラスターレベルでは、プランとインフラストラクチャー設定の組み合わせにより、クラスターにデプロイできる Pod の最大数が決まります。AMQ Online は作成可能なアドレス空間の数の制限をサポートしないため、アドレススペース作成を許可するユーザーを制限するためにポリシーを適用するのがベストプラクティスです。このようなポリシー設定は、標準の OpenShift ポリシーで処理できます。

capacity-planning パースペクティブから、Pod の最大数および特定のアドレス空間に使用できるメモリーの最大量を計算すると便利です。スクリプトを使用してこの計算を行うには、「 check-memory calculation スクリプトの実行 」を参照してください。

8.4.1. check-memory 計算スクリプトの実行

このスクリプトを使用して、Pod の最大数および特定のアドレス空間に使用できるメモリーの最大量を算出することができます。

このスクリプトでは、メモリーの指定は Mi 単位で指定しますが、ストレージは Gi ユニットを使用して指定されることが想定されます。また、すべての 3 つのコンポーネント( adminrouter、および broker )には、スクリプトが意図した通りに機能するように制限を指定する必要があります。

手順

  1. 以下のスクリプトを check-memory.sh として保存します。

    #!/usr/bin/env bash
    PLAN=$1
    
    total_pods=0
    total_memory_mb=0
    total_storage_gb=0
    
    routers=$(oc get addressspaceplan $PLAN -o jsonpath='{.spec.resourceLimits.router}')
    brokers=$(oc get addressspaceplan $PLAN -o jsonpath='{.spec.resourceLimits.broker}')
    infra=$(oc get addressspaceplan $PLAN -o jsonpath='{.spec.infraConfigRef}')
    
    operator_memory=$(oc get standardinfraconfig $infra -o jsonpath='{.spec.admin.resources.memory}')
    broker_memory=$(oc get standardinfraconfig $infra -o jsonpath='{.spec.broker.resources.memory}')
    broker_storage=$(oc get standardinfraconfig $infra -o jsonpath='{.spec.broker.resources.storage}')
    router_memory=$(oc get standardinfraconfig $infra -o jsonpath='{.spec.router.resources.memory}')
    
    total_pods=$((routers + brokers + 1))
    total_memory_mb=$(( (routers * ${router_memory%Mi}) + (brokers * ${broker_memory%Mi}) + ${operator_memory%Mi}))
    total_storage_gb=$(( brokers * ${broker_storage%Gi}))
    
    echo "Pods: ${total_pods}. Memory: ${total_memory_mb} MB. Storage: ${total_storage_gb} GB"
  2. 以下のコマンドを使用してスクリプトを実行します。

    bash check-memory.sh standard-small

    すべてのコンポーネントに、仮定ユニットで定義された制限がある場合、スクリプトはこのプランを使用してアドレス空間の合計リソース制限を出力します。以下に例を示します。

    Pods: 3. Memory: 1280 MB. Storage: 2 GB

8.5. アドレスのサイズ

アドレスブローカーごとのメモリー制限は、アドレスプラン設定から計算されます。AMQ Online は、アドレスプランのブローカーリソース制限でブローカー設定 globalMaxSize(standardinfraconfig または brokeredinfraconfig で 指定 される を掛けて、各キューで許可される最大サイズを決定します。キューがメモリー制限に到達すると、アドレスのフルポリシーで制御される動作です。アドレスの詳細ポリシーについては、「 Broker コンポーネントのサイズ」を参照してください

たとえば、ブローカーの設定で globalMaxSize = 124 MB を指定し、アドレスプラン設定が addressplan .spec.resources.broker = 0.2 が指定されている場合、各キューの最大許容サイズは 25 MB(124 * 0.2 = 25 MB)になります。

第9章 AMQ Online リソース設定について

9.1. AMQ Online でのアドレス領域およびアドレスの概念

AMQ Online のリソースの設定を開始する前に、まず AMQ Online のアドレス空間とアドレスの概念を理解する必要があります。

9.1.1. アドレス空間

アドレス空間は、1 つの接続(プロトコル別)経由でアクセス可能なアドレスのグループです。つまり、アドレス領域のエンドポイントに接続するクライアントは、そのアドレス空間内の承認されたアドレスからメッセージを送受信できます。アドレス空間は、アドレス空間のタイプで定義されている複数のプロトコルをサポートできます。

注記

既存のアドレス空間のエンドポイントを変更することはできません。

AMQ Online には、2 種類のアドレス空間があります。

9.1.2. アドレス

アドレスはアドレス空間の一部で、メッセージの送受信先を表します。アドレスには型があり、このアドレスからメッセージを送受信するセマンティクスを定義します。

AMQ Online で利用可能なアドレスのタイプは、アドレス領域のタイプによって異なります。

9.2. サービス設定リソースおよび定義

サービス管理者は、「service 設定」を構成するカスタムリソースを作成して AMQ Online を設定します。 このサービス設定には、以下のカスタムリソースタイプのインスタンスが含まれます。

カスタムリソースタイプ説明

AuthenticationService

メッセージングクライアントの認証に使用される認証サービスインスタンスを指定します。

AddressSpacePlan

利用可能なアドレスプランや使用可能なルーターおよびブローカーリソースの量など、このプランを使用してアドレス空間で利用可能なメッセージングリソースを指定します。

AddressPlan

アドレスが複数のアドレスに指定できるルーターやブローカーの一部など、このプランを使用して特定のアドレスで使用されるメッセージングリソースを指定します。

StandardInfraConfig

標準 のアドレス空間タイプの場合、メモリー制限、ストレージ容量、アフィニティーなど、ルーターおよびブローカー設定を指定します。

BrokeredInfraConfig

ブローカー化された アドレス 領域タイプの場合、メモリー制限、ストレージ容量、アフィニティーなどのブローカー設定を指定します。

これらのカスタムリソースの作成時に、これらのカスタムリソースはメッセージングテナントで利用可能な設定を定義します。

以下の図は、異なるサービス設定リソースと、メッセージングテナントリソースがどのように参照されるかの関係を示しています。

AMQ Online entities

9.3. AMQ Online の設定のユースケース例

特定のユースケースに対応するためにサービス設定リソースを定義する方法を説明するために、AMQ Online を使用するための Company X の要件について概説します。このユースケースは、サービス設定のリソースタイプについて詳しく説明している以下のドキュメント全体で参照できます。

会社 X には以下の要件があります。

  • 複数のチームに対応できる機能(例: エンジニアリングおよび品質保証)作業チーム。これは、メッセージングを個別に使用するチームです。この要件を満たすには、複数のアドレス空間が必要です。
  • Company X のアプリケーションは JMS API を使用して書かれ、ローカルトランザクションが広範囲に使用され、AMQP および OpenWire クライアントの混同を使用するため、ブローカーのアドレス空間タイプを使用する必要があります。
  • エンジニアリングの仕事には、メッセージングインフラストラクチャーがメッセージごとに約 1 KB 以上のメッセージのストレージをサポートしないように制限し、最大 10 個のキューとトピックが必要です。

    QA が機能するには、メッセージングインフラストラクチャーが約 100 KB のメッセージがないストレージに対応するように制限し、最大 50 のキューとトピックが必要です。

  • エンジニアリング作業の場合、アドレス空間に接続できるユーザーを制限する必要があります。
  • エンジニアリングチームは、エンジニアリングチームが個別に認証する必要がある個別のユーザーを作成する必要はありません。

    QA 作業では、QA チームが各インスタンスのユーザーを作成できる必要があります。

これらの各要件およびそれらを満たす方法は、以下のセクションで適切なリソースを設定することについて詳しく説明します。

9.3.1. メッセージングインフラストラクチャーの制限

company X には、AMQ Online の使用に以下の要件があります。

  • エンジニアリングの仕事には、メッセージングインフラストラクチャーがメッセージごとに約 1 KB 以上のメッセージのストレージをサポートしないように制限し、最大 10 個のキューとトピックが必要です。

    QA が機能するには、メッセージングインフラストラクチャーが約 100 KB のメッセージがないストレージに対応するように制限し、最大 50 のキューとトピックが必要です。

この要件を満たすには、BrokeredInfraConfig リソースを設定する 必要 があります。以下の方法を考慮する必要があります。

  • ブローカーのメモリーサイズを計算します: 要件を満たし、エンジニアリング作業用に比較的小さなメモリーサイズを指定するだけで十分ですが、QA 作業にはより多くのメモリーが必要になります。ブローカーサイジングのガイドラインについての詳細は、「 Broker コンポーネントのサイズ」を参照して ください。
  • ブローカーの最小ストレージの容量を計算します。ブローカーサイジングのガイドラインについての詳細は、「 Broker コンポーネントのサイズ」を参照して ください。

9.3.1.1. ブローカー化されたインフラストラクチャー設定の例

以下のブローカー化されたインフラストラクチャー設定の例は、Company X の要件を満たす broker コンポーネントリソース値を示しています。

エンジニアリングのブローカー化されたインフラストラクチャー設定の例

apiVersion: admin.enmasse.io/v1beta1
kind: BrokeredInfraConfig
metadata:
  name: engineering
spec:
  broker:
    resources:
      memory: 512Mi
      storage: 20Mi

QA のブローカー化されたインフラストラクチャー設定の例

apiVersion: admin.enmasse.io/v1beta1
kind: BrokeredInfraConfig
metadata:
  name: qa
spec:
  broker:
    resources:
      memory: 4Gi
      storage: 50Gi

9.3.2. アドレス空間の接続を制限する機能

会社 X には、AMQ Online の使用には以下の要件があります。エンジニアリング作業の場合、アドレススペースに接続できるユーザーを制限できます。

この要件を満たすには、ブローカー化されたインフラストラクチャー設定でネットワークポリシーを設定する必要があります。ネットワークポリシーについての詳細は、を参照してください。

ネットワークポリシー設定を示すブローカー化されたインフラストラクチャー設定の例

apiVersion: admin.enmasse.io/v1beta1
kind: BrokeredInfraConfig
metadata:
  name: engineering
spec:
  networkPolicy:
    ingress:
      - from:
        - namespaceSelector:
            matchLabels:
              org: engineering
  broker:
    resources:
      memory: 512Mi
      storage: 20Mi

さらに、アドレス空間プランは以前の BrokeredInfraConfig カスタムリソースを 参照 します。

アドレス空間プランの例

apiVersion: admin.enmasse.io/v1beta2
kind: AddressSpacePlan
metadata:
  name: engineering
spec:
  infraConfigRef: engineering
  addressSpaceType: brokered
  addressPlans:
  - brokered-queue
  - brokered-topic

9.3.3. 認証サービスリソースの例

会社 X には、AMQ Online の使用に関する以下の要件があります。エンジニアリングの作業の場合、エンジニアリングチームは個別に認証する必要がある個別のユーザーを作成する必要はありません。この要件を満たすには、認証サービス なし を指定します。

認証サービスの例なし

apiVersion: admin.enmasse.io/v1beta1
kind: AuthenticationService
metadata:
  name: engineering
spec:
  type: none

QA 作業では、QA チームが各インスタンスのユーザーを作成できる必要があります。また、QA にはユーザーの永続化に使用するデータベースがあります。この要件を満たすには、標準 の認証サービスを使用し、データソースを指定する必要があります。

標準の認証サービスの例

apiVersion: admin.enmasse.io/v1beta1
kind: AuthenticationService
metadata:
  name: qa
spec:
  type: standard
  standard:
    storage:
      type: persistent-claim
      size: 5Gi
    datasource:
      type: postgresql
      host: db.example.com
      port: 5432
      database: authdb

付録A サービス管理者の AMQ Online リソース

以下の表は、サービス管理者ロールに関連する AMQ Online リソースについて説明しています。

表A.1 AMQ Online Service administrator resources table

resource説明

addressplans

アドレスプランを指定します。

addressspaceplans

アドレス空間プランを指定します。

addressspaceschemas

addresspace で利用可能なサービスの特性を定義し ます。アドレススペースは 1 つ のアドレススペースを参照 ます。標準およびブローカー は事前 定義されたアドレス スペース です。

brokeredinfraconfigs

ブローカー化されたアドレス空間のインフラストラクチャー設定を指定します。詳細は、「ブローカー化された インフラストラクチャー設定フィールドの表 」を参照してください。

standardinfraconfigs

標準アドレス空間のインフラストラクチャー設定を指定します。詳細は、「 標準インフラストラクチャー設定フィールドの表 」を参照してください。

付録B ブローカー化されたインフラストラクチャー設定フィールド

この表には、ブローカー化されたインフラストラクチャー設定で利用可能なフィールドと簡単な説明が記載されています。

表B.1 ブローカー化されたインフラストラクチャー設定フィールドテーブル

フィールド

説明

version

使用される AMQ Online バージョンを指定します。アップグレード時に、AMQ Online はこのフィールドを使用して、インフラストラクチャーを要求したバージョンにアップグレードするかどうかを判断します。

admin.resources.memory

admin Pod に割り当てられるメモリーの量を指定します。

admin.podTemplate.metadata.labels

admin Pod に追加されるラベルを指定します。

admin.podTemplate.spec.affinity

admin Pod のアフィニティー設定を指定して、Pod が実行される特定のノードの場所を指定したり、他のインスタンスと共に実行できない場合などを指定できます。

admin.podTemplate.spec.priorityClassName

OpenShift クラスターの他の Pod に対して管理 Pod の優先順位を優先できるように、管理 Pod に使用する優先順位クラスを指定します。

admin.podTemplate.spec.tolerations

admin Pod の容認設定を指定します。これにより、この Pod は他の Pod を実行できない特定のノードで実行できるようになります。

broker.addressFullPolicy

キューがいっぱいになると実行するアクションを指定します( BLOCKFAILPAGEDROP )。デフォルト値は PAGE です。詳細は、AMQ Broker のドキュメント を参照してください。

broker.globalMaxSize

ブローカーのキューに使用されるメモリーの最大量を指定します。

broker.resources.memory

ブローカーに割り当てられるメモリーの量を指定します。

broker.resources.storage

ブローカーに要求されるストレージの容量を指定します。

broker.podTemplate.metadata.labels

ブローカー Pod に追加されるラベルを指定します。

broker.podTemplate.spec.affinity

Pod が実行される特定のノードの場所を指定するようにブローカー Pod のアフィニティー設定を指定します。または、他のインスタンスと共に実行できない場合、またはこれが他のインスタンスと共に実行できない場合を指定できます。

broker.podTemplate.spec.priorityClassName

OpenShift クラスターの他の Pod に対してブローカー Pod の優先順位付けを可能にするために、ブローカー Pod に使用する優先順位クラスを指定します。

broker.podTemplate.spec.tolerations

ブローカー Pod の容認設定を指定します。これにより、この Pod は他の Pod を実行できない特定のノードで実行できるようになります。

broker.podTemplate.spec.securityContext

ブローカー Pod の セキュリティーコンテキスト を指定します。

broker.podTemplate.spec.containers.env

ブローカー Pod の環境変数を指定します。

broker.podTemplate.spec.containers.livenessProbe.failureThreshold

OpenShift がブローカー Pod の起動時に試みる回数を指定し、コンテナーを再起動する前にプローブが失敗する回数を指定します。

broker.podTemplate.spec.containers.livenessProbe.initialDelaySeconds

ブローカー Pod のプローブ遅延値を秒単位で指定します。

broker.podTemplate.spec.containers.livenessProbe.timeoutSeconds

ブローカー Pod のプローブタイムアウト値を秒単位で指定します。

broker.podTemplate.spec.containers.readinessProbe.failureThreshold

ブローカー Pod の起動時に OpenShift が試行する回数を指定し、Pod に Unready のマークが付けられる前にプローブが失敗する回数を指定し ます

broker.podTemplate.spec.containers.readinessProbe.initialDelaySeconds

ブローカー Pod のプローブ遅延値を秒単位で指定します。

broker.podTemplate.spec.containers.readinessProbe.timeoutSeconds

ブローカー Pod のプローブタイムアウト値を秒単位で指定します。

broker.podTemplate.spec.containers.resources

CPU およびメモリーのブローカー Pod リソース要求および制限を指定します。

broker.storageClassName

ブローカーの永続ボリュームに使用するストレージクラスを指定します。

broker.updatePersistentVolumeClaim

永続ボリュームがサイズ変更をサポートする場合、この値を true に設定すると、ブローカーストレージのサイズを変更できます。

付録C 標準のインフラストラクチャー設定フィールド

以下の表には、標準インフラストラクチャー設定で利用可能なフィールドと簡単な説明が記載されています。

表C.1 標準のインフラストラクチャー設定フィールドテーブル

フィールド

説明

version

使用される AMQ Online バージョンを指定します。アップグレード時に、AMQ Online はこのフィールドを使用して、インフラストラクチャーを要求したバージョンにアップグレードするかどうかを判断します。

admin.resources.memory

admin Pod に割り当てられるメモリーの量を指定します。

admin.podTemplate.metadata.labels

admin Pod に追加されるラベルを指定します。

admin.podTemplate.spec.affinity

admin Pod のアフィニティー設定を指定して、Pod が実行される特定のノードの場所を指定したり、他のインスタンスと共に実行できない場合などを指定できます。

admin.podTemplate.spec.priorityClassName

OpenShift クラスターの他の Pod に対して管理 Pod の優先順位を優先できるように、管理 Pod に使用する優先順位クラスを指定します。

admin.podTemplate.spec.tolerations

admin Pod の容認設定を指定します。これにより、この Pod は他の Pod を実行できない特定のノードで実行できるようになります。

broker.addressFullPolicy

キューがいっぱいになると実行するアクションを指定します( BLOCKFAILPAGEDROP )。デフォルト値は PAGE です。詳細は、AMQ Broker のドキュメント を参照してください。

broker.globalMaxSize

ブローカーのキューに使用されるメモリーの最大量を指定します。

broker.resources.memory

ブローカーに割り当てられるメモリーの量を指定します。

broker.resources.storage

ブローカーに要求されるストレージの容量を指定します。

broker.podTemplate.metadata.labels

ブローカー Pod に追加されるラベルを指定します。

broker.podTemplate.spec.affinity

Pod が実行される特定のノードの場所を指定するようにブローカー Pod のアフィニティー設定を指定します。または、他のインスタンスと共に実行できない場合、またはこれが他のインスタンスと共に実行できない場合を指定できます。

broker.podTemplate.spec.priorityClassName

OpenShift クラスターの他の Pod に対してブローカー Pod の優先順位付けを可能にするために、ブローカー Pod に使用する優先順位クラスを指定します。

broker.podTemplate.spec.tolerations

ブローカー Pod の容認設定を指定します。これにより、この Pod が他の Pod を実行できない特定のノードで実行できるようになります。

broker.podTemplate.spec.securityContext

ブローカー Pod の セキュリティーコンテキスト を指定します。

broker.podTemplate.spec.containers.env

ブローカー Pod の環境変数を指定します。

broker.podTemplate.spec.containers.livenessProbe.failureThreshold

OpenShift がブローカー Pod の起動時に試みる回数を指定し、コンテナーを再起動する前にプローブが失敗する回数を指定します。

broker.podTemplate.spec.containers.livenessProbe.initialDelaySeconds

ブローカー Pod のプローブ遅延値を秒単位で指定します。

broker.podTemplate.spec.containers.livenessProbe.timeoutSeconds

ブローカー Pod のプローブタイムアウト値を秒単位で指定します。

broker.podTemplate.spec.containers.readinessProbe.failureThreshold

ブローカー Pod の起動時に OpenShift が試行する回数を指定し、Pod に Unready のマークが付けられる前にプローブが失敗する回数を指定し ます

broker.podTemplate.spec.containers.readinessProbe.initialDelaySeconds

ブローカー Pod のプローブ遅延値を秒単位で指定します。

broker.podTemplate.spec.containers.readinessProbe.timeoutSeconds

ブローカー Pod のプローブタイムアウト値を秒単位で指定します。

broker.podTemplate.spec.containers.resources

CPU およびメモリーのブローカー Pod リソース要求および制限を指定します。

broker.connectorIdleTimeout

ルーターへの接続に使用する AMQP のアイドルタイムアウトを指定します。

broker.connectorWorkerThreads

ルーターへの接続のワーカースレッドの数を指定します。

broker.storageClassName

ブローカーの永続ボリュームに使用するストレージクラスを指定します。

broker.updatePersistentVolumeClaim

永続ボリュームがサイズ変更をサポートする場合、この値を true に設定すると、ブローカーストレージのサイズを変更できます。

broker.treatRejectAsUnmodifiedDeliveryFailed

拒否された配信結果が変更失敗として対処します。これにより、メッセージはデフォルトでコンシューマーに再表示されます。デフォルト値は true です。

broker.useModifiedForTransientDeliveryErrors

送信側を再試行するための一時的な配信エラーについて変更された応答。デフォルト値は true です。

broker.minLargeMessageSize

大きなメッセージとして処理されるメッセージの最小サイズを指定します。大きなメッセージは、ジャーナルの参照で常にディスクにページングされます。デフォルト値は -1 です(未ページ)。

router.resources.memory

ルーターに割り当てられるメモリーの量を指定します。

router.linkCapacity

ルーターの AMQP リンクで発行されたデフォルトのクレジット数を指定します。

router.handshakeTimeout

セキュアなハンドシェイクの開始を待つ時間(秒単位)を指定します。

router.minReplicas

実行するルーター Pod の最小数を指定します。高可用性(HA)設定には 2 つ以上必要です。

router.podTemplate.metadata.labels

ルーター Pod に追加されるラベルを指定します。

router.podTemplate.spec.affinity

ルーター Pod のアフィニティー設定を指定します。これにより、Pod が実行される特定のノードの場所を指定できます。または、他のインスタンスと共に実行できない場合は、ルーター Pod のアフィニティー設定を指定します。

router.podTemplate.spec.priorityClassName

ルーター Pod に使用する優先順位クラスを指定します。これにより、OpenShift クラスターの他の Pod に対してルーター Pod の優先順位付けが可能になります。

router.podTemplate.spec.tolerations

ルーター Pod の容認設定を指定します。これにより、この Pod が他の Pod を実行できない特定のノードで実行できるようになります。

broker.podTemplate.spec.securityContext

ルーター Pod の セキュリティーコンテキスト を指定します。

router.podTemplate.spec.containers.env

ルーター Pod の環境変数を指定します。

router.podTemplate.spec.containers.livenessProbe.failureThreshold

OpenShift がルーター Pod の起動時に試行し、プローブがコンテナーを再起動する前に失敗する回数を指定します。

router.podTemplate.spec.containers.livenessProbe.initialDelaySeconds

ルーター Pod のプローブ遅延値を秒単位で指定します。

router.podTemplate.spec.containers.livenessProbe.timeoutSeconds

ルーター Pod のプローブタイムアウト値を秒単位で指定します。

router.podTemplate.spec.containers.readinessProbe.failureThreshold

ルーター Pod の起動時に OpenShift が試行する回数を指定し、プローブに Unready のマークが付け られます

router.podTemplate.spec.containers.readinessProbe.initialDelaySeconds

ルーター Pod のプローブ遅延値を秒単位で指定します。

router.podTemplate.spec.containers.readinessProbe.timeoutSeconds

ルーター Pod のプローブタイムアウト値を秒単位で指定します。

router.podTemplate.spec.containers.resources

CPU およびメモリーのルーター Pod リソース要求および制限を指定します。

router.idleTimeout

すべてのルーターリスナーに使う AMQP のアイドルタイムアウトを指定します。

router.workerThreads

ルーターに使用するワーカースレッドの数を指定します。

router.policy.maxConnections

許可されるルーター接続の最大数を指定します。

router.policy.maxConnectionsPerUser

ユーザーごとに許容されるルーター接続の最大数を指定します。

router.policy.maxConnectionsPerHost

ホストごとに許容されるルーター接続の最大数を指定します。

router.policy.maxSessionsPerConnection

ルーター接続ごとに許容されるセッションの最大数を指定します。

router.policy.maxSendersPerConnection

ルーター接続ごとに許容される送信側の最大数を指定します。

router.policy.maxReceiversPerConnection

ルーター接続ごとに許可されるレシーバーの最大数を指定します。

router.policy.maxMessageSize

AMQP メッセージ転送の最大サイズをバイト単位で指定します。この制限は、クライアント接続との間で転送します。ゼロを設定すると、この制限が無効になります。

globalDLQ

true に設定すると、システムはフォールバックグローバルデッドレターアドレス: !GLOBAL_DLQ を確立します。デフォルトは false です。このアドレスからメッセージを削除し、ブローカーが満杯にならないようにするには、消費するアプリケーションを !!GLOBAL_DLQ アドレスに接続します。

付録D REST API リファレンス

D.1. EnMasse REST API

D.1.1. 概要

これは EnMasse API 仕様です。

D.1.1.1. バージョン情報

バージョン : 0.34-SNAPSHOT

D.1.1.2. URI スキーム

スキーム : HTTPS

D.1.1.3. tags

  • アドレス: アドレス上の操作。
  • Addressplans : AddressPlans での操作。
  • Addressspaceplans : AddressSpacePlans の操作。
  • Addressspaces : AddressSpaces の Operate
  • brokeredinfraconfigs : BrokeredInfraConfigs での操作。
  • Messagingusers: MessagingUsers での操作。
  • standardinfraconfigs : StandardInfraConfigs で操作。

D.1.1.4. 外部ドキュメント

説明 : EnMasse
URL に関する詳細を検索します: https://enmasse.io/documentation/

D.1.2. パス

D.1.2.1. POST /apis/admin.enmasse.io/v1beta2/namespaces/{namespace}/addressspaceplans

D.1.2.1.1. 説明

AddressSpacePlan の作成

D.1.2.1.2. パラメーター
タイプ名前説明スキーマ

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

本文

body
required

 

io.enmasse.admin.v1beta2.AddressSpacePlan

D.1.2.1.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.admin.v1beta2.AddressSpacePlan

201

作成済み

io.enmasse.admin.v1beta2.AddressSpacePlan

401

承認権限

コンテンツなし

D.1.2.1.4. 消費
  • application/json
D.1.2.1.5. 生成
  • application/json
D.1.2.1.6. tags
  • 住所空間
  • Admin
  • enmasse_v1beta2

D.1.2.2. GET /apis/admin.enmasse.io/v1beta2/namespaces/{namespace}/addressspaceplans

D.1.2.2.1. 説明

AddressSpacePlan の種類オブジェクトを一覧表示します。

D.1.2.2.2. パラメーター
タイプ名前説明スキーマ

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

クエリー

labelSelector
optional

返されたオブジェクトの一覧をラベルで制限するセレクター。デフォルトは everything です。

文字列

D.1.2.2.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.admin.v1beta2.AddressSpacePlanList

401

承認権限

コンテンツなし

D.1.2.2.4. 生成
  • application/json
D.1.2.2.5. tags
  • 住所空間
  • Admin
  • enmasse_v1beta2

D.1.2.3. GET /apis/admin.enmasse.io/v1beta2/namespaces/{namespace}/addressspaceplans/{name}

D.1.2.3.1. 説明

指定した AddressSpacePlan を読む。

D.1.2.3.2. パラメーター
タイプ名前説明スキーマ

パス

name
required

読み取る AddressSpacePlan の名前。

文字列

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

D.1.2.3.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.admin.v1beta2.AddressSpacePlan

401

承認権限

コンテンツなし

404

見つかりません

コンテンツなし

D.1.2.3.4. 消費
  • application/json
D.1.2.3.5. 生成
  • application/json
D.1.2.3.6. tags
  • 住所空間
  • Admin
  • enmasse_v1beta2

D.1.2.4. PUT /apis/admin.enmasse.io/v1beta2/namespaces/{namespace}/addressspaceplans/{name}

D.1.2.4.1. 説明

指定した AddressSpacePlan を置き換えます。

D.1.2.4.2. パラメーター
タイプ名前説明スキーマ

パス

name
required

置き換える AddressSpacePlan の名前。

文字列

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

本文

body
required

 

io.enmasse.admin.v1beta2.AddressSpacePlan

D.1.2.4.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.admin.v1beta2.AddressSpacePlan

201

作成済み

io.enmasse.admin.v1beta2.AddressSpacePlan

401

承認権限

コンテンツなし

D.1.2.4.4. 生成
  • application/json
D.1.2.4.5. tags
  • 住所空間
  • Admin
  • enmasse_v1beta2

D.1.2.5. DELETE /apis/admin.enmasse.io/v1beta2/namespaces/{namespace}/addressspaceplans/{name}

D.1.2.5.1. 説明

AddressSpacePlan の削除

D.1.2.5.2. パラメーター
タイプ名前説明スキーマ

パス

name
required

削除する AddressSpacePlan の名前。

文字列

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

D.1.2.5.3. 応答
HTTP コード説明スキーマ

200

OK

状態

401

承認権限

コンテンツなし

404

見つかりません

コンテンツなし

D.1.2.5.4. 生成
  • application/json
D.1.2.5.5. tags
  • 住所空間
  • Admin
  • enmasse_v1beta2

D.1.2.6. POST /apis/enmasse.io/v1beta1/namespaces/{namespace}/addresses

D.1.2.6.1. 説明

アドレスの作成

D.1.2.6.2. パラメーター
タイプ名前説明スキーマ

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

本文

body
required

 

io.enmasse.v1beta1.Address

D.1.2.6.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.v1beta1.Address

201

作成済み

io.enmasse.v1beta1.Address

401

承認権限

コンテンツなし

D.1.2.6.4. 消費
  • application/json
D.1.2.6.5. 生成
  • application/json
D.1.2.6.6. tags
  • addresses
  • enmasse_v1beta1

D.1.2.7. GET /apis/enmasse.io/v1beta1/namespaces/{namespace}/addresses

D.1.2.7.1. 説明

アドレスの種類オブジェクトを一覧表示

D.1.2.7.2. パラメーター
タイプ名前説明スキーマ

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

クエリー

labelSelector
optional

返されたオブジェクトの一覧をラベルで制限するセレクター。デフォルトは everything です。

文字列

D.1.2.7.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.v1beta1.AddressList

401

承認権限

コンテンツなし

D.1.2.7.4. 生成
  • application/json
D.1.2.7.5. tags
  • addresses
  • enmasse_v1beta1

D.1.2.8. GET /apis/enmasse.io/v1beta1/namespaces/{namespace}/addresses/{name}

D.1.2.8.1. 説明

指定したアドレスを読み取ります。

D.1.2.8.2. パラメーター
タイプ名前説明スキーマ

パス

name
required

読み込むアドレスの名前

文字列

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

D.1.2.8.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.v1beta1.Address

401

承認権限

コンテンツなし

404

見つかりません

コンテンツなし

D.1.2.8.4. 消費
  • application/json
D.1.2.8.5. 生成
  • application/json
D.1.2.8.6. tags
  • addresses
  • enmasse_v1beta1

D.1.2.9. PUT /apis/enmasse.io/v1beta1/namespaces/{namespace}/addresses/{name}

D.1.2.9.1. 説明

指定したアドレスの置き換え

D.1.2.9.2. パラメーター
タイプ名前説明スキーマ

パス

name
required

置き換えるアドレスの名前

文字列

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

本文

body
required

 

io.enmasse.v1beta1.Address

D.1.2.9.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.v1beta1.Address

201

作成済み

io.enmasse.v1beta1.Address

401

承認権限

コンテンツなし

D.1.2.9.4. 生成
  • application/json
D.1.2.9.5. tags
  • addresses
  • enmasse_v1beta1

D.1.2.10. DELETE /apis/enmasse.io/v1beta1/namespaces/{namespace}/addresses/{name}

D.1.2.10.1. 説明

アドレスの削除

D.1.2.10.2. パラメーター
タイプ名前説明スキーマ

パス

name
required

削除するアドレスの名前

文字列

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

D.1.2.10.3. 応答
HTTP コード説明スキーマ

200

OK

状態

401

承認権限

コンテンツなし

404

見つかりません

コンテンツなし

D.1.2.10.4. 生成
  • application/json
D.1.2.10.5. tags
  • addresses
  • enmasse_v1beta1

D.1.2.11. PATCH /apis/enmasse.io/v1beta1/namespaces/{namespace}/addresses/{name}

D.1.2.11.1. 説明

指定されたアドレスのパッチ(RFC6902)

D.1.2.11.2. パラメーター
タイプ名前説明スキーマ

パス

name
required

置き換えるアドレスの名前

文字列

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

本文

body
required

 

JsonPatchRequest

D.1.2.11.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.v1beta1.Address

401

承認権限

コンテンツなし

D.1.2.11.4. 消費
  • application/json-patch+json
D.1.2.11.5. 生成
  • application/json
D.1.2.11.6. tags
  • addresses
  • enmasse_v1beta1

D.1.2.12. POST /apis/enmasse.io/v1beta1/namespaces/{namespace}/addressspaces

D.1.2.12.1. 説明

アドレススペースの作成

D.1.2.12.2. パラメーター
タイプ名前説明スキーマ

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

本文

body
required

 

io.enmasse.v1beta1.AddressSpace

D.1.2.12.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.v1beta1.AddressSpace

201

作成済み

io.enmasse.v1beta1.AddressSpace

401

承認権限

コンテンツなし

D.1.2.12.4. 消費
  • application/json
D.1.2.12.5. 生成
  • application/json
D.1.2.12.6. tags
  • addressspaces
  • enmasse_v1beta1

D.1.2.13. GET /apis/enmasse.io/v1beta1/namespaces/{namespace}/addressspaces

D.1.2.13.1. 説明

AddressSpace の種類オブジェクトを一覧表示します。

D.1.2.13.2. パラメーター
タイプ名前説明スキーマ

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

クエリー

labelSelector
optional

返されたオブジェクトの一覧をラベルで制限するセレクター。デフォルトは everything です。

文字列

D.1.2.13.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.v1beta1.AddressSpaceList

401

承認権限

コンテンツなし

D.1.2.13.4. 生成
  • application/json
D.1.2.13.5. tags
  • addressspaces
  • enmasse_v1beta1

D.1.2.14. GET /apis/enmasse.io/v1beta1/namespaces/{namespace}/addressspaces/{name}

D.1.2.14.1. 説明

指定された AddressSpace の読み取り

D.1.2.14.2. パラメーター
タイプ名前説明スキーマ

パス

name
required

読み込む AddressSpace の名前

文字列

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

D.1.2.14.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.v1beta1.AddressSpace

401

承認権限

コンテンツなし

404

見つかりません

コンテンツなし

D.1.2.14.4. 消費
  • application/json
D.1.2.14.5. 生成
  • application/json
D.1.2.14.6. tags
  • addressspaces
  • enmasse_v1beta1

D.1.2.15. PUT /apis/enmasse.io/v1beta1/namespaces/{namespace}/addressspaces/{name}

D.1.2.15.1. 説明

指定された AddressSpace を置き換えます。

D.1.2.15.2. パラメーター
タイプ名前説明スキーマ

パス

name
required

置き換える AddressSpace の名前

文字列

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

本文

body
required

 

io.enmasse.v1beta1.AddressSpace

D.1.2.15.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.v1beta1.AddressSpace

201

作成済み

io.enmasse.v1beta1.AddressSpace

401

承認権限

コンテンツなし

D.1.2.15.4. 生成
  • application/json
D.1.2.15.5. tags
  • addressspaces
  • enmasse_v1beta1

D.1.2.16. DELETE /apis/enmasse.io/v1beta1/namespaces/{namespace}/addressspaces/{name}

D.1.2.16.1. 説明

アドレススペースの削除

D.1.2.16.2. パラメーター
タイプ名前説明スキーマ

パス

name
required

削除する AddressSpace の名前

文字列

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

D.1.2.16.3. 応答
HTTP コード説明スキーマ

200

OK

状態

401

承認権限

コンテンツなし

404

見つかりません

コンテンツなし

D.1.2.16.4. 生成
  • application/json
D.1.2.16.5. tags
  • addressspaces
  • enmasse_v1beta1

D.1.2.17. PATCH /apis/enmasse.io/v1beta1/namespaces/{namespace}/addressspaces/{name}

D.1.2.17.1. 説明

指定された AddressSpace(RFC6902)のパッチ(RFC6902)

D.1.2.17.2. パラメーター
タイプ名前説明スキーマ

パス

name
required

置き換える AddressSpace の名前

文字列

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

本文

body
required

 

JsonPatchRequest

D.1.2.17.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.v1beta1.AddressSpace

401

承認権限

コンテンツなし

D.1.2.17.4. 消費
  • application/json-patch+json
D.1.2.17.5. 生成
  • application/json
D.1.2.17.6. tags
  • addressspaces
  • enmasse_v1beta1

D.1.2.18. POST /apis/user.enmasse.io/v1beta1/namespaces/{namespace}/messagingusers

D.1.2.18.1. 説明

MessagingUser の作成

D.1.2.18.2. パラメーター
タイプ名前説明スキーマ

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

本文

body
required

 

io.enmasse.user.v1beta1.MessagingUser

D.1.2.18.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.user.v1beta1.MessagingUser

201

作成済み

io.enmasse.user.v1beta1.MessagingUser

401

承認権限

コンテンツなし

D.1.2.18.4. 消費
  • application/json
D.1.2.18.5. 生成
  • application/json
D.1.2.18.6. tags
  • AUTH
  • enmasse_v1beta1
  • ユーザー

D.1.2.19. GET /apis/user.enmasse.io/v1beta1/namespaces/{namespace}/messagingusers

D.1.2.19.1. 説明

MessagingUser の種類のオブジェクトを一覧表示します。

D.1.2.19.2. パラメーター
タイプ名前説明スキーマ

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

クエリー

labelSelector
optional

返されたオブジェクトの一覧をラベルで制限するセレクター。デフォルトは everything です。

文字列

D.1.2.19.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.user.v1beta1.MessagingUserList

401

承認権限

コンテンツなし

D.1.2.19.4. 生成
  • application/json
D.1.2.19.5. tags
  • AUTH
  • enmasse_v1beta1
  • ユーザー

D.1.2.20. GET /apis/user.enmasse.io/v1beta1/namespaces/{namespace}/messagingusers/{name}

D.1.2.20.1. 説明

指定した MessagingUser を読む。

D.1.2.20.2. パラメーター
タイプ名前説明スキーマ

パス

name
required

読み取る MessagingUser の名前。名前に addressSpace および dot separator を含める必要があります(「 myspace.user1」)。

文字列

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

D.1.2.20.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.user.v1beta1.MessagingUser

401

承認権限

コンテンツなし

404

見つかりません

コンテンツなし

D.1.2.20.4. 消費
  • application/json
D.1.2.20.5. 生成
  • application/json
D.1.2.20.6. tags
  • AUTH
  • enmasse_v1beta1
  • ユーザー

D.1.2.21. PUT /apis/user.enmasse.io/v1beta1/namespaces/{namespace}/messagingusers/{name}

D.1.2.21.1. 説明

指定された MessagingUser を置き換えます。

D.1.2.21.2. パラメーター
タイプ名前説明スキーマ

パス

name
required

置き換える MessagingUser の名前。名前に addressSpace および dot separator を含める必要があります(「 myspace.user1」)。

文字列

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

本文

body
required

 

io.enmasse.user.v1beta1.MessagingUser

D.1.2.21.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.user.v1beta1.MessagingUser

201

作成済み

io.enmasse.user.v1beta1.MessagingUser

401

承認権限

コンテンツなし

D.1.2.21.4. 生成
  • application/json
D.1.2.21.5. tags
  • AUTH
  • enmasse_v1beta1
  • ユーザー

D.1.2.22. DELETE /apis/user.enmasse.io/v1beta1/namespaces/{namespace}/messagingusers/{name}

D.1.2.22.1. 説明

MessagingUser の削除

D.1.2.22.2. パラメーター
タイプ名前説明スキーマ

パス

name
required

削除する MessagingUser の名前。名前に addressSpace および dot separator を含める必要があります(「 myspace.user1」)。

文字列

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

D.1.2.22.3. 応答
HTTP コード説明スキーマ

200

OK

状態

401

承認権限

コンテンツなし

404

見つかりません

コンテンツなし

D.1.2.22.4. 生成
  • application/json
D.1.2.22.5. tags
  • AUTH
  • enmasse_v1beta1
  • ユーザー

D.1.2.23. PATCH /apis/user.enmasse.io/v1beta1/namespaces/{namespace}/messagingusers/{name}

D.1.2.23.1. 説明

指定された MessagingUser のパッチ(RFC6902)

D.1.2.23.2. パラメーター
タイプ名前説明スキーマ

パス

name
required

置き換える MessagingUser の名前。名前に addressSpace および dot separator を含める必要があります(「 myspace.user1」)。

文字列

パス

namespace
required

チームおよびプロジェクトなどのオブジェクト名および認証スコープ

文字列

本文

body
required

 

JsonPatchRequest

D.1.2.23.3. 応答
HTTP コード説明スキーマ

200

OK

io.enmasse.user.v1beta1.MessagingUser

401

承認権限

コンテンツなし

D.1.2.23.4. 消費
  • application/json-patch+json
D.1.2.23.5. 生成
  • application/json
D.1.2.23.6. tags
  • AUTH
  • enmasse_v1beta1
  • ユーザー

D.1.3. 定義

D.1.3.1. JsonPatchRequest

名前スキーマ

document
required

オブジェクト

patch
required

<patch > 配列

D.1.3.2. ObjectMeta

ObjectMeta は、すべての永続化されたリソースに必要な必要のあるメタデータです。これには、ユーザーが作成する必要のある全オブジェクトが含まれます。

名前スキーマ

name
required

文字列

namespace
optional

文字列

D.1.3.3. パッチ

名前説明スキーマ

from
optional

操作コピーに必要、置換

文字列

op
required

 

enum(add, remove、replace、move、copy、test)

path
required

スラッシュで区切られた形式

文字列

value
optional

操作の追加、置換、テストに必要です。

文字列

D.1.3.4. 状態

status は、他のオブジェクトを返さない呼び出しの戻り値です。

名前説明スキーマ

code
optional

このステータスに推奨される HTTP 戻りコード(設定されていない場合には 0)。

整数(int32)

D.1.3.5. io.enmasse.admin.v1beta1.BrokeredInfraConfig

名前スキーマ

apiVersion
required

enum (admin.enmasse.io/v1beta1)

kind
required

enum(BrokeredInfraConfig)

metadata
required

ObjectMeta

spec
required

io.enmasse.admin.v1beta1.BrokeredInfraConfigSpec

D.1.3.6. io.enmasse.admin.v1beta1.BrokeredInfraConfigList

名前スキーマ

apiVersion
required

enum (admin.enmasse.io/v1beta1)

items
required

< io.enmasse.admin.v1beta1.BrokeredInfraConfig > array

kind
required

enum (BrokeredInfraConfigList)

D.1.3.7. io.enmasse.admin.v1beta1.BrokeredInfraConfigSpec

名前スキーマ

admin
optional

io.enmasse.admin.v1beta1.BrokeredInfraConfigSpecAdmin

broker
optional

io.enmasse.admin.v1beta1.BrokeredInfraConfigSpecBroker

networkPolicy
optional

networkPolicy

version
optional

文字列

networkPolicy

名前スキーマ

egress
optional

< io.k8s.api.networking.v1.NetworkPolicyEgressRule > array

ingress
optional

< io.k8s.api.networking.v1.NetworkPolicyIngressRule > array

D.1.3.8. io.enmasse.admin.v1beta1.BrokeredInfraConfigSpecAdmin

名前スキーマ

podTemplate
optional

io.enmasse.admin.v1beta1.InfraConfigPodSpec

resources
optional

resources

resources

名前スキーマ

memory
optional

文字列

D.1.3.9. io.enmasse.admin.v1beta1.BrokeredInfraConfigSpecBroker

名前スキーマ

addressFullPolicy
optional

enum(PAGE、BLOCK、FAIL)

podTemplate
optional

io.enmasse.admin.v1beta1.InfraConfigPodSpec

resources
optional

resources

storageClassName
optional

文字列

updatePersistentVolumeClaim
optional

ブール値

resources

名前スキーマ

memory
optional

文字列

storage
optional

文字列

D.1.3.10. io.enmasse.admin.v1beta1.InfraConfigPodSpec

名前スキーマ

metadata
optional

metadata

spec
optional

spec

metadata

名前スキーマ

labels
optional

オブジェクト

spec

名前スキーマ

affinity
optional

オブジェクト

containers
任意

<containers > 配列

priorityClassName
optional

文字列

securityContext
optional

オブジェクト

tolerations
任意

< オブジェクト > 配列

containers

名前スキーマ

resources
optional

オブジェクト

D.1.3.11. io.enmasse.admin.v1beta1.StandardInfraConfig

名前スキーマ

apiVersion
required

enum (admin.enmasse.io/v1beta1)

kind
required

enum(StandardInfraConfig)

metadata
required

ObjectMeta

spec
required

io.enmasse.admin.v1beta1.StandardInfraConfigSpec

D.1.3.12. io.enmasse.admin.v1beta1.StandardInfraConfigList

名前スキーマ

apiVersion
required

enum (admin.enmasse.io/v1beta1)

items
required

< io.enmasse.admin.v1beta1.StandardInfraConfig > array

kind
required

enum(StandardInfraConfigList)

D.1.3.13. io.enmasse.admin.v1beta1.StandardInfraConfigSpec

networkPolicy

名前スキーマ

egress
optional

< io.k8s.api.networking.v1.NetworkPolicyEgressRule > array

ingress
optional

< io.k8s.api.networking.v1.NetworkPolicyIngressRule > array

D.1.3.14. io.enmasse.admin.v1beta1.StandardInfraConfigSpecAdmin

名前スキーマ

podTemplate
optional

io.enmasse.admin.v1beta1.InfraConfigPodSpec

resources
optional

resources

resources

名前スキーマ

memory
optional

文字列

D.1.3.15. io.enmasse.admin.v1beta1.StandardInfraConfigSpecBroker

名前スキーマ

addressFullPolicy
optional

enum(PAGE、BLOCK、FAIL)

connectorIdleTimeout
optional

integer

connectorWorkerThreads
optional

integer

podTemplate
optional

io.enmasse.admin.v1beta1.InfraConfigPodSpec

resources
optional

resources

storageClassName
optional

文字列

updatePersistentVolumeClaim
optional

ブール値

resources

名前スキーマ

memory
optional

文字列

storage
optional

文字列

D.1.3.16. io.enmasse.admin.v1beta1.StandardInfraConfigSpecRouter

名前スキーマ

idleTimeout
optional

integer

initialHandshakeTimeout
optional

integer

linkCapacity
optional

integer

minAvailable
optional

integer

minReplicas
optional

integer

podTemplate
optional

io.enmasse.admin.v1beta1.InfraConfigPodSpec

policy
optional

policy

resources
optional

resources

workerThreads
optional

integer

policy

名前スキーマ

maxConnections
optional

integer

maxConnectionsPerHost
optional

integer

maxConnectionsPerUser
optional

integer

maxReceiversPerConnection
optional

integer

maxSendersPerConnection
optional

integer

maxSessionsPerConnection
optional

integer

resources

名前スキーマ

memory
optional

文字列

D.1.3.17. io.enmasse.admin.v1beta2.AddressPlan

名前スキーマ

apiVersion
required

enum (admin.enmasse.io/v1beta2)

kind
required

enum(AddressPlan)

metadata
required

ObjectMeta

spec
required

io.enmasse.admin.v1beta2.AddressPlanSpec

D.1.3.18. io.enmasse.admin.v1beta2.AddressPlanList

名前スキーマ

apiVersion
required

enum (admin.enmasse.io/v1beta2)

items
required

< io.enmasse.admin.v1beta2.AddressPlan > array

kind
required

enum(AddressPlanList)

D.1.3.19. io.enmasse.admin.v1beta2.AddressPlanSpec

名前スキーマ

addressType
required

文字列

displayName
required

文字列

displayOrder
optional

integer

longDescription
optional

文字列

partitions
optional

integer

resources
required

resources

shortDescription
optional

文字列

resources

名前スキーマ

broker
optional

数値

router
optional

数値

D.1.3.20. io.enmasse.admin.v1beta2.AddressSpacePlan

名前スキーマ

apiVersion
required

enum (admin.enmasse.io/v1beta2)

kind
required

enum (AddressSpacePlan)

metadata
required

ObjectMeta

spec
required

io.enmasse.admin.v1beta2.AddressSpacePlanSpec

D.1.3.21. io.enmasse.admin.v1beta2.AddressSpacePlanList

名前スキーマ

apiVersion
required

enum (admin.enmasse.io/v1beta2)

items
required

< io.enmasse.admin.v1beta2.AddressSpacePlan > array

kind
required

enum (AddressSpacePlanList)

D.1.3.22. io.enmasse.admin.v1beta2.AddressSpacePlanSpec

名前スキーマ

addressPlans
required

< 文字列 > 配列

addressSpaceType
required

文字列

displayName
required

文字列

displayOrder
optional

integer

infraConfigRef
required

文字列

longDescription
optional

文字列

resourceLimits
required

resourceLimits

shortDescription
optional

文字列

resourceLimits

名前スキーマ

aggregate
optional

数値

broker
optional

数値

router
optional

数値

D.1.3.23. io.enmasse.user.v1beta1.MessagingUser

名前スキーマ

apiVersion
required

enum (user.enmasse.io/v1beta1)

kind
required

enum(MessagingUser)

metadata
required

ObjectMeta

spec
required

io.enmasse.user.v1beta1.UserSpec

D.1.3.24. io.enmasse.user.v1beta1.MessagingUserList

名前スキーマ

apiVersion
required

enum (user.enmasse.io/v1beta1)

items
required

< io.enmasse.user.v1beta1.MessagingUser > array

kind
required

enum(MessagingUserList)

D.1.3.25. io.enmasse.user.v1beta1.UserSpec

名前スキーマ

authentication
optional

認証

authorization
optional

<authorization > 配列

username
required

文字列

認証

名前説明スキーマ

federatedUserid
optional

'federated' タイプが指定されている場合には、ユーザーのユーザー ID を federate にします。

文字列

federatedUsername
optional

'federated' タイプが指定されている場合に、フェデレーションするユーザーのユーザー名。

文字列

password
optional

'password' タイプが指定されている場合は、password の base64 でエンコードされた値。

文字列

provider
optional

'federated' タイプが指定されている場合にフェデレーションされたアイデンティティーに使用するプロバイダーの名前。

文字列

type
required

 

enum(パスワード、serviceaccount)

認可

名前スキーマ

addresses
optional

< 文字列 > 配列

operations
必須

< enum(送信、recv、view、manage)> 配列

D.1.3.26. io.enmasse.v1beta1.Address

名前スキーマ

apiVersion
required

enum (enmasse.io/v1beta1)

kind
required

enum(Address)

metadata
required

ObjectMeta

spec
required

io.enmasse.v1beta1.AddressSpec

status
optional

io.enmasse.v1beta1.AddressStatus

D.1.3.27. io.enmasse.v1beta1.AddressList

名前説明スキーマ

apiVersion
required

Default : "enmasse.io/v1beta1"

enum (enmasse.io/v1beta1)

items
required

 

< io.enmasse.v1beta1.Address > array

kind
required

 

enum(AddressList)

D.1.3.28. io.enmasse.v1beta1.AddressSpace

名前スキーマ

apiVersion
required

enum (enmasse.io/v1beta1)

kind
required

enum(AddressSpace)

metadata
required

ObjectMeta

spec
required

io.enmasse.v1beta1.AddressSpaceSpec

status
optional

io.enmasse.v1beta1.AddressSpaceStatus

D.1.3.29. io.enmasse.v1beta1.AddressSpaceList

名前説明スキーマ

apiVersion
required

Default : "enmasse.io/v1beta1"

enum (enmasse.io/v1beta1)

items
required

 

< io.enmasse.v1beta1.AddressSpace > array

kind
required

 

enum(AddressSpaceList)

D.1.3.30. io.enmasse.v1beta1.AddressSpaceSpec

名前説明スキーマ

authenticationService
optional

 

authenticationService

connectors
optional

作成するコネクターの一覧。

< io.enmasse.v1beta1.AddressSpaceSpecConnector > array

endpoints
optional

 

<endpoints > 配列

networkPolicy
optional

 

networkPolicy

plan
required

 

文字列

type
required

 

io.enmasse.v1beta1.AddressSpaceType

authenticationService

名前スキーマ

name
optional

文字列

overrides
optional

overrides

type
optional

文字列

overrides

名前スキーマ

host
optional

文字列

port
optional

integer

realm
optional

文字列

endpoint

名前スキーマ

cert
optional

cert

exports
optional

<exports > 配列

expose
optional

expose

name
optional

文字列

service
optional

文字列

cert

名前スキーマ

provider
optional

文字列

secretName
optional

文字列

tlsCert
optional

文字列

tlsKey
optional

文字列

exports

名前スキーマ

kind
optional

enum(ConfigMap、シークレット、サービス)

name
optional

文字列

expose

名前スキーマ

annotations
optional

オブジェクト

loadBalancerPorts
optional

< 文字列 > 配列

loadBalancerSourceRanges
optional

< 文字列 > 配列

routeHost
optional

文字列

routeServicePort
optional

文字列

routeTlsTermination
optional

文字列

type
optional

enum(ルート、ロードバランサー)

networkPolicy

名前スキーマ

egress
optional

< io.k8s.api.networking.v1.NetworkPolicyEgressRule > array

ingress
optional

< io.k8s.api.networking.v1.NetworkPolicyIngressRule > array

D.1.3.31. io.enmasse.v1beta1.AddressSpaceSpecConnector

名前説明スキーマ

addresses
optional

このアドレス空間からアクセスできるようにするアドレス。

< addresses > array

credentials
optional

エンドポイントへの接続時に使用される認証情報。'username' および 'password' または 'secret' のいずれかを定義する必要があります。

credentials

endpointHosts
required

接続先のホストの一覧1 つ以上のエントリーを含める必要があります。

< endpointHosts > array

name
required

コネクターの名前。

文字列

tls
optional

コネクターの TLS 設定。指定のない場合は TLS は使用されません。

tls

addresses

名前説明スキーマ

name
required

アドレスパターンの識別子。パターンを一意に識別するために使用されます

文字列

pattern
required

アドレスを照合するために使用されるパターン。パターンの前にコネクター名とスラッシュ('myconnector/')が付けられます。パターンは、スラッシュ / で区切られた 1 つ以上のトークンで構成されます。トークンは、* 文字、# 文字、または /、*、または # を含まない一連の文字のいずれかになります。* トークンはすべての単一のトークンと一致します。# トークンはゼロ以上のトークンと一致します。* # より優先度が高く、完全一致が優先されます。

文字列

credentials

名前説明スキーマ

password
optional

コネクターに使用するパスワード。'value' または 'secret' のいずれかを指定する必要があります。

パスワード

username
optional

コネクターに使用するユーザー名。'value' または 'secret' のいずれかを指定する必要があります。

username

パスワード

名前スキーマ

value
optional

文字列

valueFromSecret
optional

valueFromSecret

valueFromSecret

名前説明スキーマ

key
optional

パスワードエントリーの検索に使用するキー。
デフォルト : "password"

文字列

name
optional

パスワードを含むシークレットの名前。

文字列

username

名前スキーマ

value
optional

文字列

valueFromSecret
optional

valueFromSecret

valueFromSecret

名前説明スキーマ

key
optional

ユーザー名エントリーの検索に使用するキー。
デフォルト : "username"

文字列

name
optional

ユーザー名を含むシークレットの名前。

文字列

endpointHosts

名前説明スキーマ

host
required

接続するホスト。

文字列

port
required

接続するポート。

integer

tls

名前説明スキーマ

caCert
optional

コネクターが使用する CA 証明書。'value' または 'secret' のいずれか。

caCert

clientCert
optional

コネクターによって使用されるクライアント証明書。'value' または 'secret' のいずれか。

clientCert

caCert

名前説明スキーマ

value
optional

CA 証明書の PEM でエンコードされた値

文字列

valueFromSecret
optional

コネクターによって使用される CA 証明書が含まれるシークレット。

valueFromSecret

valueFromSecret

名前説明スキーマ

key
optional

CA 証明書エントリーの検索に使用するキー。
デフォルト : "ca.crt"

文字列

name
optional

CA 証明書が含まれるシークレットの名前。

文字列

clientCert

名前説明スキーマ

value
optional

クライアント証明書の PEM でエンコードされた値

文字列

valueFromSecret
optional

コネクターによって使用されるクライアント証明書が含まれるシークレット。

valueFromSecret

valueFromSecret

名前説明スキーマ

key
optional

クライアント証明書エントリーの検索に使用するキー。
デフォルト : "ca.crt"

文字列

name
optional

クライアント証明書を含むシークレットの名前。

文字列

D.1.3.32. io.enmasse.v1beta1.AddressSpaceStatus

名前説明スキーマ

connectors
optional

ステータスのあるコネクターの一覧。

< io.enmasse.v1beta1.AddressSpaceStatusConnector > array

endpointStatuses
optional

 

< endpointStatuses > array

isReady
optional

 

ブール値

messages
optional

 

< 文字列 > 配列

endpointStatuses

名前スキーマ

cert
optional

文字列

externalHost
optional

文字列

externalPorts
optional

< externalPorts > array

name
optional

文字列

serviceHost
optional

文字列

servicePorts
optional

< servicePorts > array

externalPorts

名前スキーマ

name
optional

文字列

port
optional

integer

servicePorts

名前スキーマ

name
optional

文字列

port
optional

integer

D.1.3.33. io.enmasse.v1beta1.AddressSpaceStatusConnector

名前説明スキーマ

isReady
optional

コネクターが想定どおりに動作している場合は 'true'、そうでない場合は 'false'。

ブール値

messages
optional

コネクターの状態を記述するメッセージ。

< 文字列 > 配列

name
optional

コネクターの名前。

文字列

D.1.3.34. io.enmasse.v1beta1.AddressSpaceType

AddressSpaceType はアドレス空間のタイプ(標準、ブローカー)です。それぞれの種別は、それらのタイプの異なるタイプのアドレスおよびセマンティクスをサポートします。

タイプ : enum(標準、ブローカー化)

D.1.3.35. io.enmasse.v1beta1.AddressSpec

名前説明スキーマ

address
required

 

文字列

forwarders
optional

このアドレスに対して有効にするフォワーダーの一覧。

< io.enmasse.v1beta1.AddressSpecForwarder > array

plan
required

 

文字列

type
required

 

io.enmasse.v1beta1.AddressType

D.1.3.36. io.enmasse.v1beta1.AddressSpecForwarder

名前説明スキーマ

direction
required

フォワーダーの方向。'in' は、'remoteAddress' からこのアドレスにプルします。'out' は、このアドレスから 'remoteAddress' にプッシュすることを意味します。

enum(in, out)

name
required

フォワーダーの名前。

文字列

remoteAddress
required

メッセージの送信/受信先のリモートアドレス。

文字列

D.1.3.37. io.enmasse.v1beta1.AddressStatus

名前説明スキーマ

forwarders
optional

ステータス付きフォワーダーの一覧。

< io.enmasse.v1beta1.AddressStatusForwarder > array

isReady
optional

 

ブール値

messages
optional

 

< 文字列 > 配列

phase
optional

 

enum(保留中、設定、Active、Failed、Terminating)

D.1.3.38. io.enmasse.v1beta1.AddressStatusForwarder

名前説明スキーマ

isReady
optional

フォワーダーが想定どおりに動作している場合は「true」。そうでない場合は「false」。

ブール値

messages
optional

フォワーダーの状態を記述するメッセージ。

< 文字列 > 配列

name
optional

フォワーダーの名前。

文字列

D.1.3.39. io.enmasse.v1beta1.AddressType

アドレスのタイプ(キュー、トピック、…)各アドレスタイプは、異なる種類のメッセージングセマンティクスをサポートします。

Type : enum(queue, topic, anycast, multicast)

D.1.3.40. io.k8s.api.networking.v1.IPBlock

IPBlock は、特定の CIDR(Ex)を記述します。NetworkPolicySpec の podSelector に一致する Pod が許可される "192.168.1.1/24"。except エントリーは、このルール内に含まれていない CIDR を記述します。

名前説明スキーマ

cidr
required

CIDR は IP ブロックの有効性例を表す文字列で「192.168.1.1/24」です。

文字列

except
optional

except は IP Block Valid サンプルに含まれない CIDR のスライスは、「192.168.1.1/24」 Except 値は CIDR 範囲外にある場合に拒否されます。

< 文字列 > 配列

D.1.3.41. io.k8s.api.networking.v1.NetworkPolicyEgressRule

NetworkPolicyEgressRule は、NetworkPolicySpec の podSelector と一致する Pod 外の特定のトラフィックセットを記述します。トラフィックはポートと to の両方に一致する必要があります。このタイプは、1.8 のベータレベルです。

名前説明スキーマ

ports
optional

送信トラフィックの宛先ポートの一覧この一覧の各項目は、論理 OR を使用して組み合わせます。このフィールドが空であるか、またはない場合、このルールはすべてのポートと一致します(ポートでは制限されないトラフィック)。このフィールドが存在し、1 つ以上の項目が含まれる場合、このルールを使用して、トラフィックがリスト内の少なくとも 1 つのポートと一致する場合のみ、このルールはトラフィックを許可します。

< io.k8s.api.networking.v1.NetworkPolicyPort > array

to
optional

このルールに選択される Pod の送信トラフィックの宛先の一覧。この一覧内の項目は、論理 OR 操作を使用して組み合わせます。このフィールドが空であるか、またはない場合、このルールはすべての宛先にマッチします(宛先で制限されないトラフィック)。このフィールドが存在し、1 つ以上の項目が含まれる場合、このルールは、トラフィックをリスト内の 1 つ以上の項目にマッチする場合にのみ、トラフィックを許可します。

< io.k8s.api.networking.v1.NetworkPolicyPeer > array

D.1.3.42. io.k8s.api.networking.v1.NetworkPolicyIngressRule

NetworkPolicyIngressRule は、NetworkPolicySpec の podSelector に一致する Pod に一致する Pod で許可される特定のトラフィックのセットを記述します。トラフィックはポートと from の両方に一致する必要があります。

名前説明スキーマ

from
optional

このルールに選択した Pod にアクセスできるソースの一覧この一覧内の項目は、論理 OR 操作を使用して組み合わせます。このフィールドが空であるか、または見つからない場合、このルールはすべてのソースと一致します(ソースで制限されないトラフィック)。このフィールドが存在し、1 つ以上の項目が含まれる場合、このルールは、トラフィックを from リスト内で少なくとも 1 つの項目と一致する場合にのみ、トラフィックを許可します。

< io.k8s.api.networking.v1.NetworkPolicyPeer > array

ports
optional

このルールに選択した Pod でアクセス可能なポートの一覧この一覧の各項目は、論理 OR を使用して組み合わせます。このフィールドが空であるか、またはない場合、このルールはすべてのポートと一致します(ポートでは制限されないトラフィック)。このフィールドが存在し、1 つ以上の項目が含まれる場合、このルールを使用して、トラフィックがリスト内の少なくとも 1 つのポートと一致する場合のみ、このルールはトラフィックを許可します。

< io.k8s.api.networking.v1.NetworkPolicyPort > array

D.1.3.43. io.k8s.api.networking.v1.NetworkPolicyPeer

NetworkPolicyPeer は、トラフィックを許可するピアを記述します。特定のフィールドの組み合わせのみが許可されます

名前説明スキーマ

ipBlock
optional

IPBlock は、特定の IPBlock でポリシーを定義します。このフィールドが設定されている場合、他のフィールドはいずれも指定できません。

io.k8s.api.networking.v1.IPBlock

namespaceSelector
optional

クラスタースコープのラベルを使用して namespace を選択します。このフィールドは標準のラベルセレクターセマンティクスに従います。ただし空の場合は、すべての namespace を選択します。

PodSelector も設定されている場合、NetworkPolicyPeer 全体として、NamespaceSelector によって選択される namespace の PodSelector に一致する Pod を選択します。それ以外の場合は、NamespaceSelector によって選択される namespace のすべての Pod を選択します。

io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector

podSelector
optional

これは Pod を選択するラベルセレクターです。このフィールドは標準のラベルセレクターセマンティクスに従います。ただし空の場合は、すべての Pod を選択します。

NamespaceSelector も設定されている場合、NetworkPolicyPeer 全体として、NamespaceSelector によって選択される namespace の PodSelector に一致する Pod を選択します。それ以外の場合は、ポリシーの独自の namespace で PodSelector に一致する Pod を選択します。

io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector

D.1.3.44. io.k8s.api.networking.v1.NetworkPolicyPort

NetworkPolicyPort は、トラフィックを許可するポートを記述します。

名前説明スキーマ

port
optional

指定プロトコルのポート。これは、Pod の数値または名前付きポートのいずれかになります。このフィールドが指定されていない場合、すべてのポート名と数字と一致します。

io.k8s.apimachinery.pkg.util.intstr.IntOrString

protocol
optional

トラフィックが一致する必要のあるプロトコル(TCP または UDP)。指定されていない場合、このフィールドはデフォルトで TCP に設定されます。

文字列

D.1.3.45. io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector

ラベルセレクターとは、一連のリソースに対するラベルクエリーです。matchLabels と matchExpressions の結果は AND を使用して結合されます。ラベルセレクターが空の場合は、全オブジェクトと一致します。ラベルセレクターが null の場合は、どのオブジェクトもマッチしません。

名前説明スキーマ

matchExpressions
optional

matchExpressions はラベルセレクターの要件の一覧です。要件は AND で結合します。

< io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement > array

matchLabels
optional

matchLabels は、{key,value} ペアのマップです。matchLabels マップの 1 つの {key,value} は matchExpressions の要素と同じで、キーフィールドには「key」、演算子には「In」、値配列には「value」のみが含まれます。要件は AND で結合します。

< string, string > マップ

D.1.3.46. io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement

ラベルセレクター要件は、キーと値に関連する値、キー、および Operator が含まれるセレクターです。

名前説明スキーマ

key
required

key は、セレクターの適用先のラベルキーです。

文字列

operator
required

Operator はキーと値のセットの関係を表します。有効な演算子は In、NotIn、Exists、および DoesNotExist です。

文字列

values
optional

value は文字列値の配列です。Operator が In または NotIn の場合には、値の配列を空白にすることはできません。Operator が Exists または DoesNotExist の場合には、値の配列は空でなければなりません。この配列は、ストラテジーに基づいたマージパッチの適用中に置き換えられます。

< 文字列 > 配列

D.1.3.47. io.k8s.apimachinery.pkg.util.intstr.IntOrString

IntOrString は、int32 または文字列を保持することができるタイプです。JSON または YAML マーシャリングおよびアンマーシャリングで使用すると、内部タイプを生成または使用します。これにより、名前や数字を使用できる JSON フィールドなどを使用できます。

Type : string(int-or-string)

付録E サブスクリプションの使用

AMQ Online は、ソフトウェアサブスクリプションから提供されます。サブスクリプションを管理するには、Red Hat カスタマーポータルでアカウントにアクセスします。

アカウントへのアクセス

  1. access.redhat.com に移動します。
  2. アカウントがない場合は、これを作成します。
  3. アカウントにログインします。

サブスクリプションのアクティベート

  1. access.redhat.com に移動します。
  2. 割り当て 済みのサブスクリプション に移動します。
  3. Activate a subscription に移動し、16 桁のアクティベーション番号を入力します。

zip および tar ファイルのダウンロード

zip または tar ファイルにアクセスするには、Red Hat カスタマーポータルを使用してダウンロードする関連ファイルを検索します。RPM パッケージを使用している場合は、この手順は必要ありません。

  1. ブラウザーを開き、access.redhat.com/downloads で Red Hat カスタマーポータルの Product Downloads ページにログインします。
  2. JBOSS INTEGRATION AND AUTOMATION カテゴリーで Red Hat AMQ Online エントリーを見つけます。
  3. 必要な AMQ Online 製品を選択します。Software Downloads ページが開きます。
  4. コンポーネントの Download リンクをクリックします。

パッケージ用のシステムの登録

Red Hat Enterprise Linux に RPM パッケージをインストールするには、システムを登録する必要があります。zip または tar ファイルを使用している場合は、このステップは必要ありません。

  1. access.redhat.com に移動します。
  2. Registration Assistant に移動します。
  3. OS のバージョンを選択し、次のページに進みます。
  4. システムターミナルで listed コマンドを使用して、登録を完了します。

詳細は 「Red Hat カスタマーポータルへのシステム登録およびサブスクライブ方法」を 参照してください。

改訂日時: 2021-07-01 16:03:48 +1000