-
Language:
日本語
-
Language:
日本語
OpenShift での AMQ Online のインストールおよび管理
AMQ Online 1.7 との使用
概要
オープンソースをより包含的に設定する
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 3.11 に CLI をインストールする方法の詳細は、OpenShift Container Platform 3.11 のドキュメント を参照してください。
- OpenShift 4.x に CLI をインストールする方法の詳細は、OpenShift Container Platform 4.7 のドキュメント を参照してください。
- OpenShift クラスターが必要です。
-
必要なクラスターロールおよび API サービスを設定するには、
cluster-admin
パーミッションを持つ OpenShift クラスターのユーザーが必要です。
2.1. AMQ Online のダウンロード
AMQ Online のコンテナーイメージは Red Hat Container Catalog で利用できますが、代わりに提供される YAML ファイルを使用することが推奨されます。
2.2. YAML バンドルを使用した AMQ Online のインストール
AMQ Online をインストールする最も簡単な方法は、事前定義された YAML バンドルを使用することです。
手順
cluster-admin
権限を持つユーザーとしてログインします。oc login -u system:admin
(オプション)
amq-online-infra
以外のプロジェクトにデプロイする場合は、以下のコマンドを実行し、後続の手順でamq-online-infra
を置き換える必要があります。sed -i 's/amq-online-infra/my-project/' install/bundles/amq-online/*.yaml
AMQ Online をデプロイするプロジェクトを作成します。
oc new-project amq-online-infra
- ディレクトリーをダウンロードしたリリースファイルの場所に変更します。
amq-online
バンドルを使用してデプロイします。oc apply -f install/bundles/amq-online
(オプション)プランおよびインフラストラクチャー設定のサンプルをインストールします。
oc apply -f install/components/example-plans
(オプション)サンプルロールをインストールします。
oc apply -f install/components/example-roles
(オプション)
標準
の認証サービスをインストールします。oc apply -f install/components/example-authservices/standard-authservice.yaml
(オプション)サービスカタログ統合をインストールします。
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 |
デプロイする認証サービスの一覧を指定します。サポートされる値は |
| no |
keycloak_admin_password |
| 該当なし |
はい( |
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 |
手順
- インベントリーファイルを作成します。
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
パーミッションを持つアカウントへのアクセス。
手順
-
OpenShift 4.x コンソールで、
cluster-admin
権限を持つアカウントを使用してログインします。 - AMQ Online をデプロイするプロジェクトを作成するには、Home > Projects をクリックしてから Create Project をクリックします。Create Project ウィンドウが開きます。
-
Name フィールドに
amq-online-infra
と入力し、Create を クリックします。amq-online-infra
プロジェクトが作成されます。 - Operators > OperatorHub の順にクリックします。
-
Filter by keyword ボックスで AMQ Online を入力し、
AMQ Online
Operator を検索します。 - AMQ Online Operator をクリックします。Operator についての情報が表示されます。
- Operator についての情報を確認してから、Install をクリックします。
Install Operator ページで以下を行います。
- Installation Mode で、A specific namespace on the cluster を クリックします。
-
Installed Namespace ドロップダウンリストから
amq-online-infra
namespace を選択します。 - 残りのすべてのデフォルト設定を受け入れ、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 を使用するには、認証サービスのカスタムリソースを作成する必要があります。この例では、標準の認証サービスを使用しています。
手順
- 右上の Plus アイコン(+)をクリックします。Import YAML ウィンドウが開きます。
-
左のドロップダウンメニューから、
amq-online-infra
プロジェクトを選択します。 以下のコードをコピーします。
apiVersion: admin.enmasse.io/v1beta1 kind: AuthenticationService metadata: name: standard-authservice spec: type: standard
- Import YAML ウィンドウで、コピーしたコードを貼り付け、Create をクリックします。AuthenticationService の概要ページが表示されます。
-
Workloads > Pods をクリックします。Readiness 列で、カスタムリソースがデプロイされると Pod のステータスは
Ready
になります。
2.4.2.2. OpenShift コンソールを使用したインフラストラクチャー設定カスタムリソースの作成
AMQ Online を使用するには、インフラストラクチャー設定のカスタムリソースを作成する必要があります。この例では、標準
のアドレス空間に StandardInfraConfig を使用します。
手順
- 右上の Plus アイコン(+)をクリックします。Import YAML ウィンドウが開きます。
-
左のドロップダウンメニューから、
amq-online-infra
プロジェクトを選択します。 以下のコードをコピーします。
apiVersion: admin.enmasse.io/v1beta1 kind: StandardInfraConfig metadata: name: default
- Import YAML ウィンドウで、コピーしたコードを貼り付け、Create をクリックします。StandardInfraConfig overview ページが表示されます。
- Operators > Installed Operators の順にクリックします。
- AMQ Online Operator をクリックし、Standard Infra Config タブをクリックして Status が Active として表示されることを確認します。
2.4.2.3. OpenShift コンソールを使用したアドレス空間プランカスタムリソースの作成
AMQ Online を使用するには、アドレス空間プランのカスタムリソースを作成する必要があります。この手順では、OpenShift コンソールの使用時に提供されるデータのサンプルを使用します。
手順
- 右上の Plus アイコン(+)をクリックします。Import YAML ウィンドウが開きます。
-
左のドロップダウンメニューから、
amq-online-infra
プロジェクトを選択します。 以下のコードをコピーします。
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
- Import YAML ウィンドウで、コピーしたコードを貼り付け、Create をクリックします。AddressSpacePlan overview ページが表示されます。
- Operators > Installed Operators の順にクリックします。
- AMQ Online Operator をクリックし、Address Space Plan タブをクリックして Status が Active として表示されることを確認します。
2.4.2.4. OpenShift コンソールを使用したアドレスプランカスタムリソースの作成
AMQ Online を使用するには、アドレスプランのカスタムリソースを作成する必要があります。この手順では、OpenShift コンソールの使用時に提供されるデータのサンプルを使用します。
手順
- 右上の Plus アイコン(+)をクリックします。Import YAML ウィンドウが開きます。
-
左のドロップダウンメニューから、
amq-online-infra
プロジェクトを選択します。 以下のコードをコピーします。
apiVersion: admin.enmasse.io/v1beta2 kind: AddressPlan metadata: name: standard-small-queue spec: addressType: queue resources: router: 0.01 broker: 0.1
- Import YAML ウィンドウで、コピーしたコードを貼り付け、Create をクリックします。AddressPlan overview ページが表示されます。
- Operators > Installed Operators の順にクリックします。
- AMQ Online Operator をクリックし、Address Plan タブをクリックして Status が Active として表示されることを確認します。
次のステップ
第3章 AMQ Online のアップグレード
AMQ Online は、クラウドネイティブツールを使用してマイナーバージョン間のアップグレードをサポートします。アップグレード時に、設定変更を適用すると、アップグレードプロセスが自動的にトリガーされます。
最初に AMQ Online をインストールするために使用したのと同じ方法を使用して、AMQ Online の新しいバージョンにアップグレードすることが推奨されます。
AMQ Online のアップグレードは、新バージョンの YAML ファイルを適用して実行できます。
3.1. YAML バンドルを使用した AMQ Online のアップグレード
前提条件
- AMQ Online の新しいリリース。詳細は、「 Downloading AMQ Online 」を参照してください。
手順
サービス Operator としてログインします。
oc login -u system:admin
AMQ Online がインストールされているプロジェクトを選択します。
oc project amq-online-infra
新規リリースバンドルを適用します。
oc apply -f install/bundles/amq-online
再起動時に Pod を監視します。
oc get pods -w
Pod が再起動され、数分以内にアクティブになります。
アップグレード後に
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 」を参照してください。
手順
サービス Operator としてログインします。
oc login -u system:admin
新規リリースから Ansible Playbook を実行します。
ansible-playbook -i inventory-file ansible/playbooks/openshift/deploy_all.yml
再起動時に Pod を監視します。
oc get pods -w
Pod が再起動され、数分以内にアクティブになります。
アップグレード後に
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 をアンインストールします。
手順
cluster-admin
権限を持つユーザーとしてログインします。oc login -u system:admin
クラスターレベルのリソースを削除します。
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
(OpenShift 4)コンソールの統合を削除します。
oc delete consolelinks -l app=enmasse
(オプション)サービスカタログの統合を削除します。
oc delete clusterservicebrokers -l app=enmasse
AMQ Online がデプロイされているプロジェクトを削除します。
oc delete project amq-online-infra
4.2. Ansible を使用した AMQ Online のアンインストール
Ansible を使用して AMQ Online をアンインストールするには、AMQ Online のインストールに使用したものと同じインベントリーファイルを使用する必要があります。
Playbook は amq-online-infra
プロジェクトを削除します。
手順
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 をアンインストールします。
手順
cluster-admin
権限を持つユーザーとしてログインします。oc login -u system:admin
すべての AddressSpace インスタンス
を
削除します。oc delete addressspaces -A --all --timeout=600s
サブスクリプションを削除します(
amq-online
は、インストールで使用されるサブスクリプションの名前に置き換えます)。oc delete subscription amq-online -n amq-online-infra
Operator の CSV を削除します。
oc delete csv -l app=enmasse -n amq-online-infra
残りのリソースを削除します(
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
(任意手順: 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 をアンインストールします。
手順
- Project リストから、AMQ Online をインストールしたプロジェクトを選択します。
- Catalog → Operator Management をクリックします。Operator Management ページが開きます。
- Operator Subscriptions タブをクリックします。
- アンインストールする AMQ Online Operator を見つけます。右端の列で、垂直記号のアイコンをクリックし、Remove Subscription を選択します。
Remove Subscription ウィンドウでプロンプトが表示されたら、Also completely remove the AMQ Online Operator from the selected namespace チェックボックスを選択して、インストールに関連するすべてのコンポーネントを削除します。
- 削除 をクリックします。AMQ Online Operator は実行を停止し、更新を受信しなくなります。
以下のコマンドを実行して残りのリソースを削除します(
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
(任意手順: 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 で実行する必要があります。
手順
設定例を保存します。
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
設定例を適用します。
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. アドレス空間プランの作成
手順
サービスの admin としてログインします。
oc login -u system:admin
AMQ Online がインストールされているプロジェクトを選択します。
oc project amq-online-infra
アドレス空間プランの定義を作成します。
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
アドレス空間プランを作成します。
oc create -f restrictive-plan.yaml
スキーマが更新され、プランが含まれていることを確認します。
oc get addressspaceschema standard -o yaml
5.4. アドレスプラン
アドレスプランでは、特定のアドレスの予想されるリソース使用量を指定します。すべてのリソースタイプのリソース使用量の合計は、アドレス空間にプロビジョニングされるインフラストラクチャーの量を決定します。単一ルーターおよびブローカー Pod には最大 1 つの使用があります。新規アドレスに追加のリソースが必要で、リソース消費がアドレス空間の制限内にある場合には、増加した負荷を処理するために新しい Pod が自動的に作成されます。
アドレスプランは、AMQ Online サービス Operator によって設定され、アドレスの作成時に選択されます。
AMQ Online には、ほとんどのユースケースで十分なデフォルトのアドレスプランのセットが含まれています。
Address space plans セクションで、アドレススペースプランは small-queue と
の 2 つのアドレスプランを参照します。これらのアドレスプランはカスタムリソースとして保存され、以下のように定義されます。
small-
anycast
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
他のフィールドは 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. アドレスプランの作成
手順
サービスの admin としてログインします。
oc login -u system:admin
AMQ Online がインストールされているプロジェクトを選択します。
oc project amq-online-infra
アドレスプラン定義を作成します。
apiVersion: admin.enmasse.io/v1beta2 kind: AddressPlan metadata: name: small-anycast labels: app: enmasse spec: addressType: anycast resources: router: 0.2
アドレスプランを作成します。
oc create -f small-anycast-plan.yaml
スキーマが更新され、プランが含まれていることを確認します。
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 プローブタイミングの上書き 」を参照してください。
-
使用可能なすべてのインフラストラクチャー設定フィールドの詳細については、ブローカー化された インフラストラクチャー設定フィールドの表 を参照してください。
関連リンク
podTemplate
設定についての詳細は、以下の OpenShift ドキュメントを参照してください。
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
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 プローブタイミングの上書き」 を参照してください。
-
利用可能な標準インフラストラクチャー設定フィールドの詳細は、「標準インフラストラクチャー設定フィールドの 表」 を参照してください。
関連リンク
podTemplate
設定についての詳細は、以下の OpenShift ドキュメントを参照してください。
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
ではname
がbroker
であり、ルーターpodTemplate
の場合は router になります。
- 2 5
- Pod の起動時に OpenShift が試行する回数を指定し、Pod が readiness プローブの Unready とマークされるか、liveness プローブ
の
コンテナーを再起動するまでプローブが失敗する回数を指定します。デフォルト値は3
で、最小値は1
です。 - 3 6
- コンテナーが起動してから最初のプローブが実行されるまでの秒数を指定します。
5.7. インフラストラクチャー設定の作成および編集
新規のインフラストラクチャー設定を作成するか、または既存インフラストラクチャー設定を編集することができます。詳細は、「インフラストラクチャーの 設定」を参照 してください。
手順
サービス Operator としてログインします。
oc login -u developer
AMQ Online がインストールされているプロジェクトに切り替えます。
oc project amq-online-infra
既存のインフラストラクチャー設定を編集するか、以下の例を使用して新規インフラストラクチャー設定を作成します。
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
設定の変更を適用します。
oc apply -f standard-infra-config-example.yaml
再起動時に Pod をモニターします。
oc get pods -w
設定の変更は数分以内に適用されます。
5.8. 認証サービス
認証サービスは、メッセージングクライアントで利用可能な認証および承認エンドポイントを設定するために使用されます。認証サービスは AMQ Online サービス Operator によって設定され、アドレススペースの作成時に指定されます。
認証サービスはカスタムリソースとして設定されます。認証サービスには type( standard
、external
、または 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
の有効な値はnone
、standard
、またはexternal
です。- 2
- (オプション)シークレットには、Red Hat Single Sign-On 管理ユーザーの
パスワードの
フィールドと、admin.password フィールドが含まれている必要があります。指定されていない場合は、無作為に生成され、シークレットに保存されます。admin.
username - 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. 標準
の認証サービスのデプロイ
標準
の認証サービスを実装するには、これをデプロイします。
手順
サービスの admin としてログインします。
oc login -u admin
AMQ Online がインストールされているプロジェクトに切り替えます。
oc project amq-online-infra
AuthenticationService 定義を
作成
します。apiVersion: admin.enmasse.io/v1beta1 kind: AuthenticationService metadata: name: standard-authservice spec: type: standard
認証サービスをデプロイします。
oc create -f standard-authservice.yaml
5.8.1.3. 高可用性(HA)向けの 標準
的な認証サービスのデプロイ
実稼働デプロイメントの場合、OpenShift の更新時またはノードに障害が発生した場合のダウンタイムを短縮するために、認証サービスは高可用性を確保するために設定する必要があります。標準
の認証サービスを HA モードで実装するには、PostgreSQL データベースをバックエンドとして使用し、これをデプロイします。
前提条件
- PostgreSQL データベース。
手順
サービスの admin としてログインします。
oc login -u admin
データベースの認証情報でシークレットを作成します。
oc create secret generic db-creds -n amq-online-infra --from-literal=database-user=admin --from-literal=database-password=secure-password
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
認証サービスをデプロイします。
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
外部認証サーバーは、「外部認証サーバー 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
外部認証サーバーは、「外部認証サーバー 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. 認証サービス なし
のデプロイ
認証サービス なし
を実装するには、そのサービスをデプロイします。
手順
サービスの admin としてログインします。
oc login -u admin
AMQ Online がインストールされているプロジェクトに切り替えます。
oc project amq-online-infra
AuthenticationService 定義を
作成
します。apiVersion: admin.enmasse.io/v1beta1 kind: AuthenticationService metadata: name: none-authservice spec: type: none
認証サービスをデプロイします。
oc create -f none-authservice.yaml
5.9. AMQ Online のロールの例
AMQ Online には、直接使用できる以下のロールのサンプルが提供され、これをモデルとして使用して独自のロールを作成できます。
サービス管理者のリソースに関する詳細は、AMQ Online サービスの管理者リソースの表 を参照してください。
メッセージングテナントリソースに関する詳細は、「 AMQ Online メッセージングテナントリソースの表」を参照して ください。
表5.1 AMQ Online のロールテーブルの例
ロール | 説明 |
---|---|
enmasse.io:tenant-view |
|
enmasse.io:tenant-edit |
|
|
|
第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 クラスターにインストールされている場合は、この手順を省略できます。
手順
cluster-admin
権限を持つユーザーとしてログインします。oc login -u system:admin
(オプション)enmasse
-monitoring
以外の namespace にデプロイする場合は、以下のコマンドを実行し、後続の手順で enmasse-monitoring
を置き換える必要があります。sed -i 's/enmasse-monitoring/my-namespace/' install/components/monitoring-operator/amq-online/*.yaml
enmasse-monitoring namespace を作成します。
oc new-project enmasse-monitoring
monitoring-operator
リソースをデプロイします。oc apply -f install/components/monitoring-operator
monitoring-operator
コンポーネントをデプロイします。oc apply -f install/components/monitoring-deployment
6.3. (オプション)kube-state-metrics エージェントのデプロイ
kube-state-metrics
エージェントを使用して AMQ Online Pod を監視できます。
手順
cluster-admin
権限を持つユーザーとしてログインします。oc login -u system:admin
amq-online-infra
プロジェクトを選択します。oc project amq-online-infra
kube-state-metrics
コンポーネントをデプロイします。oc apply -f install/components/kube-state-metrics
6.4. モニタリングの有効化
デフォルトのインストール設定を使用しない場合、監視を最も簡単にデプロイすることは、enmasse -operator
デプロイメントでモニタリング環境変数を有効化することです。
前提条件
- 同じリソースを管理する Application Monitoring Operator または Operator がインストールされている必要があります。
手順
amq-online-infra 名前空間にラベルを付けます。
oc label namespace amq-online-infra monitoring-key=middleware
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
という名前を指定する必要があります。
手順
デフォルト設定が含まれるシークレットを削除します。
oc delete secret alertmanager-application-monitoring
新しい設定が含まれるシークレットを作成します。
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 および
のラベルを namespace セレクターとして一致するよう設定されたセレクターでamq-online-
infraservicemonitor
リソースを作成します。サービスモニターの例を以下に示します。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 を使用してルーター接続を表示でき ます
。
手順
コマンドラインで以下のコマンドを実行し、以下の手順で必要な podname の
値
を取得します。oc get pods
コマンドラインで、以下のコマンドを実行します。
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 を使用してルーターアドレスを表示でき ます
。
手順
コマンドラインで以下のコマンドを実行し、以下の手順で必要な podname の
値
を取得します。oc get pods
次のコマンドを実行します。
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
6.8.3. qdstat を使用したルーターリンクの表示
qdstat を使用してルーターリンクを表示でき ます
。
手順
コマンドラインで以下のコマンドを実行し、以下の手順で必要な podname の
値
を取得します。oc get pods
コマンドラインで、以下のコマンドを実行します。
oc exec -n namespace -it qdrouterd-podname -- qdstat -b 127.0.0.1:7777 -l Router Links type dir conn id id peer class addr phs cap undel unsett del presett psdrop acc rej rel mod admin oper ==================================================================================================================================================== endpoint in 3 8 250 0 0 3829 0 0 3829 0 0 0 enabled up endpoint out 3 9 local temp.k2RGQNPe6sDMvz4 250 0 0 3829 3829 0 0 0 0 0 enabled up endpoint in 12 10 250 0 0 5 0 0 5 0 0 0 enabled up endpoint out 12 11 local temp.xg+y8I_Tr4Y94LA 250 0 0 5 5 0 0 0 0 0 enabled up endpoint in 645 26 mobile $management 0 50 0 0 1 0 0 1 0 0 0 enabled up endpoint out 645 27 local temp.0BrHJ1O+fi6whyg 50 0 0 0 0 0 0 0 0 0 enabled up
6.8.4. qdstat を使用したリンクルートの表示
qdstat を使用してリンクルートを表示でき ます
。
手順
コマンドラインで以下のコマンドを実行し、以下の手順で必要な podname の
値
を取得します。oc get pods
コマンドラインで、以下のコマンドを実行します。
oc exec -n namespace -it qdrouterd-podname -- qdstat -b 127.0.0.1:7777 --linkroutes Link Routes address dir distrib status ====================================== $lwt in linkBalanced inactive $lwt out linkBalanced inactive
第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. ルーターログの表示
標準
のアドレススペースタイプの場合、ルーターログを表示して、メッセージの送信および受信にクライアントが接続されていない問題のトラブルシューティングを行うことができます。
手順
すべてのルーター Pod を一覧表示し、関連するアドレス空間の Pod を選択します。
oc get pods -l name=qdrouterd -o go-template --template '{{range .items}}{{.metadata.name}}{{"\t"}}{{.metadata.annotations.addressSpace}}{{"\n"}}{{end}}'
Pod のログを表示します。
oc logs pod -c router
7.3. ブローカーログの表示
ブローカー化されたアドレス領域タイプのブローカー または
標準
アドレス領域タイプの場合、ブローカーログを表示して、メッセージの送信および受信にクライアントが接続されていない問題のトラブルシューティングを行うことができます。
手順
すべてのブローカー Pod を一覧表示し、関連するアドレス空間の Pod を選択します。
oc get pods -l role=broker -o go-template --template '{{range .items}}{{.metadata.name}}{{"\t"}}{{.metadata.annotations.addressSpace}}{{"\n"}}{{end}}'
Pod のログを表示します。
oc logs pod
7.4. ルーターの AMQP プロトコルトレースの有効化
診断の目的で、ルーターの AMQP プロトコルトレースを有効にできます。これは、クライアントの接続に関連する問題のトラブルシューティングやメッセージの送受信に関する問題のトラブルシューティングに役立ちます。ルーターに対してプロトコルトレースを有効にする方法は 2 つあります。
-
qdmange コマンドを使用して、1 つのルーターのプロトコルトレースを動的に有効または無効
に
できます。この方法では、ルーターを再起動する必要がなくなります。この設定は、次回ルーターの再起動時に失われます。 -
または、standardinfraconfig を使用して、すべてのアドレス空間のすべてのルーターのプロトコルトレースを
有効
にする standardinfraconfig に適用できます
。この方法では、すべてのルーターが再起動します。
プロトコルトレースを有効にすると、ルーターの CPU オーバーヘッドが増え、メッセージングのパフォーマンスが低下する可能性があります。また、ログ保持システムに関連するディスク容量要件を増やすこともできます。したがって、できるだけ短期にプロトコルトレースを有効にすることが推奨されます。
7.4.1. 単一ルーターのプロトコルトレースを動的に有効化
手順
サービス Operator としてログインします。
oc login -u developer
AMQ Online がインストールされているプロジェクトに切り替えます。
oc project amq-online-infra
すべてのルーター Pod を一覧表示し、関連するアドレス空間の Pod を選択します。
oc get pods -l name=qdrouterd -o go-template --template '{{range .items}}{{.metadata.name}}{{"\t"}}{{.metadata.annotations.addressSpace}}{{"\n"}}{{end}}'
単一ルーターのプロトコルトレースを有効にします。
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
プロトコルトレースが含まれる Pod のログを表示します。
oc logs pod
プロトコルトレースを無効にします。
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 環境
変数を使用したプロトコルトレースの有効化
手順
サービス Operator としてログインします。
oc login -u developer
AMQ Online がインストールされているプロジェクトに切り替えます。
oc project amq-online-infra
懸念される
アドレス
空間のアドレス名を決定します。oc get addressspace -n namespace address-space-name --output 'jsonpath={.spec.plan}{"\n"}'
addressspaceplan 名
の
standardinfraconfig 名を判別し
ます。oc get addressspaceplan address-space-plan --output 'jsonpath={.spec.infraConfigRef}{"\n"}'
standardinfraconfig を使用して、すべてのアドレス空間のすべてのルーターに対してプロトコルトレースを有効に
し
ます。oc patch standardinfraconfig standardinfraconfig-name --type=merge -p '{"spec":{"router":{"podTemplate":{"spec":{"containers":[{"env":[{"name":"PN_TRACE_FRM","value":"true"}],"name":"router"}]}}}}}'
プロトコルトレースが含まれる Pod のログを表示します。
oc logs pod
プロトコルトレースを無効にします。
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 のオーバーヘッドが増え、メッセージングのパフォーマンスが低下する可能性があります。また、ログ保持システムに関連するディスク容量要件を増やすこともできます。したがって、できるだけ短期にプロトコルトレースを有効にすることが推奨されます。
手順
サービス Operator としてログインします。
oc login -u developer
AMQ Online がインストールされているプロジェクトに切り替えます。
oc project amq-online-infra
懸念される
アドレス
空間のアドレス名を決定します。oc get addressspace -n namespace address-space-name --output 'jsonpath={.spec.plan}{"\n"}'
addressspaceplan 名
の
standardinfraconfigまたは brokeredinfraconfig
名を判別し
ます。oc get addressspaceplan address-space-plan --output 'jsonpath={.spec.infraConfigRef}{"\n"}'
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"}]}}}}}'
プロトコルトレースが含まれる Pod のログを表示します。
oc logs pod
プロトコルトレースを無効にします。
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 を公開しません。
手順
サービスの admin としてログインします。
oc login -u admin
AMQ Online がインストールされているプロジェクトに切り替えます。
oc project amq-online-infra
アドレス空間の uuid を取得します。
oc get addressspace myspace -o jsonpath='{.metadata.annotations.enmasse\.io/infra-uuid}'
アドレス空間のブローカーサポートクレデンシャル(ユーザー名およびパスワード)を取得します。
oc get secret broker-support-uuid --template='{{.data.username}}' | base64 --decode oc get secret broker-support-uuid --template='{{.data.password}}' | base64 --decode
ブローカー Pod 名を特定します。
oc get pods -l infraUuid=uuid,role=broker
標準アドレスには多くのブローカーが含まれる場合があります。特定のキューをホストするブローカーを特定するには、以下のコマンドを使用します。
oc get address address-resource-name -o jsonpath="{.status.brokerStatuses[*].containerId}"
ブローカーの 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 オーバーヘッドが増え、メッセージングのパフォーマンスが低下する可能性があります。また、ログ保持システムに関連するディスク領域の要件も増大する可能性があります。したがって、可能な限り早期にログの詳細レベルを上げることが推奨されます。
手順
サービス Operator としてログインします。
oc login -u developer
AMQ Online がインストールされているプロジェクトに切り替えます。
oc project amq-online-infra
すべてのブローカー Pod を一覧表示し、関連するアドレス空間の Pod を選択します。
oc get pods -l role=broker -o go-template --template '{{range .items}}{{.metadata.name}}{{"\t"}}{{.metadata.annotations.addressSpace}}{{"\n"}}{{end}}'
単一ブローカーのロギングレベルを変更するには、
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
プロトコルトレースが含まれる Pod のログを表示します。
oc logs pod
通常のロギングレベルに戻すには、
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 では、ブローカーに割り当てられるメモリーの合計量だけを制限できます。各アドレスで使用されるメモリーの量を制限することはできません。
ブローカーは、すべてのメッセージをディスクに永続化します。BLOCK
、FAIL
、または 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
ポリシーを使用すると、メッセージがジャーナルとは別に保存されるため(常にメモリーに合致する必要がある)、メモリー要件を減らすことができます。FAIL
、BLOCK
、または 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 には agent
と standard-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 つのコンポーネント( admin
、router
、および broker
)には、スクリプトが意図した通りに機能するように制限を指定する必要があります。
手順
以下のスクリプトを
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"
以下のコマンドを使用してスクリプトを実行します。
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 を設定します。 このサービス設定には、以下のカスタムリソースタイプのインスタンスが含まれます。
カスタムリソースタイプ | 説明 |
---|---|
| メッセージングクライアントの認証に使用される認証サービスインスタンスを指定します。 |
| 利用可能なアドレスプランや使用可能なルーターおよびブローカーリソースの量など、このプランを使用してアドレス空間で利用可能なメッセージングリソースを指定します。 |
| アドレスが複数のアドレスに指定できるルーターやブローカーの一部など、このプランを使用して特定のアドレスで使用されるメッセージングリソースを指定します。 |
|
|
|
ブローカー化された |
これらのカスタムリソースの作成時に、これらのカスタムリソースはメッセージングテナントで利用可能な設定を定義します。
以下の図は、異なるサービス設定リソースと、メッセージングテナントリソースがどのように参照されるかの関係を示しています。
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 の使用には以下の要件があります。エンジニアリング作業の場合、アドレススペースに接続できるユーザーを制限できます。
この要件を満たすには、ブローカー化されたインフラストラクチャー設定でネットワークポリシーを設定する必要があります。ネットワークポリシーについての詳細は、を参照してください。
- OpenShift Container Platform 3.11 では、ネットワークポリシーの有効化についての ドキュメントを参照してください。
- ネットワークポリシー についての OpenShift Container Platform 4.x ドキュメント
ネットワークポリシー設定を示すブローカー化されたインフラストラクチャー設定の例
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 | 説明 |
---|---|
| アドレスプランを指定します。 |
| アドレス空間プランを指定します。 |
|
addresspace で利用可能なサービスの特性を定義し |
| ブローカー化されたアドレス空間のインフラストラクチャー設定を指定します。詳細は、「ブローカー化された インフラストラクチャー設定フィールドの表 」を参照してください。 |
| 標準アドレス空間のインフラストラクチャー設定を指定します。詳細は、「 標準インフラストラクチャー設定フィールドの表 」を参照してください。 |
付録B ブローカー化されたインフラストラクチャー設定フィールド
この表には、ブローカー化されたインフラストラクチャー設定で利用可能なフィールドと簡単な説明が記載されています。
表B.1 ブローカー化されたインフラストラクチャー設定フィールドテーブル
フィールド | 説明 |
| 使用される AMQ Online バージョンを指定します。アップグレード時に、AMQ Online はこのフィールドを使用して、インフラストラクチャーを要求したバージョンにアップグレードするかどうかを判断します。 |
| admin Pod に割り当てられるメモリーの量を指定します。 |
| admin Pod に追加されるラベルを指定します。 |
| admin Pod のアフィニティー設定を指定して、Pod が実行される特定のノードの場所を指定したり、他のインスタンスと共に実行できない場合などを指定できます。 |
| OpenShift クラスターの他の Pod に対して管理 Pod の優先順位を優先できるように、管理 Pod に使用する優先順位クラスを指定します。 |
| admin Pod の容認設定を指定します。これにより、この Pod は他の Pod を実行できない特定のノードで実行できるようになります。 |
|
キューがいっぱいになると実行するアクションを指定します( |
| ブローカーのキューに使用されるメモリーの最大量を指定します。 |
| ブローカーに割り当てられるメモリーの量を指定します。 |
| ブローカーに要求されるストレージの容量を指定します。 |
| ブローカー Pod に追加されるラベルを指定します。 |
| Pod が実行される特定のノードの場所を指定するようにブローカー Pod のアフィニティー設定を指定します。または、他のインスタンスと共に実行できない場合、またはこれが他のインスタンスと共に実行できない場合を指定できます。 |
| OpenShift クラスターの他の Pod に対してブローカー Pod の優先順位付けを可能にするために、ブローカー Pod に使用する優先順位クラスを指定します。 |
| ブローカー Pod の容認設定を指定します。これにより、この Pod は他の Pod を実行できない特定のノードで実行できるようになります。 |
| ブローカー Pod の セキュリティーコンテキスト を指定します。 |
| ブローカー Pod の環境変数を指定します。 |
| OpenShift がブローカー Pod の起動時に試みる回数を指定し、コンテナーを再起動する前にプローブが失敗する回数を指定します。 |
| ブローカー Pod のプローブ遅延値を秒単位で指定します。 |
| ブローカー Pod のプローブタイムアウト値を秒単位で指定します。 |
|
ブローカー Pod の起動時に OpenShift が試行する回数を指定し、Pod に Unready のマークが付けられる前にプローブが失敗する回数を指定し |
| ブローカー Pod のプローブ遅延値を秒単位で指定します。 |
| ブローカー Pod のプローブタイムアウト値を秒単位で指定します。 |
| CPU およびメモリーのブローカー Pod リソース要求および制限を指定します。 |
| ブローカーの永続ボリュームに使用するストレージクラスを指定します。 |
|
永続ボリュームがサイズ変更をサポートする場合、この値を |
付録C 標準のインフラストラクチャー設定フィールド
以下の表には、標準インフラストラクチャー設定で利用可能なフィールドと簡単な説明が記載されています。
表C.1 標準のインフラストラクチャー設定フィールドテーブル
フィールド | 説明 |
| 使用される AMQ Online バージョンを指定します。アップグレード時に、AMQ Online はこのフィールドを使用して、インフラストラクチャーを要求したバージョンにアップグレードするかどうかを判断します。 |
| admin Pod に割り当てられるメモリーの量を指定します。 |
| admin Pod に追加されるラベルを指定します。 |
| admin Pod のアフィニティー設定を指定して、Pod が実行される特定のノードの場所を指定したり、他のインスタンスと共に実行できない場合などを指定できます。 |
| OpenShift クラスターの他の Pod に対して管理 Pod の優先順位を優先できるように、管理 Pod に使用する優先順位クラスを指定します。 |
| admin Pod の容認設定を指定します。これにより、この Pod は他の Pod を実行できない特定のノードで実行できるようになります。 |
|
キューがいっぱいになると実行するアクションを指定します( |
| ブローカーのキューに使用されるメモリーの最大量を指定します。 |
| ブローカーに割り当てられるメモリーの量を指定します。 |
| ブローカーに要求されるストレージの容量を指定します。 |
| ブローカー Pod に追加されるラベルを指定します。 |
| Pod が実行される特定のノードの場所を指定するようにブローカー Pod のアフィニティー設定を指定します。または、他のインスタンスと共に実行できない場合、またはこれが他のインスタンスと共に実行できない場合を指定できます。 |
| OpenShift クラスターの他の Pod に対してブローカー Pod の優先順位付けを可能にするために、ブローカー Pod に使用する優先順位クラスを指定します。 |
| ブローカー Pod の容認設定を指定します。これにより、この Pod が他の Pod を実行できない特定のノードで実行できるようになります。 |
| ブローカー Pod の セキュリティーコンテキスト を指定します。 |
| ブローカー Pod の環境変数を指定します。 |
| OpenShift がブローカー Pod の起動時に試みる回数を指定し、コンテナーを再起動する前にプローブが失敗する回数を指定します。 |
| ブローカー Pod のプローブ遅延値を秒単位で指定します。 |
| ブローカー Pod のプローブタイムアウト値を秒単位で指定します。 |
|
ブローカー Pod の起動時に OpenShift が試行する回数を指定し、Pod に Unready のマークが付けられる前にプローブが失敗する回数を指定し |
| ブローカー Pod のプローブ遅延値を秒単位で指定します。 |
| ブローカー Pod のプローブタイムアウト値を秒単位で指定します。 |
| CPU およびメモリーのブローカー Pod リソース要求および制限を指定します。 |
| ルーターへの接続に使用する AMQP のアイドルタイムアウトを指定します。 |
| ルーターへの接続のワーカースレッドの数を指定します。 |
| ブローカーの永続ボリュームに使用するストレージクラスを指定します。 |
|
永続ボリュームがサイズ変更をサポートする場合、この値を |
|
拒否された配信結果が変更失敗として対処します。これにより、メッセージはデフォルトでコンシューマーに再表示されます。デフォルト値は |
|
送信側を再試行するための一時的な配信エラーについて変更された応答。デフォルト値は |
|
大きなメッセージとして処理されるメッセージの最小サイズを指定します。大きなメッセージは、ジャーナルの参照で常にディスクにページングされます。デフォルト値は |
| ルーターに割り当てられるメモリーの量を指定します。 |
| ルーターの AMQP リンクで発行されたデフォルトのクレジット数を指定します。 |
| セキュアなハンドシェイクの開始を待つ時間(秒単位)を指定します。 |
| 実行するルーター Pod の最小数を指定します。高可用性(HA)設定には 2 つ以上必要です。 |
| ルーター Pod に追加されるラベルを指定します。 |
| ルーター Pod のアフィニティー設定を指定します。これにより、Pod が実行される特定のノードの場所を指定できます。または、他のインスタンスと共に実行できない場合は、ルーター Pod のアフィニティー設定を指定します。 |
| ルーター Pod に使用する優先順位クラスを指定します。これにより、OpenShift クラスターの他の Pod に対してルーター Pod の優先順位付けが可能になります。 |
| ルーター Pod の容認設定を指定します。これにより、この Pod が他の Pod を実行できない特定のノードで実行できるようになります。 |
| ルーター Pod の セキュリティーコンテキスト を指定します。 |
| ルーター Pod の環境変数を指定します。 |
| OpenShift がルーター Pod の起動時に試行し、プローブがコンテナーを再起動する前に失敗する回数を指定します。 |
| ルーター Pod のプローブ遅延値を秒単位で指定します。 |
| ルーター Pod のプローブタイムアウト値を秒単位で指定します。 |
|
ルーター Pod の起動時に OpenShift が試行する回数を指定し、プローブに Unready のマークが付け |
| ルーター Pod のプローブ遅延値を秒単位で指定します。 |
| ルーター Pod のプローブタイムアウト値を秒単位で指定します。 |
| CPU およびメモリーのルーター Pod リソース要求および制限を指定します。 |
| すべてのルーターリスナーに使う AMQP のアイドルタイムアウトを指定します。 |
| ルーターに使用するワーカースレッドの数を指定します。 |
| 許可されるルーター接続の最大数を指定します。 |
| ユーザーごとに許容されるルーター接続の最大数を指定します。 |
| ホストごとに許容されるルーター接続の最大数を指定します。 |
| ルーター接続ごとに許容されるセッションの最大数を指定します。 |
| ルーター接続ごとに許容される送信側の最大数を指定します。 |
| ルーター接続ごとに許可されるレシーバーの最大数を指定します。 |
| AMQP メッセージ転送の最大サイズをバイト単位で指定します。この制限は、クライアント接続との間で転送します。ゼロを設定すると、この制限が無効になります。 |
|
|
付録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 | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
本文 |
body |
D.1.2.1.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
201 | 作成済み | |
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 | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
クエリー |
labelSelector | 返されたオブジェクトの一覧をラベルで制限するセレクター。デフォルトは everything です。 | 文字列 |
D.1.2.2.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
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 | 読み取る AddressSpacePlan の名前。 | 文字列 |
パス |
namespace | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
D.1.2.3.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
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 | 置き換える AddressSpacePlan の名前。 | 文字列 |
パス |
namespace | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
本文 |
body |
D.1.2.4.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
201 | 作成済み | |
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 | 削除する AddressSpacePlan の名前。 | 文字列 |
パス |
namespace | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
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 | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
本文 |
body |
D.1.2.6.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
201 | 作成済み | |
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 | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
クエリー |
labelSelector | 返されたオブジェクトの一覧をラベルで制限するセレクター。デフォルトは everything です。 | 文字列 |
D.1.2.7.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
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 | 読み込むアドレスの名前 | 文字列 |
パス |
namespace | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
D.1.2.8.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
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 | 置き換えるアドレスの名前 | 文字列 |
パス |
namespace | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
本文 |
body |
D.1.2.9.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
201 | 作成済み | |
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 | 削除するアドレスの名前 | 文字列 |
パス |
namespace | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
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 | 置き換えるアドレスの名前 | 文字列 |
パス |
namespace | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
本文 |
body |
D.1.2.11.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
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 | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
本文 |
body |
D.1.2.12.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
201 | 作成済み | |
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 | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
クエリー |
labelSelector | 返されたオブジェクトの一覧をラベルで制限するセレクター。デフォルトは everything です。 | 文字列 |
D.1.2.13.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
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 | 読み込む AddressSpace の名前 | 文字列 |
パス |
namespace | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
D.1.2.14.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
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 | 置き換える AddressSpace の名前 | 文字列 |
パス |
namespace | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
本文 |
body |
D.1.2.15.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
201 | 作成済み | |
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 | 削除する AddressSpace の名前 | 文字列 |
パス |
namespace | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
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 | 置き換える AddressSpace の名前 | 文字列 |
パス |
namespace | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
本文 |
body |
D.1.2.17.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
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 | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
本文 |
body |
D.1.2.18.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
201 | 作成済み | |
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 | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
クエリー |
labelSelector | 返されたオブジェクトの一覧をラベルで制限するセレクター。デフォルトは everything です。 | 文字列 |
D.1.2.19.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
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 | 読み取る MessagingUser の名前。名前に addressSpace および dot separator を含める必要があります(「 myspace.user1」)。 | 文字列 |
パス |
namespace | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
D.1.2.20.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
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 | 置き換える MessagingUser の名前。名前に addressSpace および dot separator を含める必要があります(「 myspace.user1」)。 | 文字列 |
パス |
namespace | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
本文 |
body |
D.1.2.21.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
201 | 作成済み | |
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 | 削除する MessagingUser の名前。名前に addressSpace および dot separator を含める必要があります(「 myspace.user1」)。 | 文字列 |
パス |
namespace | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
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 | 置き換える MessagingUser の名前。名前に addressSpace および dot separator を含める必要があります(「 myspace.user1」)。 | 文字列 |
パス |
namespace | チームおよびプロジェクトなどのオブジェクト名および認証スコープ | 文字列 |
本文 |
body |
D.1.2.23.3. 応答
HTTP コード | 説明 | スキーマ |
---|---|---|
200 | OK | |
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 | オブジェクト |
patch | <patch > 配列 |
D.1.3.2. ObjectMeta
ObjectMeta は、すべての永続化されたリソースに必要な必要のあるメタデータです。これには、ユーザーが作成する必要のある全オブジェクトが含まれます。
名前 | スキーマ |
---|---|
name | 文字列 |
namespace | 文字列 |
D.1.3.3. パッチ
名前 | 説明 | スキーマ |
---|---|---|
from | 操作コピーに必要、置換 | 文字列 |
op | enum(add, remove、replace、move、copy、test) | |
path | スラッシュで区切られた形式 | 文字列 |
value | 操作の追加、置換、テストに必要です。 | 文字列 |
D.1.3.4. 状態
status は、他のオブジェクトを返さない呼び出しの戻り値です。
名前 | 説明 | スキーマ |
---|---|---|
code | このステータスに推奨される HTTP 戻りコード(設定されていない場合には 0)。 | 整数(int32) |
D.1.3.5. io.enmasse.admin.v1beta1.BrokeredInfraConfig
名前 | スキーマ |
---|---|
apiVersion | enum (admin.enmasse.io/v1beta1) |
kind | enum(BrokeredInfraConfig) |
metadata | |
spec |
D.1.3.6. io.enmasse.admin.v1beta1.BrokeredInfraConfigList
名前 | スキーマ |
---|---|
apiVersion | enum (admin.enmasse.io/v1beta1) |
items | |
kind | enum (BrokeredInfraConfigList) |
D.1.3.7. io.enmasse.admin.v1beta1.BrokeredInfraConfigSpec
名前 | スキーマ |
---|---|
admin | |
broker | |
networkPolicy | |
version | 文字列 |
networkPolicy
名前 | スキーマ |
---|---|
egress | |
ingress |
D.1.3.8. io.enmasse.admin.v1beta1.BrokeredInfraConfigSpecAdmin
名前 | スキーマ |
---|---|
podTemplate | |
resources |
resources
名前 | スキーマ |
---|---|
memory | 文字列 |
D.1.3.9. io.enmasse.admin.v1beta1.BrokeredInfraConfigSpecBroker
名前 | スキーマ |
---|---|
addressFullPolicy | enum(PAGE、BLOCK、FAIL) |
podTemplate | |
resources | |
storageClassName | 文字列 |
updatePersistentVolumeClaim | ブール値 |
resources
名前 | スキーマ |
---|---|
memory | 文字列 |
storage | 文字列 |
D.1.3.10. io.enmasse.admin.v1beta1.InfraConfigPodSpec
metadata
名前 | スキーマ |
---|---|
labels | オブジェクト |
spec
名前 | スキーマ |
---|---|
affinity | オブジェクト |
containers | <containers > 配列 |
priorityClassName | 文字列 |
securityContext | オブジェクト |
tolerations | < オブジェクト > 配列 |
containers
名前 | スキーマ |
---|---|
resources | オブジェクト |
D.1.3.11. io.enmasse.admin.v1beta1.StandardInfraConfig
名前 | スキーマ |
---|---|
apiVersion | enum (admin.enmasse.io/v1beta1) |
kind | enum(StandardInfraConfig) |
metadata | |
spec |
D.1.3.12. io.enmasse.admin.v1beta1.StandardInfraConfigList
名前 | スキーマ |
---|---|
apiVersion | enum (admin.enmasse.io/v1beta1) |
items | |
kind | enum(StandardInfraConfigList) |
D.1.3.13. io.enmasse.admin.v1beta1.StandardInfraConfigSpec
名前 | スキーマ |
---|---|
admin | |
broker | |
networkPolicy | |
router | |
version | 文字列 |
networkPolicy
名前 | スキーマ |
---|---|
egress | |
ingress |
D.1.3.14. io.enmasse.admin.v1beta1.StandardInfraConfigSpecAdmin
名前 | スキーマ |
---|---|
podTemplate | |
resources |
resources
名前 | スキーマ |
---|---|
memory | 文字列 |
D.1.3.15. io.enmasse.admin.v1beta1.StandardInfraConfigSpecBroker
名前 | スキーマ |
---|---|
addressFullPolicy | enum(PAGE、BLOCK、FAIL) |
connectorIdleTimeout | integer |
connectorWorkerThreads | integer |
podTemplate | |
resources | |
storageClassName | 文字列 |
updatePersistentVolumeClaim | ブール値 |
resources
名前 | スキーマ |
---|---|
memory | 文字列 |
storage | 文字列 |
D.1.3.16. io.enmasse.admin.v1beta1.StandardInfraConfigSpecRouter
名前 | スキーマ |
---|---|
idleTimeout | integer |
initialHandshakeTimeout | integer |
linkCapacity | integer |
minAvailable | integer |
minReplicas | integer |
podTemplate | |
policy | |
resources | |
workerThreads | integer |
policy
名前 | スキーマ |
---|---|
maxConnections | integer |
maxConnectionsPerHost | integer |
maxConnectionsPerUser | integer |
maxReceiversPerConnection | integer |
maxSendersPerConnection | integer |
maxSessionsPerConnection | integer |
resources
名前 | スキーマ |
---|---|
memory | 文字列 |
D.1.3.17. io.enmasse.admin.v1beta2.AddressPlan
名前 | スキーマ |
---|---|
apiVersion | enum (admin.enmasse.io/v1beta2) |
kind | enum(AddressPlan) |
metadata | |
spec |
D.1.3.18. io.enmasse.admin.v1beta2.AddressPlanList
名前 | スキーマ |
---|---|
apiVersion | enum (admin.enmasse.io/v1beta2) |
items | < io.enmasse.admin.v1beta2.AddressPlan > array |
kind | enum(AddressPlanList) |
D.1.3.19. io.enmasse.admin.v1beta2.AddressPlanSpec
名前 | スキーマ |
---|---|
addressType | 文字列 |
displayName | 文字列 |
displayOrder | integer |
longDescription | 文字列 |
partitions | integer |
resources | |
shortDescription | 文字列 |
resources
名前 | スキーマ |
---|---|
broker | 数値 |
router | 数値 |
D.1.3.20. io.enmasse.admin.v1beta2.AddressSpacePlan
名前 | スキーマ |
---|---|
apiVersion | enum (admin.enmasse.io/v1beta2) |
kind | enum (AddressSpacePlan) |
metadata | |
spec |
D.1.3.21. io.enmasse.admin.v1beta2.AddressSpacePlanList
名前 | スキーマ |
---|---|
apiVersion | enum (admin.enmasse.io/v1beta2) |
items | |
kind | enum (AddressSpacePlanList) |
D.1.3.22. io.enmasse.admin.v1beta2.AddressSpacePlanSpec
名前 | スキーマ |
---|---|
addressPlans | < 文字列 > 配列 |
addressSpaceType | 文字列 |
displayName | 文字列 |
displayOrder | integer |
infraConfigRef | 文字列 |
longDescription | 文字列 |
resourceLimits | |
shortDescription | 文字列 |
resourceLimits
名前 | スキーマ |
---|---|
aggregate | 数値 |
broker | 数値 |
router | 数値 |
D.1.3.23. io.enmasse.user.v1beta1.MessagingUser
名前 | スキーマ |
---|---|
apiVersion | enum (user.enmasse.io/v1beta1) |
kind | enum(MessagingUser) |
metadata | |
spec |
D.1.3.24. io.enmasse.user.v1beta1.MessagingUserList
名前 | スキーマ |
---|---|
apiVersion | enum (user.enmasse.io/v1beta1) |
items | < io.enmasse.user.v1beta1.MessagingUser > array |
kind | enum(MessagingUserList) |
D.1.3.25. io.enmasse.user.v1beta1.UserSpec
名前 | スキーマ |
---|---|
authentication | |
authorization | <authorization > 配列 |
username | 文字列 |
認証
名前 | 説明 | スキーマ |
---|---|---|
federatedUserid | 'federated' タイプが指定されている場合には、ユーザーのユーザー ID を federate にします。 | 文字列 |
federatedUsername | 'federated' タイプが指定されている場合に、フェデレーションするユーザーのユーザー名。 | 文字列 |
password | 'password' タイプが指定されている場合は、password の base64 でエンコードされた値。 | 文字列 |
provider | 'federated' タイプが指定されている場合にフェデレーションされたアイデンティティーに使用するプロバイダーの名前。 | 文字列 |
type | enum(パスワード、serviceaccount) |
認可
名前 | スキーマ |
---|---|
addresses | < 文字列 > 配列 |
operations | < enum(送信、recv、view、manage)> 配列 |
D.1.3.26. io.enmasse.v1beta1.Address
名前 | スキーマ |
---|---|
apiVersion | enum (enmasse.io/v1beta1) |
kind | enum(Address) |
metadata | |
spec | |
status |
D.1.3.27. io.enmasse.v1beta1.AddressList
名前 | 説明 | スキーマ |
---|---|---|
apiVersion |
Default : | enum (enmasse.io/v1beta1) |
items | < io.enmasse.v1beta1.Address > array | |
kind | enum(AddressList) |
D.1.3.28. io.enmasse.v1beta1.AddressSpace
名前 | スキーマ |
---|---|
apiVersion | enum (enmasse.io/v1beta1) |
kind | enum(AddressSpace) |
metadata | |
spec | |
status |
D.1.3.29. io.enmasse.v1beta1.AddressSpaceList
名前 | 説明 | スキーマ |
---|---|---|
apiVersion |
Default : | enum (enmasse.io/v1beta1) |
items | < io.enmasse.v1beta1.AddressSpace > array | |
kind | enum(AddressSpaceList) |
D.1.3.30. io.enmasse.v1beta1.AddressSpaceSpec
名前 | 説明 | スキーマ |
---|---|---|
authenticationService | ||
connectors | 作成するコネクターの一覧。 | |
endpoints | <endpoints > 配列 | |
networkPolicy | ||
plan | 文字列 | |
type |
authenticationService
名前 | スキーマ |
---|---|
name | 文字列 |
overrides | |
type | 文字列 |
overrides
名前 | スキーマ |
---|---|
host | 文字列 |
port | integer |
realm | 文字列 |
endpoint
名前 | スキーマ |
---|---|
cert | |
exports | <exports > 配列 |
expose | |
name | 文字列 |
service | 文字列 |
cert
名前 | スキーマ |
---|---|
provider | 文字列 |
secretName | 文字列 |
tlsCert | 文字列 |
tlsKey | 文字列 |
exports
名前 | スキーマ |
---|---|
kind | enum(ConfigMap、シークレット、サービス) |
name | 文字列 |
expose
名前 | スキーマ |
---|---|
annotations | オブジェクト |
loadBalancerPorts | < 文字列 > 配列 |
loadBalancerSourceRanges | < 文字列 > 配列 |
routeHost | 文字列 |
routeServicePort | 文字列 |
routeTlsTermination | 文字列 |
type | enum(ルート、ロードバランサー) |
networkPolicy
名前 | スキーマ |
---|---|
egress | |
ingress |
D.1.3.31. io.enmasse.v1beta1.AddressSpaceSpecConnector
名前 | 説明 | スキーマ |
---|---|---|
addresses | このアドレス空間からアクセスできるようにするアドレス。 | < addresses > array |
credentials | エンドポイントへの接続時に使用される認証情報。'username' および 'password' または 'secret' のいずれかを定義する必要があります。 | |
endpointHosts | 接続先のホストの一覧1 つ以上のエントリーを含める必要があります。 | < endpointHosts > array |
name | コネクターの名前。 | 文字列 |
tls | コネクターの TLS 設定。指定のない場合は TLS は使用されません。 |
addresses
名前 | 説明 | スキーマ |
---|---|---|
name | アドレスパターンの識別子。パターンを一意に識別するために使用されます | 文字列 |
pattern | アドレスを照合するために使用されるパターン。パターンの前にコネクター名とスラッシュ('myconnector/')が付けられます。パターンは、スラッシュ / で区切られた 1 つ以上のトークンで構成されます。トークンは、* 文字、# 文字、または /、*、または # を含まない一連の文字のいずれかになります。* トークンはすべての単一のトークンと一致します。# トークンはゼロ以上のトークンと一致します。* # より優先度が高く、完全一致が優先されます。 | 文字列 |
credentials
名前 | 説明 | スキーマ |
---|---|---|
password | コネクターに使用するパスワード。'value' または 'secret' のいずれかを指定する必要があります。 | |
username | コネクターに使用するユーザー名。'value' または 'secret' のいずれかを指定する必要があります。 |
パスワード
名前 | スキーマ |
---|---|
value | 文字列 |
valueFromSecret |
valueFromSecret
名前 | 説明 | スキーマ |
---|---|---|
key |
パスワードエントリーの検索に使用するキー。 | 文字列 |
name | パスワードを含むシークレットの名前。 | 文字列 |
username
名前 | スキーマ |
---|---|
value | 文字列 |
valueFromSecret |
valueFromSecret
名前 | 説明 | スキーマ |
---|---|---|
key |
ユーザー名エントリーの検索に使用するキー。 | 文字列 |
name | ユーザー名を含むシークレットの名前。 | 文字列 |
endpointHosts
名前 | 説明 | スキーマ |
---|---|---|
host | 接続するホスト。 | 文字列 |
port | 接続するポート。 | integer |
tls
名前 | 説明 | スキーマ |
---|---|---|
caCert | コネクターが使用する CA 証明書。'value' または 'secret' のいずれか。 | |
clientCert | コネクターによって使用されるクライアント証明書。'value' または 'secret' のいずれか。 |
caCert
名前 | 説明 | スキーマ |
---|---|---|
value | CA 証明書の PEM でエンコードされた値 | 文字列 |
valueFromSecret | コネクターによって使用される CA 証明書が含まれるシークレット。 |
valueFromSecret
名前 | 説明 | スキーマ |
---|---|---|
key |
CA 証明書エントリーの検索に使用するキー。 | 文字列 |
name | CA 証明書が含まれるシークレットの名前。 | 文字列 |
clientCert
名前 | 説明 | スキーマ |
---|---|---|
value | クライアント証明書の PEM でエンコードされた値 | 文字列 |
valueFromSecret | コネクターによって使用されるクライアント証明書が含まれるシークレット。 |
valueFromSecret
名前 | 説明 | スキーマ |
---|---|---|
key |
クライアント証明書エントリーの検索に使用するキー。 | 文字列 |
name | クライアント証明書を含むシークレットの名前。 | 文字列 |
D.1.3.32. io.enmasse.v1beta1.AddressSpaceStatus
名前 | 説明 | スキーマ |
---|---|---|
connectors | ステータスのあるコネクターの一覧。 | |
endpointStatuses | < endpointStatuses > array | |
isReady | ブール値 | |
messages | < 文字列 > 配列 |
endpointStatuses
名前 | スキーマ |
---|---|
cert | 文字列 |
externalHost | 文字列 |
externalPorts | < externalPorts > array |
name | 文字列 |
serviceHost | 文字列 |
servicePorts | < servicePorts > array |
externalPorts
名前 | スキーマ |
---|---|
name | 文字列 |
port | integer |
servicePorts
名前 | スキーマ |
---|---|
name | 文字列 |
port | integer |
D.1.3.33. io.enmasse.v1beta1.AddressSpaceStatusConnector
名前 | 説明 | スキーマ |
---|---|---|
isReady | コネクターが想定どおりに動作している場合は 'true'、そうでない場合は 'false'。 | ブール値 |
messages | コネクターの状態を記述するメッセージ。 | < 文字列 > 配列 |
name | コネクターの名前。 | 文字列 |
D.1.3.34. io.enmasse.v1beta1.AddressSpaceType
AddressSpaceType はアドレス空間のタイプ(標準、ブローカー)です。それぞれの種別は、それらのタイプの異なるタイプのアドレスおよびセマンティクスをサポートします。
タイプ : enum(標準、ブローカー化)
D.1.3.35. io.enmasse.v1beta1.AddressSpec
名前 | 説明 | スキーマ |
---|---|---|
address | 文字列 | |
forwarders | このアドレスに対して有効にするフォワーダーの一覧。 | < io.enmasse.v1beta1.AddressSpecForwarder > array |
plan | 文字列 | |
type |
D.1.3.36. io.enmasse.v1beta1.AddressSpecForwarder
名前 | 説明 | スキーマ |
---|---|---|
direction | フォワーダーの方向。'in' は、'remoteAddress' からこのアドレスにプルします。'out' は、このアドレスから 'remoteAddress' にプッシュすることを意味します。 | enum(in, out) |
name | フォワーダーの名前。 | 文字列 |
remoteAddress | メッセージの送信/受信先のリモートアドレス。 | 文字列 |
D.1.3.37. io.enmasse.v1beta1.AddressStatus
名前 | 説明 | スキーマ |
---|---|---|
forwarders | ステータス付きフォワーダーの一覧。 | |
isReady | ブール値 | |
messages | < 文字列 > 配列 | |
phase | enum(保留中、設定、Active、Failed、Terminating) |
D.1.3.38. io.enmasse.v1beta1.AddressStatusForwarder
名前 | 説明 | スキーマ |
---|---|---|
isReady | フォワーダーが想定どおりに動作している場合は「true」。そうでない場合は「false」。 | ブール値 |
messages | フォワーダーの状態を記述するメッセージ。 | < 文字列 > 配列 |
name | フォワーダーの名前。 | 文字列 |
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 | CIDR は IP ブロックの有効性例を表す文字列で「192.168.1.1/24」です。 | 文字列 |
except | 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 | 送信トラフィックの宛先ポートの一覧この一覧の各項目は、論理 OR を使用して組み合わせます。このフィールドが空であるか、またはない場合、このルールはすべてのポートと一致します(ポートでは制限されないトラフィック)。このフィールドが存在し、1 つ以上の項目が含まれる場合、このルールを使用して、トラフィックがリスト内の少なくとも 1 つのポートと一致する場合のみ、このルールはトラフィックを許可します。 | |
to | このルールに選択される Pod の送信トラフィックの宛先の一覧。この一覧内の項目は、論理 OR 操作を使用して組み合わせます。このフィールドが空であるか、またはない場合、このルールはすべての宛先にマッチします(宛先で制限されないトラフィック)。このフィールドが存在し、1 つ以上の項目が含まれる場合、このルールは、トラフィックをリスト内の 1 つ以上の項目にマッチする場合にのみ、トラフィックを許可します。 |
D.1.3.42. io.k8s.api.networking.v1.NetworkPolicyIngressRule
NetworkPolicyIngressRule は、NetworkPolicySpec の podSelector に一致する Pod に一致する Pod で許可される特定のトラフィックのセットを記述します。トラフィックはポートと from の両方に一致する必要があります。
名前 | 説明 | スキーマ |
---|---|---|
from | このルールに選択した Pod にアクセスできるソースの一覧この一覧内の項目は、論理 OR 操作を使用して組み合わせます。このフィールドが空であるか、または見つからない場合、このルールはすべてのソースと一致します(ソースで制限されないトラフィック)。このフィールドが存在し、1 つ以上の項目が含まれる場合、このルールは、トラフィックを from リスト内で少なくとも 1 つの項目と一致する場合にのみ、トラフィックを許可します。 | |
ports | このルールに選択した Pod でアクセス可能なポートの一覧この一覧の各項目は、論理 OR を使用して組み合わせます。このフィールドが空であるか、またはない場合、このルールはすべてのポートと一致します(ポートでは制限されないトラフィック)。このフィールドが存在し、1 つ以上の項目が含まれる場合、このルールを使用して、トラフィックがリスト内の少なくとも 1 つのポートと一致する場合のみ、このルールはトラフィックを許可します。 |
D.1.3.43. io.k8s.api.networking.v1.NetworkPolicyPeer
NetworkPolicyPeer は、トラフィックを許可するピアを記述します。特定のフィールドの組み合わせのみが許可されます
名前 | 説明 | スキーマ |
---|---|---|
ipBlock | IPBlock は、特定の IPBlock でポリシーを定義します。このフィールドが設定されている場合、他のフィールドはいずれも指定できません。 | |
namespaceSelector | クラスタースコープのラベルを使用して namespace を選択します。このフィールドは標準のラベルセレクターセマンティクスに従います。ただし空の場合は、すべての namespace を選択します。 PodSelector も設定されている場合、NetworkPolicyPeer 全体として、NamespaceSelector によって選択される namespace の PodSelector に一致する Pod を選択します。それ以外の場合は、NamespaceSelector によって選択される namespace のすべての Pod を選択します。 | |
podSelector | これは Pod を選択するラベルセレクターです。このフィールドは標準のラベルセレクターセマンティクスに従います。ただし空の場合は、すべての Pod を選択します。 NamespaceSelector も設定されている場合、NetworkPolicyPeer 全体として、NamespaceSelector によって選択される namespace の PodSelector に一致する Pod を選択します。それ以外の場合は、ポリシーの独自の namespace で PodSelector に一致する Pod を選択します。 |
D.1.3.44. io.k8s.api.networking.v1.NetworkPolicyPort
NetworkPolicyPort は、トラフィックを許可するポートを記述します。
名前 | 説明 | スキーマ |
---|---|---|
port | 指定プロトコルのポート。これは、Pod の数値または名前付きポートのいずれかになります。このフィールドが指定されていない場合、すべてのポート名と数字と一致します。 | |
protocol | トラフィックが一致する必要のあるプロトコル(TCP または UDP)。指定されていない場合、このフィールドはデフォルトで TCP に設定されます。 | 文字列 |
D.1.3.45. io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector
ラベルセレクターとは、一連のリソースに対するラベルクエリーです。matchLabels と matchExpressions の結果は AND を使用して結合されます。ラベルセレクターが空の場合は、全オブジェクトと一致します。ラベルセレクターが null の場合は、どのオブジェクトもマッチしません。
名前 | 説明 | スキーマ |
---|---|---|
matchExpressions | matchExpressions はラベルセレクターの要件の一覧です。要件は AND で結合します。 | < io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement > array |
matchLabels | 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 | key は、セレクターの適用先のラベルキーです。 | 文字列 |
operator | Operator はキーと値のセットの関係を表します。有効な演算子は In、NotIn、Exists、および DoesNotExist です。 | 文字列 |
values | 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 カスタマーポータルでアカウントにアクセスします。
アカウントへのアクセス
- access.redhat.com に移動します。
- アカウントがない場合は、これを作成します。
- アカウントにログインします。
サブスクリプションのアクティベート
- access.redhat.com に移動します。
- 割り当て 済みのサブスクリプション に移動します。
- Activate a subscription に移動し、16 桁のアクティベーション番号を入力します。
zip および tar ファイルのダウンロード
zip または tar ファイルにアクセスするには、Red Hat カスタマーポータルを使用してダウンロードする関連ファイルを検索します。RPM パッケージを使用している場合は、この手順は必要ありません。
- ブラウザーを開き、access.redhat.com/downloads で Red Hat カスタマーポータルの Product Downloads ページにログインします。
- JBOSS INTEGRATION AND AUTOMATION カテゴリーで Red Hat AMQ Online エントリーを見つけます。
- 必要な AMQ Online 製品を選択します。Software Downloads ページが開きます。
- コンポーネントの Download リンクをクリックします。
パッケージ用のシステムの登録
Red Hat Enterprise Linux に RPM パッケージをインストールするには、システムを登録する必要があります。zip または tar ファイルを使用している場合は、このステップは必要ありません。
- access.redhat.com に移動します。
- Registration Assistant に移動します。
- OS のバージョンを選択し、次のページに進みます。
- システムターミナルで listed コマンドを使用して、登録を完了します。
詳細は 「Red Hat カスタマーポータルへのシステム登録およびサブスクライブ方法」を 参照してください。
改訂日時: 2021-07-01 16:03:48 +1000