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>-
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: xxxxxPostgreSQL などのソースを追加して独自の Grafana インスタンスに
datasourceを設定し、以前に抽出した情報を必須フィールドに入力します。以下の必須フィールドを参照してください。
- 名前
- Host
- Database
- User
- Password
- 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 を参照してください。