1.6. 기존 구성 요소 통합
다중 클러스터 글로벌 허브에는 정책 규정 준수 보기를 제공하기 위해 Grafana와 함께 미들웨어 구성 요소, Kafka 및 PostgreSQL이 필요합니다. 다중 클러스터 글로벌 허브는 Kafka, PostgreSQL, Grafana 버전을 제공합니다. 기존 Kafka, PostgreSQL 및 Grafana를 통합할 수도 있습니다.
1.6.1. 기존 Kafka 버전 통합
고유한 Kafka 인스턴스가 있는 경우 다중 클러스터 글로벌 허브의 전송으로 사용할 수 있습니다. Kafka 3.3은 테스트된 버전입니다. Kafka 인스턴스를 통합하려면 다음 단계를 완료합니다.
- Kafka 인스턴스에 대한 영구 볼륨이 없는 경우 이를 생성해야 합니다.
multicluster-global-hub
네임스페이스에서multicluster-global-hub-transport
라는 시크릿을 생성합니다.다음 필수 필드에서 정보를 추출합니다.
-
bootstrap.servers
: Kafka 부트스트랩 서버를 지정합니다. -
ca.crt
:KafkaUser
사용자 정의 리소스를 사용하여 인증 인증 정보를 구성하는 경우 필요합니다. 시크릿에서ca.crt
인증서를 추출하는 데 필요한 단계는 STRIMZI 설명서의 사용자 인증 주제를 참조하십시오. -
client.crt
: 필수는 시크릿에서user.crt
인증서를 추출하는 단계는 STRIMZI 설명서의 사용자 인증 주제를 참조하십시오. -
client.key
: 필수는 시크릿에서user.key
를 추출하는 단계는 STRIMZI 설명서의 사용자 인증 주제를 참조하십시오.
-
다음 명령을 실행하여 시크릿을 생성하고 필요한 경우 값을 추출된 값으로 교체합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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>
-
Kafka 인스턴스에 자동 주제 생성이 구성된 경우 이 단계를 건너뜁니다. 구성되지 않은 경우
사양
,상태
및이벤트
주제를 수동으로 생성합니다. - Kafka에 액세스하는 글로벌 허브 사용자에게 주제에서 데이터를 읽고 주제에 데이터를 쓸 수 있는 권한이 있는지 확인합니다.
1.6.2. 기존 버전의 PostgreSQL 통합
PostgreSQL 관계형 데이터베이스가 있는 경우 이를 다중 클러스터 글로벌 허브의 스토리지로 사용할 수 있습니다. PostgreSQL 13은 테스트된 버전입니다.
필요한 최소 스토리지 크기는 20GB입니다. 이 용량은 18개월 동안 250개의 관리 클러스터와 관리 허브당 50개의 정책이 포함된 3개의 관리 허브를 저장할 수 있습니다. multicluster-global-hub
네임스페이스에 multicluster-global-hub-storage
라는 시크릿을 생성해야 합니다. 보안에는 다음 필드가 포함되어야 합니다.
-
database_uri
: 데이터베이스를 생성하고 데이터를 삽입하는 데 사용됩니다. 값은postgres://<user>:<password>@<host>:<port>/<database>?sslmode=<mode
> 와 유사해야 합니다. -
database_uri_with_readonlyuser
: multicluster 글로벌 허브에서 사용하는 Grafana 인스턴스에서 데이터를 쿼리하는 데 사용됩니다. 선택적 값입니다. 값은postgres://<user>:<password>@<host>:<port>/<database>?sslmode=<mode
> 와 유사해야 합니다. sslmode
를 기반으로 하는ca.crt
는 선택적 값입니다.- 클러스터에 필요한 최소 스토리지 크기가 20GB인지 확인합니다. 이 용량은 18개월 동안 250개의 관리 클러스터와 관리 허브당 50개의 정책이 포함된 3개의 관리 허브를 저장할 수 있습니다.
- 다음 명령을 실행하여 시크릿을 생성합니다.
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 글로벌 허브 클러스터에서 액세스할 수 있어야 합니다. PostgreSQL 데이터베이스가 Kubernetes 클러스터에 있는 경우 nodePort
또는 LoadBalancer
와 함께 서비스 유형을 사용하여 데이터베이스를 노출하는 것이 좋습니다. 자세한 내용은 문제 해결을 위해 프로비저닝된 postgres 데이터베이스 액세스를 참조하십시오.
1.6.3. 기존 Grafana 버전 통합
기존 Grafana 인스턴스를 사용하면 자체 Grafana에 의존하는 경우 다양한 클러스터에서 Prometheus와 같은 여러 소스의 지표를 가져오고 메트릭을 직접 집계하는 경우 다중 클러스터 글로벌 허브에서 작동할 수 있습니다. 다중 클러스터 글로벌 허브 데이터를 자체 Grafana로 가져오려면 데이터 소스를 구성하고 대시보드를 가져와야 합니다.
다음 명령을 실행하여 다중 클러스터 글로벌 허브 Grafana
데이터 소스
시크릿에서 PostgreSQL 연결 정보를 수집합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get secret multicluster-global-hub-grafana-datasources -n multicluster-global-hub -ojsonpath='{.data.datasources\.yaml}' | base64 -d
oc get secret multicluster-global-hub-grafana-datasources -n multicluster-global-hub -ojsonpath='{.data.datasources\.yaml}' | base64 -d
출력은 다음 예와 유사합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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 인스턴스에서 데이터 소스를 구성하고 이전에 추출한 정보로 필수 필드를 완료합니다.다음 필수 필드를 참조하십시오.
- 이름
- 호스트
- 데이터베이스
- 사용자
- 암호
- TLS/SSL 모드
- TLS/SSL 방법
- CA 인증서
Grafana가 다중 클러스터 글로벌 허브 클러스터에 없는 경우 외부에서 PostgreSQL에 액세스할 수 있도록
LoadBalancer
를 사용하여 PostgreSQL을 노출해야 합니다.PostgresCluster
피연산자에 다음 값을 추가할 수 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow service: type: LoadBalancer
service: type: LoadBalancer
해당 콘텐츠를 추가한 후
postgres-ha
서비스에서EXTERNAL-IP
를 가져올 수 있습니다. 다음 예제를 참조하십시오.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 128m
해당 명령을 실행한 후 PostgreSQL 연결 호스트로
xxxx.us-east-1.elb.amazonaws.com:5432
를 사용할 수 있습니다.기존 대시보드를 가져옵니다.
- 공식 Grafana 문서의 대시보드 내보내기 및 가져오기 단계에 따라 기존 Grafana 인스턴스에서 대시보드를 내보냅니다.
- 공식 Grafana 설명서의 내보내기 및 가져오기 대시보드 단계에 따라 대시보드를 다중 클러스터 글로벌 허브 Grafana 인스턴스로 가져옵니다.
1.6.4. 추가 리소스
시크릿에서 ca.crt
인증서를 추출하는 방법에 대한 자세한 내용은 STRIMZI 설명서의 사용자 인증을 참조하십시오.
시크릿에서 user.crt
인증서를 추출하는 단계는 STRIMZI 설명서의 사용자 인증을 참조하십시오.