Multicluster Global Hub
Multicluster Global Hub
概要
第1章 Multicluster Global Hub リンクのコピーリンクがクリップボードにコピーされました!
Multicluster Global Hub は、1 つ以上のハブクラスターをインポートし、単一のハブクラスターから管理できるようにするコンポーネントのセットです。
ハブクラスターをマネージドハブクラスターとしてインポートした後、Multicluster Global Hub を使用して、すべてのマネージドハブクラスター全体に、次のタスクを実行できます。
- ポリシーのコンプライアンスの状態と傾向を報告する
- 概要ページですべてのマネージドハブとマネージドクラスターのインベントリーを作成する
- ポリシーの異常な動作を検出して警告する
Multicluster Global Hub は、大規模な環境で単一のハブクラスターでは多数のクラスターを管理できない場合に役立ちます。この問題が発生した場合は、クラスターをより小さなクラスターグループに分割し、グループごとにハブクラスターを設定します。
複数のハブクラスター上で、そのハブクラスターによって管理されているマネージドクラスターのデータを表示するのは不便なことがよくあります。Multicluster Global Hub は、複数のハブクラスターをマネージドハブクラスターとして指定することにより、複数のハブからの情報を表示する簡単な方法を提供します。multicluster global hub は、他のハブクラスターを管理し、マネージドハブクラスターから要約された情報を収集します。
注記: Multicluster Global Hub で可観測性は利用できません。クラスターに Multicluster Global Hub をインストールする前にマルチクラスター可観測性機能を有効にしている場合は、マルチクラスター可観測性機能を手動で無効にします。
Multicluster Global Hub の使用方法は、以下のセクションを参照してください。
- Multicluster Global Hub アーキテクチャー
- グローバルハブの要件
- 接続された環境への Multicluster Global Hub のインストール
- 非接続環境での Multicluster Global Hub のインストール
- 既存のコンポーネントの統合
- デフォルトモードでのマネージドハブクラスターのインポート
- Grafana データへのアクセス
- Grafana アラート (テクノロジープレビュー)
- cron ジョブの設定
- 要約プロセスの手動実行
- multicluster global hub のバックアップ (テクノロジープレビュー)
- Multicluster Global Hub の検索 (テクノロジープレビュー)
1.1. Multicluster Global Hub アーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
Multicluster Global Hub は、ハブクラスターへのアクセスと管理に使用される次のコンポーネントで構成されます。
- 管理ツールとコンソールが実行される グローバルハブクラスター と呼ばれるサーバーコンポーネント
- Red Hat Advanced Cluster Management にインストールされる マネージドハブ と呼ばれるクライアントコンポーネント。グローバルハブクラスターによって管理できます。マネージドハブは他のクラスターも管理します。Multicluster Global Hub クラスター専用のクラスターを使用する必要はありません。
アーキテクチャーの詳細は、次のセクションで説明します。
次の高度なマルチクラスター用語とコンポーネントを参照してください。
1.1.1. Multicluster Global Hub Operator リンクのコピーリンクがクリップボードにコピーされました!
Multicluster Global Hub Operator には、Multicluster Global Hub のコンポーネントが含まれています。Operator は、グローバルマルチクラスター管理に必要なコンポーネントをすべてデプロイします。コンポーネントには、multicluster-global-hub-manager、multicluster-global-hub-grafana、および Multicluster Global Hub 内の Kafka および PostgreSQL の提供バージョンと、マネージドハブクラスター内の multicluster-global-hub-agent が含まれます。
また、Operator は manifestwork カスタムリソースを利用して、マネージドクラスターに Red Hat Advanced Cluster Management for Kubernetes Operator をデプロイします。Red Hat Advanced Cluster Management Operator がマネージドクラスターにデプロイされると、マネージドクラスターは標準の Red Hat Advanced Cluster Management クラスターになります。このハブクラスターはマネージドハブクラスターになりました。
1.1.2. Multicluster Global Hub マネージャー リンクのコピーリンクがクリップボードにコピーされました!
Multicluster Global Hub マネージャーは、データを postgreSQL データベースに永続化するために使用されます。データは Kafka トランスポートからのものです。また、マネージャーはデータを Kafka トランスポートにポストするため、マネージドハブクラスター上のデータと同期できます。
1.1.3. Multicluster Global Hub エージェント リンクのコピーリンクがクリップボードにコピーされました!
Multicluster Global Hub エージェントは、マネージドハブクラスター上で実行されます。multicluster global hub クラスターとマネージドハブクラスター間でデータを同期します。たとえば、エージェントは、マネージドハブクラスターからのマネージドクラスターの情報を multicluster global hub と同期し、グローバルハブクラスターとマネージドハブクラスターからのポリシーまたはアプリケーションを同期します。
1.1.4. Multicluster Global Hub の視覚化 リンクのコピーリンクがクリップボードにコピーされました!
Grafana は、Multicluster Global Hub の視覚化のメインサービスとして Multicluster Global Hub クラスター上で実行されます。グローバルハブマネージャーによって収集された PostgreSQL データは、デフォルトの DataSource です。multicluster-global-hub-grafana というルートを使用してサービスを公開すると、コンソールにアクセスして Multicluster Global Hub Grafana ダッシュボードにアクセスできます。
1.2. グローバルハブ要件 リンクのコピーリンクがクリップボードにコピーされました!
インストールとネットワークに必要なもの、およびサポートされるコンポーネントおよび環境を説明します。
1.2.1. 一般要件 リンクのコピーリンクがクリップボードにコピーされました!
Global Hub をインストールするには、次の要件が必要です。
必要なアクセス権限: クラスターの管理者
OpenShift Container Platform Dedicated 環境に必要なアクセス:cluster-admin パーミッションが必要です。デフォルトで、dedicated-admin ロールには OpenShift Container Platform Dedicated 環境で namespace を作成するために必要な権限がありません。
- Red Hat Advanced Cluster Management for Kubernetes をインストールして設定する必要があります。Red Hat Advanced Cluster Management の詳細は、こちらをご覧ください。
1.2.2. ネットワーク要件 リンクのコピーリンクがクリップボードにコピーされました!
以下のネットワーク要件を参照してください。
- マネージドハブは、Red Hat Advanced Cluster Management のマルチクラスターグローバルハブのマネージドクラスターでもあります。Red Hat Advanced Cluster Management のネットワーク設定が必要です。Red Hat Advanced Cluster Management ネットワークの詳細は、Red Hat Advanced Cluster Management ネットワーク詳細の ネットワーク を参照してください。
以下の表は、グローバルハブネットワーク情報の一覧です。
Expand 方向 プロトコル 接続 ポート (指定されている場合) 送信元アドレス 宛先アドレス ユーザーが使用するブラウザーからの受信
HTTPS
ユーザーは Grafana ダッシュボードにアクセスする必要があります。
443
ユーザーが使用するブラウザー
Grafana ルートの IP アドレス
Kafka クラスターへのアウトバウンド
HTTPS
グローバルハブマネージャーは、Kafka クラスターからデータを取得する必要があります。
443
multicluster-global-hub-manager-xxx Pod
Kafka ルートホスト
PostgreSQL データベースへの送信
HTTPS
グローバルハブマネージャーは、データを PostgreSQL データベースに永続化する必要があります。
443
multicluster-global-hub-manager-xxx Pod
PostgreSQL データベースの IP アドレス
次の表に、マネージドハブネットワーク情報を示します。
Expand 方向 プロトコル 接続 ポート (指定されている場合) 送信元アドレス 宛先アドレス Kafka クラスターへのアウトバウンド
HTTPS
グローバルハブエージェントは、クラスター情報とポリシー情報を Kafka クラスターに同期する必要があります
443
multicluster-global-hub-agent pod
Kafka ルートホスト
- サイズ設定のガイドラインは、製品ドキュメント の Red Hat Advanced Cluster Management クラスターのサイズ設定 を参照してください。
- オプション: ミドルウェアの場合、Multicluster Global Hub には Kafka、PostgreSQL、および Grafana が組み込まれていますが、独自に設定された Kafka、PostgreSQL、および Grafana を使用することもできます。詳細は、既存コンポーネントの統合 を参照してください。
1.2.3. サポートされるコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
サポートされるプラットフォームとコンポーネントを説明します。
- Multicluster Global Hub コンソールは統合コンソールを共有するため、OpenShift Container Platform と同じブラウザーをサポートします。サポート対象のブラウザーとバージョンについては、Red Hat OpenShift Container Platform ドキュメントの Web コンソールへのアクセス を参照してください。
次の表に、サポートされているマルチクラスターグローバルハブクラスターで使用可能なプラットフォームを示します。
Expand プラットフォーム グローバルハブクラスターでのサポート マネージドハブクラスターのサポート Red Hat Advanced Cluster Management 2.11 以降の 2.11.x リリース
はい
はい
Red Hat Advanced Cluster Management 2.10 以降の 2.10 リリース
はい
はい
Red Hat Advanced Cluster Management 2.9 以降の 2.9.x リリース
はい
はい
Red Hat Advanced Cluster Management on Arm
はい
はい
IBM Z での Red Hat Advanced Cluster Management
はい
はい
IBM Power Systems での Red Hat Advanced Cluster Management
はい
はい
Multicluster Global Hub は、以下のミドルウェアをサポートします。
- Kafka 3.4 以降の 3.4.x リリース。
- PostgreSQL バージョン 13 以降の 13.x リリース。
1.2.4. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
1.3. 接続された環境への Multicluster Global Hub のインストール リンクのコピーリンクがクリップボードにコピーされました!
Multicluster Global Hub は、Operator を構成するコンポーネントのインストール、アップグレード、および削除を管理する Operator Lifecycle Manager を通じてインストールされます。
必要なアクセス権限: クラスターの管理者
1.3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
-
OpenShift Container Platform Dedicated 環境の場合、
クラスター管理者権限があり、この環境にアクセスできるデフォルトで、dedicated-adminロールには OpenShift Container Platform Dedicated 環境で namespace を作成するために必要な権限がありません。 - Red Hat Advanced Cluster Management for Kubernetes をインストールおよび設定しておく。詳細は、インストールとアップグレード を参照してください。
- Red Hat Advanced Cluster Management ネットワークを設定している。マネージドハブは、Red Hat Advanced Cluster Management の Multicluster Global Hub のマネージドクラスターでもあります。詳細は、ハブクラスターネットワーク設定 を参照してください。
1.3.1.1. コンソールを使用した Multicluster Global Hub のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform コンソールを使用して接続環境に Multicluster Global Hub Operator をインストールするには、以下の手順を実行します。
-
cluster-adminロールを持つユーザーとして OpenShift Container Platform コンソールにログインします。 - ナビゲーションメニューから Operators > OperatorHub アイコンを選択します。
- Multicluster global hub operator を見つけて選択します。
- Install をクリックしてインストールを開始します。
- インストールが完了したら、Installed Operators ページでステータスを確認します。
- Multicluster global hub operator をクリックして、Operator ページに移動します。
-
Multicluster global hub タブをクリックして、
Multicluster Global Hubインスタンスを表示します。 -
Create Multicluster Global Hub をクリックして、
Multicluster Global Hubインスタンスを作成します。 -
必要な情報を入力し、Create をクリックして
Multicluster Global Hubインスタンスを作成します。
注記:
- Multicluster Global Hub は、x86 プラットフォームでのみ使用できます。
- Multicluster Global Hub のインストール後、Red Hat Advanced Cluster Management でポリシーとアプリケーションが無効になります。
1.3.2. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- Operator カタログのミラーリングの詳細は、Operator カタログのミラーリング を参照してください。
- プライベートレジストリーからイメージにアクセスする方法の詳細は、プライベートレジストリーからの Operator のイメージへのアクセス を参照してください。
- カタログソースの追加の詳細は、クラスターへのカタログソースの追加 を参照してください。
- 切断された環境での Red Hat Advanced Cluster Management のインストールの詳細は、非接続ネットワーク環境でのインストール を参照してください。
- イメージのミラーリングの詳細は、非接続インストールのイメージのミラーリング を参照してください。
- Operator SDK と OLM の統合の詳細は、Operator SDK と Operator Lifecycle Manager の統合 を参照してください。
1.4. 非接続環境での Multicluster Global Hub のインストール リンクのコピーリンクがクリップボードにコピーされました!
クラスターが制限付きネットワーク内にある場合は、非接続環境に Multicluster Global Hub Operator をデプロイメントできます。
必要なアクセス権限: クラスターの管理者
1.4.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
非接続環境に Multicluster Global Hub をインストールする前に、次の要件を満たす必要があります。
- インターネットとミラーレジストリーの両方にアクセスできるイメージレジストリーと bastion ホスト
- Operator Lifecycle Manager をクラスターにインストールする。Operator Lifecycle Manager (OLM) を参照してください。
- Red Hat Advanced Cluster Management for Kubernetes をインストールする。
以下のコマンドラインインターフェイスをインストールする。
- OpenShift Container Platform コマンドライン。OpenShift Container Platform CLI のスタートガイド を参照してください。
-
opmコマンドライン。Installing the opm CLI を参照してください。 -
oc-mirrorプラグイン。oc-plugin プラグインを使用した非接続インストールのイメージのミラーリング を参照してください。
1.4.2. ミラーレジストリーの設定 リンクのコピーリンクがクリップボードにコピーされました!
非接続環境に Multicluster Global Hub をインストールするには、ローカルミラーイメージレジストリーを使用する必要があります。この時点では、OpenShift Container Platform クラスターのインストール中にミラーレジストリーを設定済みであることを前提としています。
以下の手順に従って、Multicluster Global Hub のミラーレジストリーをプロビジョニングします。
1.4.2.1. oc-mirror プラグインを使用したミラーカタログでの Operator パッケージの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat は、Multicluster Global Hub および AMQ Streams Operator を Red Hat Operator カタログで提供しており、これらは、registry.redhat.io/redhat/redhat-operator-index インデックスイメージによって提供されます。このカタログインデックスイメージのミラーを準備する場合に、Red Hat が提供するカタログ全体をミラーリングするか、使用する Operator パッケージのみを含むサブセットをミラーリングするかを選択できます。
フルミラーカタログを作成する場合、Multicluster Global Hub および AMQ Streams のインストールに必要なすべてのパッケージが含まれているため、特別な考慮事項はありません。ただし、特定のパッケージを含めるかを特定するために、一部または絞り込んだミラーリングカタログを作成する場合には、multicluster-global-hub-operator-rh と amq-streams のパッケージ名をリストに含める必要があります。
multicluster-global-hub-operator-rh および amq-streams パッケージのローカルミラーレジストリーを作成するには、以下の手順を実行します。
ImageSetConfigurationYAML ファイルを作成し、Operator イメージを設定して追加します。YAML ファイルは次の内容のようになり、現在のバージョンを4.xに置き換えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、イメージセットをターゲットミラーレジストリーに直接ミラーリングします。
oc mirror --config=./imageset-config.yaml docker://myregistry.example.com:5000
oc mirror --config=./imageset-config.yaml docker://myregistry.example.com:5000Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 完全な非接続環境でイメージセットをミラーリングします。詳細は、Mirroring images for a disconnected installationを参照してください。
1.4.2.2. 非接続クラスターへのレジストリーとカタログの追加 リンクのコピーリンクがクリップボードにコピーされました!
非接続クラスターでミラーレジストリーとカタログを使用できるようにするには、以下の手順を実行します。
Operator Hub のデフォルトのカタログソースを無効にします。以下のコマンドを実行して
OperatorHubリソースを更新します。oc patch OperatorHub cluster --type json \ -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'oc patch OperatorHub cluster --type json \ -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Operator カタログのミラーリングの手順を実行して、Operator カタログをミラーリング します。
ミラーリングされたカタログの
CatalogSourceリソースをopenshift-marketplacenamespace に追加します。CatalogSourceYAML ファイルは、次の例のようになります。4.xはサポートされるバージョンに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
注記:
metadata.nameフィールドの値に注意してください。
-
注記:
- 更新したファイルを保存します。
利用可能な
PackageManifestリソースをクエリーして、非接続クラスターから必要なパッケージが利用できることを確認します。以下のコマンドを実行します。oc -n openshift-marketplace get packagemanifests
oc -n openshift-marketplace get packagemanifestsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 表示されるリストには
multicluster-global-hub-operator-rhおよびamq-streamsパッケージがミラーカタログのカタログソースによって提供されていることを示すエントリーが含まれているはずです。
1.4.3. イメージレジストリーの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスターがインターネットでホストされているレジストリーからではなく、ローカルミラーレジストリーから Multicluster Global Hub Operator のコンテナーイメージを取得できるようにするには、非接続クラスターで ImageContentSourcePolicy リソースを設定し、イメージ参照をミラーレジストリーにリダイレクトする必要があります。ImageContentSourcePolicy は、digest イメージを使用したイメージミラーのみをサポートします。
oc adm catalog mirror コマンドを使用してカタログをミラーリングした場合に、必要なイメージコンテンツソースポリシー設定は、そのコマンドによって作成される manifests-* ディレクトリー内の imageContentSourcePolicy.yaml ファイルにあります。
代わりに oc-mirror プラグインを使用してカタログをミラーリングした場合に、imageContentSourcePolicy.yaml ファイルは oc-mirror プラグインによって作成された oc-mirror-workspace/results- ディレクトリー内にあります。
いずれの場合も、oc replace -f ./<path>/imageContentSourcePolicy.yaml のような oc apply または oc replace コマンドを使用して、ネットワーク接続なしのコマンドにポリシーを適用できます。
必要なイメージコンテンツソースポリシーステートメントは、ミラーレジストリーの作成方法によって異なりますが、次の例のようになります。
ManagedClusterImageRegistry を使用して、マネージドハブごとに異なるイメージレジストリーを設定できます。ManagedClusterImageRegistry API を使用してエージェントイメージを置き換える方法は、ManagedClusterImageRegistry を持つクラスターのインポート を参照してください。
前の手順を完了すると、選択した ManagedCluster にラベルとアノテーションが追加されます。これは、クラスター内のエージェントイメージがミラーイメージに置き換えられることを意味します。
-
ラベル:
multicluster-global-hub.io/image-registry=<namespace.managedclusterimageregistry-name> -
アノテーション:
multicluster-global-hub.io/image-registries: <image-registry-info>
1.4.3.1. イメージプルシークレットを設定する リンクのコピーリンクがクリップボードにコピーされました!
サブスクライブされた Operator によって参照される Operator または Operand イメージがプライベートレジストリーへのアクセスを必要とする場合は、クラスター内のすべての namespace へのアクセスを提供するか、個々のターゲットテナント namespace へのアクセスを提供する ことができます。
1.4.3.1.1. OpenShift Container Platform クラスターでの Multicluster Global Hub イメージプルシークレットの設定 リンクのコピーリンクがクリップボードにコピーされました!
イメージプルシークレットを既存の OpenShift Container Platform クラスターに設定できます。
注記: 既存のクラスターにイメージプルシークレットを適用すると、すべてのノードがローリング再起動されます。
プルシークレットを設定するには、以下の手順を実行します。
プルシークレットからユーザー名をエクスポートします。
export USER=<the-registry-user>
export USER=<the-registry-user>Copy to Clipboard Copied! Toggle word wrap Toggle overflow プルシークレットからパスワードをエクスポートします。
export PASSWORD=<the-registry-password>
export PASSWORD=<the-registry-password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow プルシークレットをコピーします。
oc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' > pull_secret.yamloc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' > pull_secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow プルシークレットを使用してログインします。
oc registry login --registry=${REGISTRY} --auth-basic="$USER:$PASSWORD" --to=pull_secret.yamloc registry login --registry=${REGISTRY} --auth-basic="$USER:$PASSWORD" --to=pull_secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Multicluster Global Hub イメージプルシークレットを指定します。
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=pull_secret.yaml
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=pull_secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 古いプルシークレットを削除します。
rm pull_secret.yaml
rm pull_secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4.3.1.2. Multicluster Global Hub イメージプルシークレットの個別の namespace への設定 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を実行することで、イメージプルシークレットを個別の namespace に設定できます。
次のコマンドを実行して、テナントの namespace にシークレットを作成します。
oc create secret generic <secret_name> -n <tenant_namespace> \ --from-file=.dockerconfigjson=<path/to/registry/credentials> \ --type=kubernetes.io/dockerconfigjson
oc create secret generic <secret_name> -n <tenant_namespace> \ --from-file=.dockerconfigjson=<path/to/registry/credentials> \ --type=kubernetes.io/dockerconfigjsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットをオペレーターまたはオペランドのサービスアカウントにリンクします。
oc secrets link <operator_sa> -n <tenant_namespace> <secret_name> --for=pull
oc secrets link <operator_sa> -n <tenant_namespace> <secret_name> --for=pullCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4.3.2. グローバルハブオペレーターのインストール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Container Platform Web コンソールを使用して、OperatorHub から Operator をインストールしてサブスクライブできます。手順については、Operator のクラスターへの追加 を参照してください。Operator を追加した後、次のコマンドを実行して、Multicluster Global Hub Operator のステータスを確認できます。
oc get pods -n multicluster-global-hub NAME READY STATUS RESTARTS AGE multicluster-global-hub-operator-687584cb7c-fnftj 1/1 Running 0 2m12s
oc get pods -n multicluster-global-hub
NAME READY STATUS RESTARTS AGE
multicluster-global-hub-operator-687584cb7c-fnftj 1/1 Running 0 2m12s
1.4.4. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- ミラーレジストリーの作成の詳細は、ミラーレジストリーの作成 を参照してください。
- イメージのミラーリングの詳細は、非接続インストールのミラーリング を参照してください。
- Operator カタログのミラーリングの詳細は、Operator カタログのミラーリング を参照してください。
1.5. 既存のコンポーネントの統合 リンクのコピーリンクがクリップボードにコピーされました!
Multicluster Global Hub には、ミドルウェアコンポーネント Kafka と PostgreSQL に加えて、ポリシーコンプライアンスビューを提供する可観測性プラットフォームとして Grafana が必要です。Multicluster Global Hub は、Kafka、PostgreSQL、および Grafana のバージョンを提供します。また、独自の既存の Kafka、PostgreSQL、および Grafana を統合することもできます。
1.5.1. 既存の Kafka バージョンの統合 リンクのコピーリンクがクリップボードにコピーされました!
独自の Kafka インスタンスがある場合は、Multicluster Global Hub のトランスポートとして使用できます。Kafka 3.3 はテスト済みバージョンです。Kafka のインスタンスを統合するには、次の手順を実行します。
- Kafka インスタンス用の永続ボリュームがない場合は、永続ボリュームを作成する必要があります。
multicluster-global-hubnamespace にmulticluster-global-hub-transportという名前のシークレットを作成します。次の必須フィールドの情報を展開します。
-
bootstrap.servers: Kafka ブートストラップサーバーを指定します。 -
ca.crt:KafkaUserカスタムリソースを使用して認証情報を設定する場合に必要です。シークレットからca.crt証明書を抽出するために必要な手順は、STRIMZI ドキュメントの ユーザー認証 トピックを参照してください。 -
client.crt: 必須。シークレットからuser.crt証明書を抽出する手順は、STRIMZI ドキュメントの ユーザー認証 トピックを参照してください。 -
client.key: 必須。シークレットからuser.keyを抽出する手順は、STRIMZI ドキュメントの ユーザー認証 トピックを参照してください。
-
次のコマンドを実行してシークレットを作成し、必要に応じて値を抽出した値に置き換えます。
oc create secret generic multicluster-global-hub-transport -n multicluster-global-hub \ --from-literal=bootstrap_server=<kafka-bootstrap-server-address> \ --from-file=ca.crt=<CA-cert-for-kafka-server> \ --from-file=client.crt=<Client-cert-for-kafka-server> \ --from-file=client.key=<Client-key-for-kafka-server>oc create secret generic multicluster-global-hub-transport -n multicluster-global-hub \ --from-literal=bootstrap_server=<kafka-bootstrap-server-address> \ --from-file=ca.crt=<CA-cert-for-kafka-server> \ --from-file=client.crt=<Client-cert-for-kafka-server> \ --from-file=client.key=<Client-key-for-kafka-server>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Kafka インスタンスでトピックの自動作成が設定されている場合は、この手順をスキップしてください。設定されていない場合は、
spec、status、およびeventトピックを手動で作成します。 - Kafka にアクセスするグローバルハブユーザーに、トピックからデータを読み取り、トピックにデータを書き込む権限があることを確認します。
1.5.2. 既存の PostgreSQL バージョンの統合 リンクのコピーリンクがクリップボードにコピーされました!
独自の PostgreSQL リレーショナルデータベースがある場合は、Multicluster Global Hub のストレージとして使用できます。PostgreSQL 13 はテスト済みバージョンです。
最小要件のストレージサイズは 20GB です。この量では、250 のマネージドクラスターを含む 3 つのマネージドハブと、マネージドハブごとに 50 のポリシーを 18 か月間保存できます。multicluster-global-hub namespace に multicluster-global-hub-storage という名前のシークレットを作成する必要があります。シークレットには以下のフィールドが含まれている必要があります。
-
database_uri: データベースを作成し、データを挿入するために使用されます。値は、postgres://<user>:<password>@<host>:<port>/<database>?sslmode=<mode>の形式にする必要があります。 -
database_uri_with_readonlyuser: Multicluster Global Hub で使用される Grafana のインスタンスによってデータのクエリーに使用されます。これは、オプションの値です。値は、postgres://<user>:<password>@<host>:<port>/<database>?sslmode=<mode>の形式にする必要があります。 sslmodeに基づくca.crtは、オプションの値です。- クラスターに最低限必要なストレージサイズが 20GB であることを確認します。この量では、250 のマネージドクラスターを含む 3 つのマネージドハブと、マネージドハブごとに 50 のポリシーを 18 か月間保存できます。
- 以下のコマンドを実行してシークレットを作成します。
oc create secret generic multicluster-global-hub-storage -n multicluster-global-hub \
--from-literal=database_uri=<postgresql-uri> \
--from-literal=database_uri_with_readonlyuser=<postgresql-uri-with-readonlyuser> \
--from-file=ca.crt=<CA-for-postgres-server>
oc create secret generic multicluster-global-hub-storage -n multicluster-global-hub \
--from-literal=database_uri=<postgresql-uri> \
--from-literal=database_uri_with_readonlyuser=<postgresql-uri-with-readonlyuser> \
--from-file=ca.crt=<CA-for-postgres-server>
ホストは、Multicluster Global Hub クラスターからアクセスできる必要があります。PostgreSQL データベースが Kubernetes クラスターにある場合は、nodePort または LoadBalancer でサービスタイプを使用してデータベースを公開することを検討してください。詳細は、トラブルシューティングのためのプロビジョニングされた postgres データベースへのアクセス を参照してください。
1.5.3. 既存の Grafana バージョンの統合 リンクのコピーリンクがクリップボードにコピーされました!
独自の Grafana に依存して Prometheus などの複数のソースからメトリクスを取得し、異なるクラスターからメトリクスを自分で集計する場合、既存の Grafana インスタンスを使用すると、Multicluster Global Hub で機能する可能性があります。Multicluster Global Hub データを独自の Grafana に取得するには、データソースを設定し、ダッシュボードをインポートする必要があります。
次のコマンドを実行して、Multicluster Global Hub Grafana
datasourceシークレットから PostgreSQL 接続情報を収集します。oc get secret multicluster-global-hub-grafana-datasources -n multicluster-global-hub -ojsonpath='{.data.datasources\.yaml}' | base64 -doc get secret multicluster-global-hub-grafana-datasources -n multicluster-global-hub -ojsonpath='{.data.datasources\.yaml}' | base64 -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は以下の例のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PostgreSQL などのソースを追加して独自の Grafana インスタンスに
datasourceを設定し、以前に抽出した情報を必須フィールドに入力します。以下の必須フィールドを参照してください。
- 名前
- Host
- Database
- User
- パスワード
- TLS/SSL Mode
- TLS/SSL Method
- CA Cert
Grafana が Multicluster Global Hub クラスターにない場合は、
LoadBalancerを使用して PostgreSQL を公開して、外部から PostgreSQL にアクセスできるようにする必要があります。以下の値をPostgresClusterオペランドに追加できます。service: type: LoadBalancer
service: type: LoadBalancerCopy to Clipboard Copied! Toggle word wrap Toggle overflow そのコンテンツを追加すると、
postgres-haサービスからEXTERNAL-IPを取得できるようになります。以下の例を参照してください。oc get svc postgres-ha -n multicluster-global-hub NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE postgres-ha LoadBalancer 172.30.227.58 xxxx.us-east-1.elb.amazonaws.com 5432:31442/TCP 128m
oc get svc postgres-ha -n multicluster-global-hub NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE postgres-ha LoadBalancer 172.30.227.58 xxxx.us-east-1.elb.amazonaws.com 5432:31442/TCP 128mCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドを実行すると、PostgreSQL 接続ホストとして
xxxx.us-east-1.elb.amazonaws.com:5432を使用できます。既存のダッシュボードをインポートします。
- 公式 Grafana ドキュメントの Export and import dashboards の手順に従って、既存の Grafana インスタンスからダッシュボードをエクスポートします。
- 公式 Grafana ドキュメントの Export and import dashboards の手順に従って、ダッシュボードを Multicluster Global Hub Grafana インスタンスにインポートします。
1.5.4. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
シークレットから ca.crt 証明書を抽出する方法は、STRIMZI ドキュメントの User authentication を参照してください。
シークレットから user.crt 証明書を抽出する手順は、STRIMZI ドキュメントの User authentication を参照してください。
1.6. デフォルトモードでのマネージドハブクラスターのインポート リンクのコピーリンクがクリップボードにコピーされました!
既存のハブクラスターをマネージドハブクラスターとしてインポートするには、以下の手順を実行します。
-
multiclusterhubカスタムリソースのdisableHubSelfManagement設定をtrueに指定して、既存の Red Hat Advanced Cluster Management for Kubernetes ハブクラスターのクラスター自己管理を無効にします。この設定により、ハブクラスターのマネージドクラスターとしての自動インポートが無効になります。 - クラスターの インポートの概要 の手順を完了して、マネージドハブクラスターをインポートします。
マネージドハブクラスターをインポートしたら、次のコマンドを実行して、Multicluster Global Hub エージェントのステータスをチェックし、マネージドハブクラスターでエージェントが実行されていることを確認します。
oc get managedclusteraddon multicluster-global-hub-controller -n $<managed_hub_cluster_name>
oc get managedclusteraddon multicluster-global-hub-controller -n $<managed_hub_cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7. Grafana データへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
Grafana データはルート経由で公開されます。次のコマンドを実行して、ログイン URL を表示します。
oc get route multicluster-global-hub-grafana -n <the-namespace-of-multicluster-global-hub-instance>
oc get route multicluster-global-hub-grafana -n <the-namespace-of-multicluster-global-hub-instance>
この URL の認証方法は、Red Hat OpenShift Container Platform コンソールに対する認証と同じです。
Grafana ダッシュボードで表示できる内容の詳細は、以下のセクションを参照してください。
1.7.1. Grafana ダッシュボードを使用したポリシーステータスの表示 リンクのコピーリンクがクリップボードにコピーされました!
グローバルハブ Grafana データにアクセスした後、管理されているハブクラスター環境を通じて設定されたポリシーを監視できます。
Multicluster Global Hub ダッシュボードから、選択した時間範囲におけるシステムのポリシーのコンプライアンスステータスを特定できます。ポリシーのコンプライアンスステータスは毎日更新されるため、ダッシュボードには当日のステータスが翌日まで表示されません。
Multicluster Global Hub ダッシュボードを操作するには、policy または cluster 別にグループ化することで、ポリシーデータの確認および絞り込みが可能です。
policy グループを使用してポリシーデータを調べる場合は、Global Hub - Policy Group Compliancy Overview というダッシュボードから開始します。
このダッシュボードでは、standard、category および control に基づいてポリシーデータをフィルタリングできます。グラフで特定の時点を選択すると、Global Hub - Offending Policies ダッシュボードに移動します。Global Hub - Offending Policies ダッシュボードには、その時点で準拠していないポリシーまたは不明なポリシーがリストされます。ターゲットポリシーを選択した後、Global Hub - What’s Changed / Policies ダッシュボードにアクセスして、関連イベントを表示し、変更内容を確認できます。
同様に、cluster グループごとにポリシーデータを調べる場合は、まず Global Hub - Cluster Group Compliancy Overview ダッシュボードを使用します。ナビゲーションフローは policy グループ化フローと同じですが、マネージドクラスターの labels や values など、クラスターに関連するフィルターを選択します。すべてのクラスターのポリシーイベントを表示する代わりに、Global Hub - What’s Changed / Clusters ダッシュボードに到達した後、個々のクラスターに関連するポリシーイベントを表示できます。
1.7.2. Grafana ダッシュボードを使用した Strimzi 情報の表示 リンクのコピーリンクがクリップボードにコピーされました!
Kafka デプロイメントと Postgres データベースの健全性とパフォーマンスを把握するには、それらのメトリクスを収集します。メトリクスを確認すると、問題が重大になる前に特定し、リソースの割り当てや容量計画について情報に基づいた決定を下すことができます。メトリクスを収集して確認しないと、Kafka デプロイメントの動作の可視性が制限され、トラブルシューティングが困難になる可能性があります。
ダッシュボードとそのメトリクスは、Multicluster Global Hub Grafana で確認できます。Strimzi フォルダーでは、次のダッシュボードを表示できます。
- multicluster global hub - Strimzi Operator
- multicluster global hub - Strimzi Kafka
- multicluster global hub - Strimzi Zookeeper
1.7.3. Grafana ダッシュボードで Postgres 情報を表示する (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
Postgres 設定の健全性とパフォーマンスを理解するには、Grafana ダッシュボードで Postgres メトリクスを収集して確認します。Postgres フォルダーでは、以下のダッシュボードを表示できます。
- multicluster global hub - PostgresSQL データベース
1.7.4. Grafana ダッシュボードを使用したクラスター情報の表示 リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターをフィルタリングし、その詳細およびイベントを表示するには、Grafana ダッシュボードを使用します。Grafana ダッシュボードを使用すると、hub、labels および name に基づいてマネージドクラスターをフィルタリングできます。さらに、hub、status、cloud、および version に基づいて、マネージドクラスターのディストリビューションを表示できます。
Cluster フォルダーでは、次のダッシュボードを表示できます。
- multicluster global hub - クラスターの概要
1.8. Grafana アラート (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
3 つの Grafana アラートを設定でき、これらは multicluster-global-hub-default-alerting config map に保存されます。これらのアラートは、不審なポリシー、不審なクラスターのコンプライアンスステータスの変更、および失敗した cron ジョブを通知します。
次のアラートの説明を参照してください。
Suspicious policy change - このアラートルールは、不審なポリシーの変更を監視します。以下のイベントが 1 時間以内に 5 回以上発生すると、通知が作成されます。
- ポリシーが有効または無効になった。
- ポリシーが更新された。
Suspicious cluster compliance status change - このアラートルールは、クラスターのクラスターコンプライアンスステータスとポリシーイベントを監視します。このアラートには、次の 2 つのルールがあります。
-
Cluster compliance status changes frequently: クラスターのコンプライアンスステータスが 1 時間に 3 回以上
complianceからcomplianceに変化すると、通知が作成されます。 -
Too many policy events in a cluster: クラスター内のポリシーの場合、5 分間に 20 を超えるイベントがある場合、通知が作成されます。このアラートが常に発生している場合、
event.local_policiesテーブル内のデータが急増します。
-
Cluster compliance status changes frequently: クラスターのコンプライアンスステータスが 1 時間に 3 回以上
Cron Job failed: このアラートは、失敗したイベントの cron ジョブの設定 で説明されている cron ジョブを監視します。このアラートには、次の 2 つのルールがあります。
-
Local compliance job failed: このアラートルールが通知を作成する場合、ローカルコンプライアンスステータス同期ジョブが失敗したことを意味します。これにより、
history.local_complianceテーブルのデータが失われる可能性があります。必要に応じてジョブを手動で実行します。 - Data retention job failed: このアラートルールが通知の作成を開始した場合、データ保持ジョブが失敗したことを意味します。これは手動で実行できます。
-
Local compliance job failed: このアラートルールが通知を作成する場合、ローカルコンプライアンスステータス同期ジョブが失敗したことを意味します。これにより、
1.8.1. デフォルトの Grafana アラートルールの削除 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトの Grafana アラートルールで要件にあった情報が得られない場合は、multicluster-global-hub-custom-alerting config map に deleteRules セクションを含めることによって、Grafana アラートルールを削除できます。multicluster-global-hub-custom-alerting config map の詳細は、Grafana アラートリソースのカスタマイズ を参照してください。
デフォルトのアラートをすべて削除するには、deleteRules 設定セクションは次の例のようになります。
1.8.2. Grafana アラートのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Multicluster Global Hub は、カスタム Grafana アラートの作成をサポートします。Grafana アラートをカスタマイズするには、次の手順を実行します。
1.8.2.1. grafana.ini ファイルのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
grafana.ini ファイルをカスタマイズするには、Multicluster Global Hub Operator をインストールした namespace に multicluster-global-hub-custom-grafana-config という名前のシークレットを作成します。次の例に示すように、シークレットデータキーは grafana.ini です。必要な情報を独自の認証情報に置き換えます。
<1>SMTP ダイアログの EHLO ID。デフォルトは、instance_name です。
注: セクションに multicluster-global-hub-default-grafana-config シークレットがすでに含まれている場合は、設定できません。
1.8.2.2. Grafana アラートルールのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Multicluster Global Hub は、Grafana ドキュメントの ファイルプロビジョニングを使用したアラートリソースの作成と管理 で説明されているアラートリソースのカスタマイズをサポートしています。
アラートリソースをカスタマイズするには、multicluster-global-hub-custom-alerting という名前の config map を multicluster-global-hub namespace に作成します。
次の例に示すように、config map データキーは alerting.yaml です。
1.9. cron ジョブの設定 リンクのコピーリンクがクリップボードにコピーされました!
Multicluster Global Hub の cron ジョブを設定できます。
Multicluster Global Hub オペランドをインストールすると、グローバルハブマネージャーが実行され、次の cron ジョブをスケジュールするためのジョブスケジューラーが表示されます。
-
Local compliance status sync job: この cron ジョブは、前日にマネージャーによって収集されたポリシーステータスとイベントに基づいて、毎日午前 0 時に実行されます。このジョブを実行すると、クラスター上のポリシーのコンプライアンスステータスと変更頻度が要約され、それらが Grafana ダッシュボードのデータソースとして
history.local_complianceテーブルに保存されます。 Data retention job: Multicluster Global Hub 内の一部のデータテーブルは時間の経過とともに増大し続けるため、通常、テーブルが大きくなりすぎると問題が発生する可能性があります。次の 2 つのアクションは、サイズが過剰なテーブルに起因する問題を最小限に抑えるのに役立ちます。
- 不要になった古いデータを削除します。
大規模なテーブルでパーティション設定を有効にして、素早くクエリーや削除を実行します。
event.local_policiesやhistory.local_complianceなど、毎日サイズが増加するイベントテーブルの場合、範囲パーティション分割により大きなテーブルが小さなパーティションに分割されます。このプロセスは、実行されるたびに翌月のパーティションテーブルも作成します。local_spec.policiesやstatus.managed_clustersなどのポリシーおよびクラスターテーブルの場合、ハード削除時のパフォーマンスを向上させるために、テーブルにdelete_atインデックスがあります。
Multicluster Global Hub オペランドの
retention設定を変更することで、データが保持される期間を変更できます。推奨される最小値は1 カ月、デフォルト値は18 カ月です。このジョブの実行間隔は 1 か月未満である必要があります。
一覧表示されている cron ジョブは、Multicluster Global Hub マネージャーが起動するたびに実行されます。ローカルコンプライアンスステータス同期ジョブは 1 日に 1 回実行され、結果を変えることなく 1 日に複数回実行できます。
データ保持ジョブは週に 1 回実行されますが、結果に変化がなければ月に何度も実行することもできます。
これらのジョブのステータスは、multicluster_global_hub_jobs_status メトリクスに保存され、Red Hat OpenShift Container Platform クラスターのコンソールから表示できます。値 0 はジョブが正常に実行されたことを示し、値 1 は失敗を示します。
1.10. 要約プロセスの手動実行 リンクのコピーリンクがクリップボードにコピーされました!
ジョブがトリガーされなかったり、実行に失敗しなかったりした場合は、要約プロセスを手動で実行して、その日の初期コンプライアンス状態を復元できます。要約プロセスを手動で実行するには、次の手順を実行します。
- 前日のコンプライアンス履歴を、回復日の履歴の初期状態として使用します。
データベースに接続します。
pgAdminやtablePlushなどのクライアントを使用して、マルチクラスターグローバルハブデータベースに接続できます。または、次のコマンドを実行すると、クラスター上のデータベースに直接接続できます。oc exec -it multicluster-global-hub-postgres-0 -n multicluster-global-hub -- psql -d hoh
oc exec -it multicluster-global-hub-postgres-0 -n multicluster-global-hub -- psql -d hohCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要約プロセスを実行する日付を決定します (例:
2023-07-06)。ダッシュボードメトリクスまたは
history.local_compliance_job_logテーブルからローカルコンプライアンスジョブの失敗情報を見つけます。この例では、日付は2023-07-06なので、2023-07-06がサマリープロセスを手動で実行する必要がある日付であることがわかります。次の SQL を実行して、
2023-07-06の初期コンプライアンスを復元します。-- call the func to generate the initial data of '2023-07-06' by inheriting '2023-07-05' CALL history.generate_local_compliance('2024-07-06');-- call the func to generate the initial data of '2023-07-06' by inheriting '2023-07-05' CALL history.generate_local_compliance('2024-07-06');Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.11. Multicluster Global Hub のバックアップ (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
リカバリーソリューションや基本リソースを利用するには、Red Hat Advanced Cluster Management のバックアップおよび復元機能を備えた Multicluster Global Hub を使用します。これらの機能がどのように役立つかの詳細は、バックアップと復元 を参照してください。
Multicluster Global Hub は acm-hub-pvc-backup を使用した postgres PVC のバックアップもサポートします。マルチクラスターグローバルハブがバックアップ postgres pvc をサポートできるようにするには、現在のバージョンの VolySync および Red Hat Advanced Cluster Management が必要です。データのバックアップに関する詳細な手順は、acm-hub-pvc-backup を参照してください。
1.11.1. Multicluster Global Hub のバックアップおよび復元の復元 リンクのコピーリンクがクリップボードにコピーされました!
Multicluster Global Hub を復元する必要がある場合は、新しいハブクラスターの準備 を参照してください。Multicluster Global Hub Operator をインストールしますが、CR は自動的に復元されるため、Multicluster Global Hub カスタムリソース (CR) は作成しないでください。
1.12. Multicluster Global Hub の検索 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
Multicluster Global Hub を使用して環境を管理する場合、グローバル検索を使用すると、検索機能が拡張されます。
1.12.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Multicluster Global Hub を有効にする。
1.12.2. グローバル検索の有効化 リンクのコピーリンクがクリップボードにコピーされました!
グローバル検索を有効にするには、次のコマンドを実行して、search-v2-operator リソースに global-search-preview=true アノテーションを追加します。
oc annotate search search-v2-operator -n open-cluster-management global-search-preview=true
oc annotate search search-v2-operator -n open-cluster-management global-search-preview=true
検索 Operator が次のステータス状態で更新されます。
1.12.3. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- Multicluster Global Hub の概要 を参照してください。
- コンソールでの検索 を参照してください。