1.5. 기존 구성 요소 통합
다중 클러스터 글로벌 허브에는 정책 규정 준수 보기를 제공하기 위해 Grafana와 함께 미들웨어 구성 요소, Kafka 및 PostgreSQL이 필요합니다. 다중 클러스터 글로벌 허브는 Kafka, PostgreSQL, Grafana 버전을 제공합니다. 기존 Kafka, PostgreSQL 및 Grafana를 통합할 수도 있습니다.
1.5.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 설명서의 사용자 인증 주제를 참조하십시오.
-
다음 명령을 실행하여 시크릿을 생성하고 필요한 경우 값을 추출된 값으로 교체합니다.
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 인스턴스에 자동 주제 생성이 구성된 경우 이 단계를 건너뜁니다. 구성되지 않은 경우
사양,상태및이벤트주제를 수동으로 생성합니다. - Kafka에 액세스하는 글로벌 허브 사용자에게 주제에서 데이터를 읽고 주제에 데이터를 쓸 수 있는 권한이 있는지 확인합니다.
1.5.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.5.3. 기존 Grafana 버전 통합 링크 복사링크가 클립보드에 복사되었습니다!
기존 Grafana 인스턴스를 사용하면 자체 Grafana에 의존하는 경우 다양한 클러스터에서 Prometheus와 같은 여러 소스의 지표를 가져오고 메트릭을 직접 집계하는 경우 다중 클러스터 글로벌 허브에서 작동할 수 있습니다. 다중 클러스터 글로벌 허브 데이터를 자체 Grafana로 가져오려면 데이터 소스를 구성하고 대시보드를 가져와야 합니다.
다음 명령을 실행하여 다중 클러스터 글로벌 허브 Grafana
데이터 소스시크릿에서 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 인스턴스에서 데이터 소스를 구성하고 이전에 추출한 정보로 필수 필드를 완료합니다.다음 필수 필드를 참조하십시오.
- 이름
- 호스트
- 데이터베이스
- 사용자
- 암호
- TLS/SSL 모드
- TLS/SSL 방법
- CA 인증서
Grafana가 다중 클러스터 글로벌 허브 클러스터에 없는 경우 외부에서 PostgreSQL에 액세스할 수 있도록
LoadBalancer를 사용하여 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 문서의 대시보드 내보내기 및 가져오기 단계에 따라 기존 Grafana 인스턴스에서 대시보드를 내보냅니다.
- 공식 Grafana 설명서의 내보내기 및 가져오기 대시보드 단계에 따라 대시보드를 다중 클러스터 글로벌 허브 Grafana 인스턴스로 가져옵니다.
1.5.4. 추가 리소스 링크 복사링크가 클립보드에 복사되었습니다!
시크릿에서 ca.crt 인증서를 추출하는 방법에 대한 자세한 내용은 STRIMZI 설명서의 사용자 인증을 참조하십시오.
시크릿에서 user.crt 인증서를 추출하는 단계는 STRIMZI 설명서의 사용자 인증을 참조하십시오.