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 ネットワーク詳細の ネットワーク を参照してください。
以下の表は、グローバルハブネットワーク情報の一覧です。
方向 プロトコル 接続 ポート (指定されている場合) 送信元アドレス 宛先アドレス ユーザーが使用するブラウザーからの受信
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 アドレス
次の表に、マネージドハブネットワーク情報を示します。
方向 プロトコル 接続 ポート (指定されている場合) 送信元アドレス 宛先アドレス 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 コンソールへのアクセス を参照してください。
次の表に、サポートされているマルチクラスターグローバルハブクラスターで使用可能なプラットフォームを示します。
プラットフォーム グローバルハブクラスターでのサポート マネージドハブクラスターのサポート 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
パッケージのローカルミラーレジストリーを作成するには、以下の手順を実行します。
ImageSetConfiguration
YAML ファイルを作成し、Operator イメージを設定して追加します。YAML ファイルは次の内容のようになり、現在のバージョンを4.x
に置き換えます。kind: ImageSetConfiguration apiVersion: mirror.openshift.io/v1alpha2 storageConfig: registry: imageURL: myregistry.example.com:5000/mirror/oc-mirror-metadata mirror: platform: channels: - name: stable-4.x type: ocp operators: - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.x packages: - name: multicluster-global-hub-operator-rh - name: amq-streams additionalImages: [] helm: {}
次のコマンドを使用して、イメージセットをターゲットミラーレジストリーに直接ミラーリングします。
oc mirror --config=./imageset-config.yaml docker://myregistry.example.com:5000
- 完全な非接続環境でイメージセットをミラーリングします。詳細は、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}]'
- Operator カタログのミラーリングの手順を実行して、Operator カタログをミラーリング します。
ミラーリングされたカタログの
CatalogSource
リソースをopenshift-marketplace
namespace に追加します。CatalogSource
YAML ファイルは、次の例のようになります。4.x
はサポートされるバージョンに設定します。apiVersion: operators.coreos.com/v1alpha1 kind: CatalogSource metadata: name: my-mirror-catalog-source namespace: openshift-marketplace spec: image: myregistry.example.com:5000/mirror/my-operator-index:v4.x sourceType: grpc secrets: - <global-hub-secret>
-
注記:
metadata.name
フィールドの値に注意してください。
-
注記:
- 更新したファイルを保存します。
利用可能な
PackageManifest
リソースをクエリーして、非接続クラスターから必要なパッケージが利用できることを確認します。以下のコマンドを実行します。oc -n openshift-marketplace get packagemanifests
表示されるリストには
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
コマンドを使用して、ネットワーク接続なしのコマンドにポリシーを適用できます。
必要なイメージコンテンツソースポリシーステートメントは、ミラーレジストリーの作成方法によって異なりますが、次の例のようになります。
apiVersion: operator.openshift.io/v1alpha1 kind: ImageContentSourcePolicy metadata: labels: operators.openshift.org/catalog: "true" name: global-hub-operator-icsp spec: repositoryDigestMirrors: - mirrors: - myregistry.example.com:5000/multicluster-globalhub source: registry.redhat.io/multicluster-globalhub - mirrors: - myregistry.example.com:5000/openshift4 source: registry.redhat.io/openshift4 - mirrors: - myregistry.example.com:5000/redhat source: registry.redhat.io/redhat
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 PASSWORD=<the-registry-password>
プルシークレットをコピーします。
oc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' > pull_secret.yaml
プルシークレットを使用してログインします。
oc registry login --registry=${REGISTRY} --auth-basic="$USER:$PASSWORD" --to=pull_secret.yaml
Multicluster Global Hub イメージプルシークレットを指定します。
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=pull_secret.yaml
古いプルシークレットを削除します。
rm pull_secret.yaml
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 secrets link <operator_sa> -n <tenant_namespace> <secret_name> --for=pull
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
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-hub
namespace に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>
-
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>
ホストは、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 -d
出力は以下の例のようになります。
apiVersion: 1 datasources: - access: proxy isDefault: true name: Global-Hub-DataSource type: postgres url: postgres-primary.multicluster-global-hub.svc:5432 database: hoh user: guest jsonData: sslmode: verify-ca tlsAuth: true tlsAuthWithCACert: true tlsConfigurationMethod: file-content tlsSkipVerify: true queryTimeout: 300s timeInterval: 30s secureJsonData: password: xxxxx tlsCACert: xxxxx
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
そのコンテンツを追加すると、
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
このコマンドを実行すると、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>
1.7. Grafana データへのアクセス
Grafana データはルート経由で公開されます。次のコマンドを実行して、ログイン URL を表示します。
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
設定セクションは次の例のようになります。
deleteRules: - orgId: 1 uid: globalhub_suspicious_policy_change - orgId: 1 uid: globalhub_cluster_compliance_status_change_frequently - orgId: 1 uid: globalhub_high_number_of_policy_events - orgId: 1 uid: globalhub_data_retention_job - orgId: 1 uid: globalhub_local_compliance_job
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
です。必要な情報を独自の認証情報に置き換えます。
apiVersion: v1
kind: Secret
metadata:
name: multicluster-global-hub-custom-grafana-config
namespace: multicluster-global-hub
type: Opaque
stringData:
grafana.ini: |
[smtp]
enabled = true
host = smtp.google.com:465
user = <example@google.com>
password = <password>
;cert_file =
;key_file =
skip_verify = true
from_address = <example@google.com>
from_name = Grafana
;ehlo_identity = dashboard.example.com 1
<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
です。
apiVersion: v1 data: alerting.yaml: | contactPoints: - orgId: 1 name: globalhub_policy receivers: - uid: globalhub_policy_alert_email type: email settings: addresses: <example@redhat.com> singleEmail: false - uid: globalhub_policy_alert_slack type: slack settings: url: <Slack-webhook-URL> title: | {{ template "globalhub.policy.title" . }} text: | {{ template "globalhub.policy.message" . }} policies: - orgId: 1 receiver: globalhub_policy group_by: ['grafana_folder', 'alertname'] matchers: - grafana_folder = Policy repeat_interval: 1d deleteRules: - orgId: 1 uid: [Alert Rule Uid] muteTimes: - orgId: 1 name: mti_1 time_intervals: - times: - start_time: '06:00' end_time: '23:59' location: 'UTC' weekdays: ['monday:wednesday', 'saturday', 'sunday'] months: ['1:3', 'may:august', 'december'] years: ['2020:2022', '2030'] days_of_month: ['1:5', '-3:-1'] kind: ConfigMap metadata: name: multicluster-global-hub-custom-alerting namespace: multicluster-global-hub
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
要約プロセスを実行する日付を決定します (例:
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');
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
検索 Operator が次のステータス状態で更新されます。
status: conditions: - lastTransitionTime: '2024-05-31T19:49:37Z' message: None reason: None status: 'True' type: GlobalSearchReady
1.12.3. 関連情報
- Multicluster Global Hub の概要 を参照してください。
- コンソールでの検索 を参照してください。