OpenShift에 Apicurio 레지스트리 설치 및 배포
Apicurio Registry 2.4 설치, 배포 및 구성
초록
머리말 링크 복사링크가 클립보드에 복사되었습니다!
보다 포괄적 수용을 위한 오픈 소스 용어 교체
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
Red Hat 문서에 관한 피드백 제공
문서 개선을 위한 의견에 감사드립니다. 피드백을 제공하려면 문서의 텍스트를 강조 표시하고 주석을 추가합니다.
사전 요구 사항
- Red Hat 고객 포털에 로그인되어 있습니다.
- Red Hat 고객 포털에서 문서는 Multi-page HTML 보기 형식으로 되어 있습니다.
절차
피드백을 제공하려면 다음 단계를 수행합니다.
문서 의 오른쪽 상단에 있는 피드백 버튼을 클릭하여 기존 피드백을 확인합니다.
참고피드백 기능은 Multi-page HTML 형식으로만 활성화됩니다.
- 피드백을 제공할 문서의 섹션을 강조 표시합니다.
강조 표시된 텍스트 근처에 표시되는 피드백 추가 팝업을 클릭합니다.
페이지 오른쪽의 피드백 섹션에 텍스트 상자가 나타납니다.A text box appears in the feedback section on the right side of the page.
텍스트 상자에 피드백을 입력하고 Submit 을 클릭합니다.
문서 문제가 생성되었습니다.
- 문제를 보려면 피드백 보기에서 문제 링크를 클릭합니다.
1장. Apicurio Registry Operator 빠른 시작 링크 복사링크가 클립보드에 복사되었습니다!
CRD(Custom Resource Definitions)를 사용하여 명령줄에서 Apicurio Registry Operator를 빠르게 설치할 수 있습니다.
빠른 시작 예제에서는 SQL 데이터베이스에 스토리지와 함께 Apicurio Registry 인스턴스를 배포합니다.
프로덕션 환경에 권장되는 설치 옵션은 OpenShift OperatorHub입니다. 권장되는 스토리지 옵션은 성능, 안정성 및 데이터 관리를 위한 SQL 데이터베이스입니다.
1.1. 빠른 시작 Apicurio Registry Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
다운로드한 설치 파일 세트 및 예제 CRD를 사용하여 Operator Lifecycle Manager 없이 Apicurio Registry Operator를 명령줄에서 신속하게 설치하고 배포할 수 있습니다.
사전 요구 사항
- 관리자 액세스 권한이 있는 OpenShift 클러스터에 로그인되어 있습니다.
-
OpenShift
oc명령줄 클라이언트가 설치되어 있어야 합니다. 자세한 내용은 OpenShift CLI 설명서를 참조하십시오.
절차
-
Red Hat 소프트웨어 다운로드 로 이동하여 제품 버전을 선택하고 Apicurio Registry CRD
.zip파일에서 예제를 다운로드합니다. -
다운로드한 CRD
.zip파일을 추출하고apicurio-registry-install-examples디렉터리로 변경합니다. Apicurio Registry Operator 설치에 대한 OpenShift 프로젝트를 생성합니다. 예를 들면 다음과 같습니다.
export NAMESPACE="apicurio-registry" oc new-project "$NAMESPACE"install/install.yaml파일에서 예제 CRD를 적용하려면 다음 명령을 입력합니다.cat install/install.yaml | sed "s/apicurio-registry-operator-namespace/$NAMESPACE/g" | oc apply -f -oc get deployment를 입력하여 Apicurio Registry Operator의 준비 상태를 확인합니다. 예를 들어 출력은 다음과 같아야 합니다.NAME READY UP-TO-DATE AVAILABLE AGE apicurio-registry-operator 1/1 1 1 XmYs
1.2. 빠른 시작 Apicurio Registry 인스턴스 배포 링크 복사링크가 클립보드에 복사되었습니다!
Apicurio Registry 인스턴스 배포를 생성하려면 SQL 데이터베이스 스토리지 옵션을 사용하여 기존 PostgreSQL 데이터베이스에 연결합니다.
사전 요구 사항
- Apicurio Registry Operator가 설치되어 있는지 확인합니다.
- OpenShift 클러스터에서 연결할 수 있는 PostgreSQL 데이터베이스가 있습니다.
절차
편집기에서
examples/apicurioregistry_sql_cr.yaml파일을 열고ApicurioRegistry사용자 정의 리소스 (CR)를 확인합니다.SQL 스토리지용 CR의 예
apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry-sql spec: configuration: persistence: "sql" sql: dataSource: url: "jdbc:postgresql://<service name>.<namespace>.svc:5432/<database name>" userName: "postgres" password: "<password>" # OptionaldataSource섹션에서 예제 설정을 데이터베이스 연결 세부 정보로 교체합니다. 예를 들면 다음과 같습니다.dataSource: url: "jdbc:postgresql://postgresql.apicurio-registry.svc:5432/registry" userName: "pgadmin" password: "pgpass"다음 명령을 입력하여
Apicurio RegistryOperator를 사용하여 네임스페이스에서 업데이트된 ApicurioRegistry CR을 적용하고 Apicurio Registry 인스턴스가 배포할 때까지 기다립니다.oc project "$NAMESPACE" oc apply -f ./examples/apicurioregistry_sql_cr.yamloc get deployment를 입력하여 Apicurio Registry 인스턴스의 준비 상태를 확인합니다. 예를 들어 출력은 다음과 같아야 합니다.NAME READY UP-TO-DATE AVAILABLE AGE example-apicurioregistry-sql-deployment 1/1 1 1 XmYsoc get routes를 입력하여HOST/PORTURL을 가져와서 브라우저에서 Apicurio Registry 웹 콘솔을 시작합니다. 예를 들면 다음과 같습니다.example-apicurioregistry-sql.apicurio-registry.router-default.apps.mycluster.myorg.mycompany.com
2장. OpenShift에 Apicurio Registry 설치 링크 복사링크가 클립보드에 복사되었습니다!
이 장에서는 OpenShift Container Platform에 Apicurio Registry를 설치하는 방법을 설명합니다.
2.1. OpenShift OperatorHub에서 Apicurio Registry 설치 링크 복사링크가 클립보드에 복사되었습니다!
OperatorHub에서 OpenShift 클러스터에 Apicurio Registry Operator를 설치할 수 있습니다. OperatorHub는 OpenShift Container Platform 웹 콘솔에서 사용할 수 있으며 클러스터 관리자가 Operator를 검색하고 설치할 수 있는 인터페이스를 제공합니다. 자세한 내용은 OperatorHub 이해를 참조하십시오.
환경에 따라 Apicurio Registry의 두 개 이상의 인스턴스를 설치할 수 있습니다. 인스턴스 수는 Apicurio Registry 및 선택한 스토리지 옵션에 저장된 아티팩트 수 및 유형에 따라 다릅니다.
사전 요구 사항
- OpenShift 클러스터에 대한 클러스터 관리자 액세스 권한이 있어야 합니다.
절차
- OpenShift Container Platform 웹 콘솔에서 클러스터 관리자 권한이 있는 계정을 사용하여 로그인합니다.
새 OpenShift 프로젝트를 생성합니다.
- 왼쪽 탐색 메뉴에서 홈,프로젝트 및 프로젝트 만들기 를 클릭합니다.
-
프로젝트 이름(예:
my-project)을 입력하고 생성을 클릭합니다.
- 왼쪽 탐색 메뉴에서 Operators 를 클릭한 다음 OperatorHub 를 클릭합니다.
-
키워드로 필터링 텍스트 상자에
레지스트리를 입력하여 Red Hat Integration - Service Registry Operator 를 찾습니다. - Operator에 대한 정보를 읽고 설치를 클릭하여 Operator 서브스크립션 페이지를 표시합니다.
서브스크립션 설정을 선택합니다. 예를 들면 다음과 같습니다.
Update Channel: 다음 중 하나를 선택합니다.
- 2.x: 2.3.0 및 2.0.3과 같은 모든 마이너 및 패치 업데이트를 포함합니다. 예를 들어 2.0.x에 설치가 2.3.x로 업그레이드됩니다.
- 2.0.x: 2.0.1 및 2.0.2와 같은 패치 업데이트만 포함합니다. 예를 들어 2.0.x 설치는 2.3.x를 무시합니다.
설치 모드: 다음 중 하나를 선택합니다.
- 클러스터의 모든 네임스페이스(기본값)
- 클러스터의 특정 네임스페이스 및 my-project
- 승인 전략: 자동 또는 수동을 선택합니다.
- 설치를 클릭하고 Operator를 사용할 준비가 될 때까지 잠시 기다립니다.
3장. AMQ Streams에 Apicurio Registry 스토리지 배포 링크 복사링크가 클립보드에 복사되었습니다!
이 장에서는 AMQ Streams에서 Apicurio Registry 데이터 스토리지를 설치 및 구성하는 방법을 설명합니다.
사전 요구 사항
3.1. OpenShift OperatorHub에서 AMQ Streams 설치 링크 복사링크가 클립보드에 복사되었습니다!
AMQ Streams가 설치되어 있지 않은 경우 OperatorHub에서 OpenShift 클러스터에 AMQ Streams Operator를 설치할 수 있습니다. OperatorHub는 OpenShift Container Platform 웹 콘솔에서 사용할 수 있으며 클러스터 관리자가 Operator를 검색하고 설치할 수 있는 인터페이스를 제공합니다. 자세한 내용은 OperatorHub 이해를 참조하십시오.
사전 요구 사항
- OpenShift 클러스터에 대한 클러스터 관리자 액세스 권한이 있어야 합니다.
- AMQ Streams 설치에 대한 자세한 내용은 OpenShift에서 AMQ Streams 배포 및 관리를 참조하십시오. 이 섹션에서는 OpenShift OperatorHub를 사용하여 설치하는 간단한 예를 보여줍니다.
절차
- OpenShift Container Platform 웹 콘솔에서 클러스터 관리자 권한이 있는 계정을 사용하여 로그인합니다.
-
AMQ Streams를 설치할 OpenShift 프로젝트로 변경합니다. 예를 들어 프로젝트 드롭다운에서
my-project를 선택합니다. - 왼쪽 탐색 메뉴에서 Operators 를 클릭한 다음 OperatorHub 를 클릭합니다.
-
키워드로 필터링 텍스트 상자에
AMQ Streams를 입력하여 Red Hat Integration - AMQ Streams Operator를 찾습니다. - Operator에 대한 정보를 읽고 설치를 클릭하여 Operator 서브스크립션 페이지를 표시합니다.
서브스크립션 설정을 선택합니다. 예를 들면 다음과 같습니다.
- 채널 업데이트 및 amq-streams-2.4.x
설치 모드: 다음 중 하나를 선택합니다.
- 클러스터의 모든 네임스페이스(기본값)
- 클러스터의 특정 네임스페이스 > my-project
- 승인 전략: 자동 또는 수동을 선택합니다.
- 설치를 클릭하고 Operator를 사용할 준비가 될 때까지 잠시 기다립니다.
3.2. OpenShift에서 Kafka 스토리지를 사용하여 Apicurio 레지스트리 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 OpenShift에서 AMQ Streams를 사용하여 Apicurio Registry의 Kafka 기반 스토리지를 구성하는 방법을 설명합니다. kafkasql 스토리지 옵션은 캐싱을 위해 메모리 내 H2 데이터베이스와 함께 Kafka 스토리지를 사용합니다. 이 스토리지 옵션은 OpenShift의 Kafka 클러스터에 대해 영구 스토리지가 구성된 경우 프로덕션 환경에 적합합니다.
기존 Kafka 클러스터에 Apicurio Registry를 설치하거나 환경에 따라 새 Kafka 클러스터를 생성할 수 있습니다.
사전 요구 사항
- 클러스터 관리자 액세스 권한이 있는 OpenShift 클러스터가 있어야 합니다.
- Apicurio Registry가 이미 설치되어 있어야 합니다. 2장. OpenShift에 Apicurio Registry 설치을 참조하십시오.
- AMQ Streams가 설치되어 있어야 합니다. 3.1절. “OpenShift OperatorHub에서 AMQ Streams 설치”을 참조하십시오.
절차
- OpenShift Container Platform 웹 콘솔에서 클러스터 관리자 권한이 있는 계정을 사용하여 로그인합니다.
Kafka 클러스터가 구성되어 있지 않은 경우 AMQ Streams를 사용하여 새 Kafka 클러스터를 생성합니다. 예를 들어 OpenShift OperatorHub에서 다음을 수행합니다.
- 설치된 Operators 를 클릭한 다음 Red Hat Integration - AMQ Streams 를 클릭합니다.
- 제공된 API 에서 Kafka 를 클릭한 다음 인스턴스 생성을 클릭하여 새 Kafka 클러스터를 생성합니다.
사용자 정의 리소스 정의를 적절하게 편집하고 생성을 클릭합니다.
주의기본 예제에서는 3개의 Zookeeper 노드와
임시스토리지가 있는 Kafka 노드 3개가 있는 클러스터를 생성합니다. 이 임시 스토리지는 개발 및 테스트에만 적합하며 프로덕션에는 적합하지 않습니다. 자세한 내용은 OpenShift에서 AMQ 스트림 배포 및 관리를 참조하십시오.
- 클러스터가 준비되면 제공된 API > Kafka > my-cluster > YAML 을 클릭합니다.
상태블록에서 나중에 Apicurio Registry를 배포하는 데 사용할bootstrapServers값의 사본을 만듭니다. 예를 들면 다음과 같습니다.status: ... conditions: ... listeners: - addresses: - host: my-cluster-kafka-bootstrap.my-project.svc port: 9092 bootstrapServers: 'my-cluster-kafka-bootstrap.my-project.svc:9092' type: plain ...- 설치된 Operators > Red Hat Integration - Service Registry > ApicurioRegistry > Create ApicurioRegistry 를 클릭합니다.
다음 사용자 정의 리소스 정의에 붙여넣지만 이전에 복사한
bootstrapServers값을 사용합니다.apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry-kafkasql spec: configuration: persistence: 'kafkasql' kafkasql: bootstrapServers: 'my-cluster-kafka-bootstrap.my-project.svc:9092'- 생성을 클릭하고 OpenShift에서 Apicurio 레지스트리 경로가 생성될 때까지 기다립니다.
네트워킹 > 경로를 클릭하여 Apicurio Registry 웹 콘솔의 새 경로에 액세스합니다. 예를 들면 다음과 같습니다.
http://example-apicurioregistry-kafkasql.my-project.my-domain-name.com/Apicurio Registry가 데이터를 저장하는 데 사용하는 Kafka 주제를 구성하려면 설치된 Operator > Red Hat Integration - AMQ Streams > Provided APIs > Kafka Topic > kafkasql-journal > YAML 을 클릭합니다. 예를 들면 다음과 같습니다.
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaTopic metadata: name: kafkasql-journal labels: strimzi.io/cluster: my-cluster namespace: ... spec: partitions: 3 replicas: 3 config: cleanup.policy: compact주의Apicurio Registry에서 사용하는 Kafka 주제(기본적으로
kafkasql-journal)를 압축 정리 정책을 사용하여 구성해야 합니다. 그렇지 않으면 데이터 손실이 발생할 수 있습니다.
3.3. TLS 보안을 사용하여 Kafka 스토리지 구성 링크 복사링크가 클립보드에 복사되었습니다!
AMQ Streams Operator 및 Apicurio Registry Operator를 구성하여 암호화된 TLS(Transport Layer Security) 연결을 사용할 수 있습니다.
사전 요구 사항
- OperatorHub 또는 명령줄을 사용하여 Apicurio Registry Operator를 설치했습니다.
- AMQ Streams Operator를 설치하거나 OpenShift 클러스터에서 Kafka에 액세스할 수 있습니다.
이 섹션에서는 AMQ Streams Operator를 사용할 수 있다고 가정하지만 Kafka 배포를 사용할 수 있습니다. 이 경우 Apicurio Registry Operator에서 예상하는 Openshift 시크릿을 수동으로 생성해야 합니다.
절차
- OpenShift 웹 콘솔에서 설치된 Operator를 클릭하고 AMQ Streams Operator 세부 정보를 선택한 다음 Kafka 탭을 선택합니다.
- Kafka 생성을 클릭하여 Apicurio 레지스트리 스토리지에 대한 새 Kafka 클러스터를 프로비저닝합니다.
Kafka 클러스터에 TLS 인증을 사용하도록
권한 부여및tls필드를 구성합니다. 예를 들면 다음과 같습니다.apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster namespace: registry-example-kafkasql-tls # Change or remove the explicit namespace spec: kafka: config: offsets.topic.replication.factor: 3 transaction.state.log.replication.factor: 3 transaction.state.log.min.isr: 2 log.message.format.version: '2.7' inter.broker.protocol.version: '2.7' version: 2.7.0 storage: type: ephemeral replicas: 3 listeners: - name: tls port: 9093 type: internal tls: true authentication: type: tls authorization: type: simple entityOperator: topicOperator: {} userOperator: {} zookeeper: storage: type: ephemeral replicas: 3데이터를 저장하기 위해 Apicurio Registry에서 자동으로 생성되는 기본 Kafka 주제 이름은
kafkasql-journal입니다. 환경 변수를 설정하여 이 동작 또는 기본 주제 이름을 재정의할 수 있습니다. 기본값은 다음과 같습니다.-
REGISTRY_KAFKASQL_TOPIC_AUTO_CREATE=true -
REGISTRY_KAFKASQL_TOPIC=kafkasql-journal
Kafka 주제를 수동으로 생성하지 않으려면 다음 단계를 건너뜁니다.
-
Kafka 주제 탭을 클릭한 다음 Kafka 주제 만들기 를 클릭하여
kafkasql-journal주제를 생성합니다.apiVersion: kafka.strimzi.io/v1beta1 kind: KafkaTopic metadata: name: kafkasql-journal labels: strimzi.io/cluster: my-cluster namespace: registry-example-kafkasql-tls spec: partitions: 2 replicas: 1 config: cleanup.policy: compactKafka 사용자 리소스를 생성하여 Apicurio Registry 사용자에 대한 인증 및 권한 부여를 구성합니다.
metadata섹션에 사용자 이름을 지정하거나 기본my-user를 사용할 수 있습니다.apiVersion: kafka.strimzi.io/v1beta1 kind: KafkaUser metadata: name: my-user labels: strimzi.io/cluster: my-cluster namespace: registry-example-kafkasql-tls spec: authentication: type: tls authorization: acls: - operation: All resource: name: '*' patternType: literal type: topic - operation: All resource: name: '*' patternType: literal type: cluster - operation: All resource: name: '*' patternType: literal type: transactionalId - operation: All resource: name: '*' patternType: literal type: group type: simple참고이 간단한 예제에서는 admin 권한을 가정하고 Kafka 주제를 자동으로 생성합니다. Apicurio 레지스트리에 필요한 주제 및 리소스에 대해 특별히
권한 부여섹션을 구성해야 합니다.다음 예제에서는 Kafka 주제를 수동으로 생성할 때 필요한 최소 구성을 보여줍니다.
... authorization: acls: - operations: - Read - Write resource: name: kafkasql-journal patternType: literal type: topic - operations: - Read - Write resource: name: apicurio-registry- patternType: prefix type: group type: simple워크로드 를 클릭한 다음 시크릿을 클릭하여 Apicurio Registry에서 Kafka 클러스터에 연결할 수 있도록 AMQ Streams에서 생성하는 두 가지 시크릿을 찾습니다.
-
my-cluster-cluster-ca-cert- Kafka 클러스터의 PKCS12 신뢰 저장소 포함 my-user- 사용자의 키 저장소를 포함합니다.참고시크릿 이름은 클러스터 또는 사용자 이름에 따라 다를 수 있습니다.
-
보안을 수동으로 생성하는 경우 다음 키-값 쌍을 포함해야 합니다.
my-cluster-ca-cert
-
ca.p12- PKCS12 형식의 신뢰 저장소 -
ca.password- truststore 암호
-
my-user
-
user.p12- PKCS12 형식의 키 저장소 -
user.password- keystore password
-
Apicurio Registry를 배포하도록 다음 예제 구성을 구성합니다.
apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry-kafkasql-tls spec: configuration: persistence: "kafkasql" kafkasql: bootstrapServers: "my-cluster-kafka-bootstrap.registry-example-kafkasql-tls.svc:9093" security: tls: keystoreSecretName: my-user truststoreSecretName: my-cluster-cluster-ca-cert
비보안 일반 사용 사례와 다른 bootstrapServers 주소를 사용해야 합니다. 주소는 TLS 연결을 지원해야 하며 type: tls 필드 아래의 지정된 Kafka 리소스에 있습니다.
3.4. SCRAM 보안을 사용하여 Kafka 스토리지 구성 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 클러스터에 Salted Challenge Response Authentication Mechanism(SCRAM-SHA-512)을 사용하도록 AMQ Streams Operator 및 Apicurio Registry Operator를 구성할 수 있습니다.
사전 요구 사항
- OperatorHub 또는 명령줄을 사용하여 Apicurio Registry Operator를 설치했습니다.
- AMQ Streams Operator를 설치하거나 OpenShift 클러스터에서 Kafka에 액세스할 수 있습니다.
이 섹션에서는 AMQ Streams Operator를 사용할 수 있다고 가정하지만 Kafka 배포를 사용할 수 있습니다. 이 경우 Apicurio Registry Operator에서 예상하는 Openshift 시크릿을 수동으로 생성해야 합니다.
절차
- OpenShift 웹 콘솔에서 설치된 Operator를 클릭하고 AMQ Streams Operator 세부 정보를 선택한 다음 Kafka 탭을 선택합니다.
- Kafka 생성을 클릭하여 Apicurio 레지스트리 스토리지에 대한 새 Kafka 클러스터를 프로비저닝합니다.
Kafka 클러스터에 SCRAM-SHA-512 인증을 사용하도록
권한 부여및tls필드를 구성합니다. 예를 들면 다음과 같습니다.apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster namespace: registry-example-kafkasql-scram # Change or remove the explicit namespace spec: kafka: config: offsets.topic.replication.factor: 3 transaction.state.log.replication.factor: 3 transaction.state.log.min.isr: 2 log.message.format.version: '2.7' inter.broker.protocol.version: '2.7' version: 2.7.0 storage: type: ephemeral replicas: 3 listeners: - name: tls port: 9093 type: internal tls: true authentication: type: scram-sha-512 authorization: type: simple entityOperator: topicOperator: {} userOperator: {} zookeeper: storage: type: ephemeral replicas: 3데이터를 저장하기 위해 Apicurio Registry에서 자동으로 생성되는 기본 Kafka 주제 이름은
kafkasql-journal입니다. 환경 변수를 설정하여 이 동작 또는 기본 주제 이름을 재정의할 수 있습니다. 기본값은 다음과 같습니다.-
REGISTRY_KAFKASQL_TOPIC_AUTO_CREATE=true -
REGISTRY_KAFKASQL_TOPIC=kafkasql-journal
Kafka 주제를 수동으로 생성하지 않으려면 다음 단계를 건너뜁니다.
-
Kafka 주제 탭을 클릭한 다음 Kafka 주제 만들기 를 클릭하여
kafkasql-journal주제를 생성합니다.apiVersion: kafka.strimzi.io/v1beta1 kind: KafkaTopic metadata: name: kafkasql-journal labels: strimzi.io/cluster: my-cluster namespace: registry-example-kafkasql-scram spec: partitions: 2 replicas: 1 config: cleanup.policy: compactKafka 사용자 리소스를 생성하여 Apicurio 레지스트리 사용자에 대한 SCRAM 인증 및 권한 부여를 구성합니다.
metadata섹션에 사용자 이름을 지정하거나 기본my-user를 사용할 수 있습니다.apiVersion: kafka.strimzi.io/v1beta1 kind: KafkaUser metadata: name: my-user labels: strimzi.io/cluster: my-cluster namespace: registry-example-kafkasql-scram spec: authentication: type: scram-sha-512 authorization: acls: - operation: All resource: name: '*' patternType: literal type: topic - operation: All resource: name: '*' patternType: literal type: cluster - operation: All resource: name: '*' patternType: literal type: transactionalId - operation: All resource: name: '*' patternType: literal type: group type: simple참고이 간단한 예제에서는 admin 권한을 가정하고 Kafka 주제를 자동으로 생성합니다. Apicurio 레지스트리에 필요한 주제 및 리소스에 대해 특별히
권한 부여섹션을 구성해야 합니다.다음 예제에서는 Kafka 주제를 수동으로 생성할 때 필요한 최소 구성을 보여줍니다.
... authorization: acls: - operations: - Read - Write resource: name: kafkasql-journal patternType: literal type: topic - operations: - Read - Write resource: name: apicurio-registry- patternType: prefix type: group type: simple워크로드 를 클릭한 다음 시크릿을 클릭하여 Apicurio Registry에서 Kafka 클러스터에 연결할 수 있도록 AMQ Streams에서 생성하는 두 가지 시크릿을 찾습니다.
-
my-cluster-cluster-ca-cert- Kafka 클러스터의 PKCS12 신뢰 저장소 포함 my-user- 사용자의 키 저장소를 포함합니다.참고시크릿 이름은 클러스터 또는 사용자 이름에 따라 다를 수 있습니다.
-
보안을 수동으로 생성하는 경우 다음 키-값 쌍을 포함해야 합니다.
my-cluster-ca-cert
-
ca.p12- PKCS12 형식의 신뢰 저장소 -
ca.password- truststore 암호
-
my-user
-
암호- 사용자 암호
-
Apicurio Registry를 배포하려면 다음 예제 설정을 구성합니다.
apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry-kafkasql-scram spec: configuration: persistence: "kafkasql" kafkasql: bootstrapServers: "my-cluster-kafka-bootstrap.registry-example-kafkasql-scram.svc:9093" security: scram: truststoreSecretName: my-cluster-cluster-ca-cert user: my-user passwordSecretName: my-user
비보안 일반 사용 사례와 다른 bootstrapServers 주소를 사용해야 합니다. 주소는 TLS 연결을 지원해야 하며 type: tls 필드 아래의 지정된 Kafka 리소스에 있습니다.
3.5. Kafka 스토리지에 대한 OAuth 인증 구성 링크 복사링크가 클립보드에 복사되었습니다!
AMQ Streams에서 Kafka 기반 스토리지를 사용하는 경우 Apicurio Registry는 OAuth 인증이 필요한 Kafka 클러스터 액세스를 지원합니다. 이 지원을 활성화하려면 Apicurio Registry 배포에서 일부 환경 변수를 설정해야 합니다.
이러한 환경 변수를 설정하면 Apicurio 레지스트리의 Kafka 생산자 및 소비자 애플리케이션은 이 구성을 사용하여 OAuth를 통해 Kafka 클러스터에 인증합니다.
사전 요구 사항
- AMQ Streams에 Apicurio 레지스트리 데이터의 Kafka 기반 스토리지가 이미 구성되어 있어야 합니다. 3.2절. “OpenShift에서 Kafka 스토리지를 사용하여 Apicurio 레지스트리 구성”을 참조하십시오.
절차
Apicurio Registry 배포에서 다음 환경 변수를 설정합니다.
Expand 환경 변수 설명 기본값 ENABLE_KAFKA_SASLKafka에서 Apicurio Registry 스토리지에 대한 SASL OAuth 인증을 활성화합니다. 다른 변수가 적용되려면 이 변수를
true로 설정해야 합니다.falseCLIENT_IDKafka 인증에 사용되는 클라이언트 ID입니다.
-CLIENT_SECRETKafka 인증에 사용되는 클라이언트 시크릿입니다.
-OAUTH_TOKEN_ENDPOINT_URIOAuth ID 서버의 URL입니다.
http://localhost:8090
추가 리소스
- OpenShift에서 Apicurio 레지스트리 환경 변수를 설정하는 방법의 예는 다음을 참조하십시오. 6.1절. “OpenShift에서 Apicurio 레지스트리 상태 점검 구성”
4장. PostgreSQL 데이터베이스에 Apicurio 레지스트리 스토리지 배포 링크 복사링크가 클립보드에 복사되었습니다!
이 장에서는 PostgreSQL 데이터베이스에서 Apicurio Registry 데이터 스토리지를 설치, 구성, 관리하는 방법을 설명합니다.
사전 요구 사항
4.1. OpenShift OperatorHub에서 PostgreSQL 데이터베이스 설치 링크 복사링크가 클립보드에 복사되었습니다!
PostgreSQL 데이터베이스 Operator가 설치되어 있지 않은 경우 OperatorHub에서 OpenShift 클러스터에 PostgreSQL Operator를 설치할 수 있습니다. OperatorHub는 OpenShift Container Platform 웹 콘솔에서 사용할 수 있으며 클러스터 관리자가 Operator를 검색하고 설치할 수 있는 인터페이스를 제공합니다. 자세한 내용은 OperatorHub 이해를 참조하십시오.
사전 요구 사항
- OpenShift 클러스터에 대한 클러스터 관리자 액세스 권한이 있어야 합니다.
절차
- OpenShift Container Platform 웹 콘솔에서 클러스터 관리자 권한이 있는 계정을 사용하여 로그인합니다.
-
PostgreSQL Operator를 설치할 OpenShift 프로젝트로 변경합니다. 예를 들어 프로젝트 드롭다운에서
my-project를 선택합니다. - 왼쪽 탐색 메뉴에서 Operators 를 클릭한 다음 OperatorHub 를 클릭합니다.
-
키워드로 필터링 텍스트 상자에
PostgreSQL을 입력하여 환경에 적합한 Operator를 찾습니다(예: OpenShift용 Crunchy PostgreSQL ). - Operator에 대한 정보를 읽고 설치를 클릭하여 Operator 서브스크립션 페이지를 표시합니다.
서브스크립션 설정을 선택합니다. 예를 들면 다음과 같습니다.
- 업데이트 채널:stable
- 설치 모드:클러스터의 특정 네임스페이스 및 my-project
- 승인 전략: 자동 또는 수동을 선택합니다.
설치를 클릭하고 Operator를 사용할 준비가 될 때까지 잠시 기다립니다.
중요데이터베이스를 생성하고 관리하는 방법에 대한 자세한 내용은 선택한 PostgreSQL Operator의 문서를 참조하십시오.
4.2. OpenShift에서 PostgreSQL 데이터베이스 스토리지를 사용하여 Apicurio Registry 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 PostgreSQL 데이터베이스 Operator를 사용하여 OpenShift에서 Apicurio Registry의 스토리지를 구성하는 방법을 설명합니다. Apicurio Registry를 기존 데이터베이스에 설치하거나 환경에 따라 새 데이터베이스를 생성할 수 있습니다. 이 섹션에서는 Dev4Ddevs.com의 PostgreSQL Operator를 사용하는 간단한 예를 보여줍니다.
사전 요구 사항
- 클러스터 관리자 액세스 권한이 있는 OpenShift 클러스터가 있어야 합니다.
- Apicurio Registry가 이미 설치되어 있어야 합니다. 2장. OpenShift에 Apicurio Registry 설치을 참조하십시오.
- OpenShift에 PostgreSQL Operator가 설치되어 있어야 합니다. 예를 들어 4.1절. “OpenShift OperatorHub에서 PostgreSQL 데이터베이스 설치” 에서 참조하십시오.
절차
- OpenShift Container Platform 웹 콘솔에서 클러스터 관리자 권한이 있는 계정을 사용하여 로그인합니다.
-
Apicurio Registry 및 PostgreSQL Operator가 설치된 OpenShift 프로젝트로 변경합니다. 예를 들어 프로젝트 드롭다운에서
my-project를 선택합니다. - Apicurio 레지스트리 스토리지에 사용할 PostgreSQL 데이터베이스를 생성합니다. 예를 들어 설치된 Operator , Dev4Ddevs.com의 PostgreSQL Operator 를 클릭한 다음 Create database 를 클릭합니다.
YAML 을 클릭하고 다음과 같이 데이터베이스 설정을 편집합니다.
-
name: 값을registry로 변경 -
이미지: 값을centos/postgresql-12-centos7로 변경합니다.
-
환경에 따라 필요에 따라 다른 데이터베이스 설정을 편집합니다. 예를 들면 다음과 같습니다.
apiVersion: postgresql.dev4devs.com/v1alpha1 kind: Database metadata: name: registry namespace: my-project spec: databaseCpu: 30m databaseCpuLimit: 60m databaseMemoryLimit: 512Mi databaseMemoryRequest: 128Mi databaseName: example databaseNameKeyEnvVar: POSTGRESQL_DATABASE databasePassword: postgres databasePasswordKeyEnvVar: POSTGRESQL_PASSWORD databaseStorageRequest: 1Gi databaseUser: postgres databaseUserKeyEnvVar: POSTGRESQL_USER image: centos/postgresql-12-centos7 size: 1- 생성을 클릭하고 데이터베이스가 생성될 때까지 기다립니다.
- 설치된 Operators > Red Hat Integration - Service Registry > ApicurioRegistry > Create ApicurioRegistry 를 클릭합니다.
다음 사용자 정의 리소스 정의에 붙여넣고 사용자 환경과 일치하도록 데이터베이스
URL및 인증 정보를 편집합니다.apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry-sql spec: configuration: persistence: 'sql' sql: dataSource: url: 'jdbc:postgresql://<service name>.<namespace>.svc:5432/<database name>' # e.g. url: 'jdbc:postgresql://acid-minimal-cluster.my-project.svc:5432/registry' userName: 'postgres' password: '<password>' # Optional- 생성을 클릭하고 OpenShift에서 Apicurio 레지스트리 경로가 생성될 때까지 기다립니다.
네트워킹 > 경로를 클릭하여 Apicurio Registry 웹 콘솔의 새 경로에 액세스합니다. 예를 들면 다음과 같습니다.
http://example-apicurioregistry-sql.my-project.my-domain-name.com/
4.3. Apicurio Registry PostgreSQL 스토리지 백업 링크 복사링크가 클립보드에 복사되었습니다!
PostgreSQL 데이터베이스에서 스토리지를 사용하는 경우 Apicurio Registry에서 저장한 데이터를 정기적으로 백업해야 합니다.
SQL 덤프 는 모든 PostgreSQL 설치에서 작동하는 간단한 절차입니다. 이 명령은 pg_dump 유틸리티를 사용하여 덤프 시와 동일한 상태로 데이터베이스를 다시 생성하는 데 사용할 수 있는 SQL 명령으로 파일을 생성합니다.
pg_dump 는 일반 PostgreSQL 클라이언트 애플리케이션으로, 데이터베이스에 액세스할 수 있는 원격 호스트에서 실행할 수 있습니다. 다른 클라이언트와 마찬가지로 수행할 수 있는 작업은 사용자 권한으로 제한됩니다.
절차
pg_dump명령을 사용하여 출력을 파일로 리디렉션합니다.$ pg_dump dbname > dumpfilepg_dump가-h 호스트 및옵션을 사용하여 연결하는 데이터베이스 서버를 지정할 수 있습니다.-p 포트gzip과 같은 압축 도구를 사용하여 대규모 덤프 파일을 줄일 수 있습니다. 예를 들면 다음과 같습니다.
$ pg_dump dbname | gzip > filename.gz
추가 리소스
- 클라이언트 인증에 대한 자세한 내용은 PostgreSQL 문서를 참조하십시오.
- 레지스트리 콘텐츠 가져오기 및 내보내기에 대한 자세한 내용은 REST API를 사용하여 Apicurio 레지스트리 콘텐츠 관리를 참조하십시오.
4.4. Apicurio Registry PostgreSQL 스토리지 복원 링크 복사링크가 클립보드에 복사되었습니다!
psql 유틸리티를 사용하여 pg_dump 에서 생성한 SQL Dump 파일을 복원할 수 있습니다.
사전 요구 사항
-
pg_dump를 사용하여 PostgreSQL datbase를 이미 백업해야 합니다. 4.3절. “Apicurio Registry PostgreSQL 스토리지 백업”을 참조하십시오. - 개체가 있거나 덤프된 데이터베이스의 개체에 대한 권한이 있는 모든 사용자는 이미 존재해야 합니다.
절차
다음 명령을 입력하여 데이터베이스를 생성합니다.
$ createdb -T template0 dbnameSQL 덤프를 복원하려면 다음 명령을 입력하십시오.
$ psql dbname < dumpfile- 쿼리의 통계에 유용한 통계가 있도록 각 데이터베이스에서 ANALYZE 를 실행합니다.
5장. Apicurio 레지스트리 배포 보안 링크 복사링크가 클립보드에 복사되었습니다!
이 장에서는 OpenShift에서 Apicurio Registry 배포에 대한 보안 설정을 구성하는 방법을 설명합니다.
- 5.1절. “Red Hat Single Sign-On Operator를 사용하여 Apicurio Registry 보안”
- 5.2절. “Red Hat Single Sign-On을 사용하여 Apicurio Registry 인증 및 권한 부여 구성”
- 5.3절. “Apicurio Registry 인증 및 권한 부여 구성 옵션”
- 5.4절. “OpenShift 클러스터 내부에서 Apicurio Registry에 대한 HTTPS 연결 구성”
- 5.5절. “OpenShift 클러스터 외부에서 Apicurio Registry에 대한 HTTPS 연결 구성”
Apicurio Registry는 OpenID Connect (OIDC) 또는 HTTP 기본을 기반으로 Red Hat Single Sign-On을 사용하여 인증 및 권한 부여를 제공합니다. Red Hat Single Sign-On Operator를 사용하여 필요한 설정을 자동으로 구성하거나 Red Hat Single Sign-On 및 Apicurio Registry에서 수동으로 구성할 수 있습니다.
Apicurio Registry는 Red Hat Single Sign-On을 사용하여 Apicurio Registry 웹 콘솔 및 코어 REST API에 대한 역할 기반 인증 및 권한 부여를 제공합니다. 또한 Apicurio Registry는 아티팩트 작성자만 쓰기 액세스 권한이 있는 스키마 또는 API 수준에서 콘텐츠 기반 권한 부여를 제공합니다. OpenShift 클러스터 내부 또는 외부에서 Apicurio 레지스트리에 대한 HTTPS 연결을 구성할 수도 있습니다.
5.1. Red Hat Single Sign-On Operator를 사용하여 Apicurio Registry 보안 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 Red Hat Single Sign-On으로 Apicurio Registry REST API 및 웹 콘솔을 구성하는 방법을 보여줍니다.
Apicurio Registry에서는 다음 사용자 역할을 지원합니다.
| 이름 | capabilities |
|---|---|
|
| 전체 액세스, 제한 없음. |
|
|
아티팩트를 생성하고 아티팩트 규칙을 구성합니다. 글로벌 규칙을 수정하거나 가져오기/내보딩을 수행하거나 |
|
|
보기 및 검색만 가능 아티팩트 또는 규칙을 수정하거나 가져오기/내보딩을 수행하거나 |
ApicurioRegistry CRD에 웹 콘솔을 읽기 전용 모드로 설정하는 데 사용할 수 있는 관련 구성 옵션이 있습니다. 그러나 이 구성은 REST API에 영향을 미치지 않습니다.
사전 요구 사항
- Apicurio Registry Operator가 이미 설치되어 있어야 합니다.
- Red Hat Single Sign-On Operator를 설치하거나 OpenShift 클러스터에서 Red Hat Single Sign-On에 액세스할 수 있어야 합니다.
이 절차의 예제 구성은 개발 및 테스트 전용입니다. 절차를 단순화하기 위해 HTTPS 및 프로덕션 환경에 권장되는 기타 방위를 사용하지 않습니다. 자세한 내용은 Red Hat Single Sign-On 설명서를 참조하십시오.
절차
- OpenShift 웹 콘솔에서 설치된 Operator 및 Red Hat Single Sign-On Operator 를 클릭한 다음 Keycloak 탭을 클릭합니다.
Create Keycloak 을 클릭하여 Apicurio Registry 배포를 보호하려면 새 Red Hat Single Sign-On 인스턴스를 프로비저닝합니다. 기본값을 사용할 수 있습니다. 예를 들면 다음과 같습니다.
apiVersion: keycloak.org/v1alpha1 kind: Keycloak metadata: name: example-keycloak labels: app: sso spec: instances: 1 externalAccess: enabled: True podDisruptionBudget: enabled: True- 인스턴스가 생성될 때까지 기다린 다음 네트워킹을 클릭한 다음 Routes 를 클릭하여 keycloak 인스턴스의 새 경로에 액세스합니다.
- 위치 URL을 클릭하고 Apicurio Registry를 배포할 때 나중에 사용할 수 있도록 표시된 URL 값을 복사합니다.
Installed Operators 및 Red Hat Single Sign-On Operator 를 클릭하고 Keycloak Tab 탭을 클릭한 다음 Create Keycloak >-<을 클릭하여
레지스트리예제 영역을 생성합니다.apiVersion: keycloak.org/v1alpha1 kind: KeycloakRealm metadata: name: registry-keycloakrealm labels: app: registry spec: instanceSelector: matchLabels: app: sso realm: displayName: Registry enabled: true id: registry realm: registry sslRequired: none roles: realm: - name: sr-admin - name: sr-developer - name: sr-readonly clients: - clientId: registry-client-ui implicitFlowEnabled: true redirectUris: - '*' standardFlowEnabled: true webOrigins: - '*' publicClient: true - clientId: registry-client-api implicitFlowEnabled: true redirectUris: - '*' standardFlowEnabled: true webOrigins: - '*' publicClient: true users: - credentials: - temporary: false type: password value: changeme enabled: true realmRoles: - sr-admin username: registry-admin - credentials: - temporary: false type: password value: changeme enabled: true realmRoles: - sr-developer username: registry-developer - credentials: - temporary: false type: password value: changeme enabled: true realmRoles: - sr-readonly username: registry-user중요프로덕션에 배포하는 경우 환경에 적합한 값으로 이
KeycloakRealm리소스를 사용자 지정해야 합니다. Red Hat Single Sign-On 웹 콘솔을 사용하여 영역을 생성하고 관리할 수도 있습니다.클러스터에 유효한 HTTPS 인증서가 구성되어 있지 않은 경우 임시 해결 방법으로 다음 HTTP
서비스및Ingress리소스를 생성할 수 있습니다.네트워킹을 클릭한 다음 Services 를 클릭하고 다음 예제를 사용하여 서비스 생성을 클릭합니다.
apiVersion: v1 kind: Service metadata: name: keycloak-http labels: app: keycloak spec: ports: - name: keycloak-http protocol: TCP port: 8080 targetPort: 8080 selector: app: keycloak component: keycloak type: ClusterIP sessionAffinity: None status: loadBalancer: {}네트워킹을 클릭한 다음 Ingresses 를 클릭하고 다음 예제를 사용하여 Ingress 생성을 클릭합니다.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: keycloak-http labels: app: keycloak spec: rules: - host: KEYCLOAK_HTTP_HOST http: paths: - path: / pathType: ImplementationSpecific backend: service: name: keycloak-http port: number: 8080host값을 수정하여 Apicurio Registry 사용자가 액세스할 수 있는 경로를 생성하고 Red Hat Single Sign-On Operator에서 생성한 HTTPS 경로 대신 사용합니다.
Apicurio Registry Operator 를 클릭하고 ApicurioRegistry 탭에서 다음 예제를 사용하여 ApicurioRegistry 만들기 를 클릭하고
keycloak섹션의 값을 바꿉니다.apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry-kafkasql-keycloak spec: configuration: security: keycloak: url: "http://keycloak-http-<namespace>.apps.<cluster host>" # ^ Required # Use an HTTP URL in development. realm: "registry" # apiClientId: "registry-client-api" # ^ Optional (default value) # uiClientId: "registry-client-ui" # ^ Optional (default value) persistence: 'kafkasql' kafkasql: bootstrapServers: '<my-cluster>-kafka-bootstrap.<my-namespace>.svc:9092'
5.2. Red Hat Single Sign-On을 사용하여 Apicurio Registry 인증 및 권한 부여 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 Red Hat Single Sign-On을 사용하여 Apicurio Registry에 대한 인증 및 권한 부여 옵션을 수동으로 구성하는 방법을 설명합니다.
또는 이러한 설정을 자동으로 구성하는 방법에 대한 자세한 내용은 5.1절. “Red Hat Single Sign-On Operator를 사용하여 Apicurio Registry 보안” 을 참조하십시오.
OIDC(OpenID Connect)를 사용하여 OAuth를 기반으로 Red Hat Single Sign-On을 사용하여 Apicurio Registry 웹 콘솔 및 코어 REST API에 대한 인증을 활성화할 수 있습니다. 동일한 Red Hat Single Sign-On 영역과 OpenID Connect를 사용하여 Apicurio Registry 웹 콘솔과 코어 REST API를 통해 페더레이션되어 하나의 자격 증명만 있으면 됩니다.
Apicurio Registry는 기본 admin, write, 읽기 전용 사용자 역할에 대한 역할 기반 권한 부여를 제공합니다. 또한 Apicurio Registry는 스키마 또는 API 수준에서 콘텐츠 기반 권한 부여를 제공하며, 레지스트리 아티팩트 작성자만 업데이트하거나 삭제할 수 있습니다. Apicurio 레지스트리 인증 및 권한 부여 설정은 기본적으로 비활성화되어 있습니다.
사전 요구 사항
- Red Hat Single Sign-On이 설치되어 실행 중입니다. 자세한 내용은 Red Hat Single Sign-On 사용자 설명서를 참조하십시오.
- Apicurio Registry가 설치되어 실행 중입니다.
절차
-
Red Hat Single Sign-On 관리 콘솔에서 Apicurio Registry용 Red Hat Single Sign-On 영역을 생성합니다. 기본적으로 Apicurio Registry에는
레지스트리의 영역 이름이 필요합니다. 영역 생성에 대한 자세한 내용은 Red Hat Single Sign-On 사용자 설명서를 참조하십시오. Apicurio Registry API에 사용할 Red Hat Single Sign-On 클라이언트를 만듭니다. 기본적으로 Apicurio Registry에는 다음 설정이 필요합니다.
-
클라이언트 ID:
registry-api -
클라이언트 프로토콜:
openid-connect 액세스 유형:
베어러 전용다른 클라이언트 설정에 기본값을 사용할 수 있습니다.
참고Red Hat Single Sign-On 서비스 계정을 사용하는 경우
bearer-only대신 클라이언트 액세스 유형을기밀로유지해야 합니다.
-
클라이언트 ID:
Apicurio Registry 웹 콘솔의 Red Hat Single Sign-On 클라이언트를 만듭니다. 기본적으로 Apicurio Registry에는 다음 설정이 필요합니다.
-
클라이언트 ID:
apicurio-registry -
클라이언트 프로토콜:
openid-connect -
액세스 유형:
public -
유효한 리디렉션 URL:
http://my-registry-url:8080/* 웹 출처:
+다른 클라이언트 설정에 기본값을 사용할 수 있습니다.
-
클라이언트 ID:
OpenShift의 Apicurio Registry 배포에서 Red Hat Single Sign-On을 사용하여 인증을 구성하려면 다음 Apicurio Registry 환경 변수를 설정합니다.
Expand 표 5.2. Apicurio 레지스트리 인증 구성 환경 변수 설명 유형 Default AUTH_ENABLEDtrue로 설정하면 이어지는 환경 변수가 필요합니다.문자열
falseKEYCLOAK_URL사용할 Red Hat Single Sign-On 인증 서버의 URL입니다.
없음
KEYCLOAK_REALM인증에 사용되는 Red Hat Single Sign-On 영역입니다.
문자열
레지스트리KEYCLOAK_API_CLIENT_IDApicurio Registry REST API의 클라이언트 ID입니다.
문자열
registry-apiKEYCLOAK_UI_CLIENT_ID작은 정보OpenShift에서 환경 변수를 설정하는 예는 6.1절. “OpenShift에서 Apicurio 레지스트리 상태 점검 구성” 을 참조하십시오.
Red Hat Single Sign-On에서 Apicurio Registry 사용자 역할을 활성화하려면 다음 옵션을
true로 설정합니다.Expand 표 5.3. Apicurio 레지스트리 역할 기반 권한 부여 구성 환경 변수 Java 시스템 속성 유형 기본값 ROLE_BASED_AUTHZ_ENABLEDregistry.auth.role-based-authorization부울
falseApicurio 레지스트리 사용자 역할이 활성화되면 Apicurio Registry 사용자를 Red Hat Single Sign-On 영역에서 다음 기본 사용자 역할 중 하나에 할당해야 합니다.
Expand 표 5.4. 레지스트리 인증 및 권한 부여에 대한 기본 사용자 역할 Role 아티팩트 읽기 아티팩트 쓰기 글로벌 규칙 요약 sr-admin제공됨
제공됨
제공됨
모든 생성, 읽기, 업데이트 및 삭제 작업에 대한 전체 액세스 권한
sr-developer제공됨
제공됨
없음
글로벌 규칙 구성을 제외하고 생성, 읽기, 업데이트 및 삭제 작업에 액세스할 수 있습니다. 이 역할은 아티팩트별 규칙을 구성할 수 있습니다.
sr-readonly제공됨
없음
없음
읽기 및 검색 작업만 액세스할 수 있습니다. 이 역할은 규칙을 구성할 수 없습니다.
Apicurio Registry에서 스키마 및 API 아티팩트에 대한 업데이트에 대한 소유자 전용 권한 부여를 활성화하려면 다음을
true로 설정합니다.Expand 표 5.5. 소유자 전용 권한 부여 구성 환경 변수 Java 시스템 속성 유형 기본값 REGISTRY_AUTH_OBAC_ENABLEDregistry.auth.owner-only-authorization부울
false
5.3. Apicurio Registry 인증 및 권한 부여 구성 옵션 링크 복사링크가 클립보드에 복사되었습니다!
Apicurio Registry는 Red Hat Single Sign-On 또는 HTTP 기본 인증을 사용하는 OpenID Connect에 대한 인증 옵션을 제공합니다.
Apicurio Registry는 역할 기반 및 콘텐츠 기반 접근 방식에 대한 권한 부여 옵션을 제공합니다.
- 기본 admin, write 및 읽기 전용 사용자 역할에 대한 역할 기반 권한 부여
- 아티팩트 또는 아티팩트 그룹의 소유자만 아티팩트 또는 아티팩트 그룹의 소유자만 업데이트하거나 삭제할 수 있는 스키마 또는 API 아티팩트에 대한 콘텐츠 기반 권한 부여입니다.
Apicurio 레지스트리의 모든 인증 및 권한 부여 옵션은 기본적으로 비활성화되어 있습니다. 이러한 옵션을 활성화하기 전에 먼저 AUTH_ENABLED 옵션을 true 로 설정해야 합니다.
이 장에서는 다음 구성 옵션에 대해 자세히 설명합니다.
Red Hat Single Sign-On과 OpenID Connect를 사용하여 Apicurio 레지스트리 인증
다음 환경 변수를 설정하여 Red Hat Single Sign-On을 사용하여 Apicurio 레지스트리 웹 콘솔 및 API에 대한 인증을 구성할 수 있습니다.
| 환경 변수 | 설명 | 유형 | Default |
|---|---|---|---|
|
|
Apicurio 레지스트리에서 인증을 활성화합니다. | 문자열 |
|
|
|
Red Hat Single Sign-On 인증 서버의 URL입니다. 예: | 문자열 | - |
|
|
인증을 위한 Red Hat Single Sign-On 영역. 예: | 문자열 | - |
|
| Apicurio Registry REST API의 클라이언트 ID입니다. | 문자열 |
|
|
| Apicurio Registry 웹 콘솔의 클라이언트 ID입니다. | 문자열 |
|
HTTP 기본 설정을 사용하여 Apicurio 레지스트리 인증
기본적으로 Apicurio Registry는 OpenID Connect를 사용하여 인증을 지원합니다. 사용자 또는 API 클라이언트는 Apicurio Registry REST API에 대한 인증된 호출을 수행하기 위해 액세스 토큰을 가져와야 합니다. 그러나 일부 툴이 OpenID Connect를 지원하지 않기 때문에 다음 구성 옵션을 true 로 설정하여 HTTP 기본 인증을 지원하도록 Apicurio Registry를 구성할 수도 있습니다.
| 환경 변수 | Java 시스템 속성 | 유형 | 기본값 |
|---|---|---|---|
|
|
| 부울 |
|
|
|
| 부울 |
|
Apicurio Registry HTTP 기본 클라이언트 인증 정보 캐시 만료
HTTP 기본 클라이언트 인증 정보 캐시 만료 시간을 구성할 수도 있습니다. 기본적으로 HTTP 기본 인증을 사용할 때 Apicurio Registry는 JWT 토큰을 캐시하고 필요하지 않은 경우 새 토큰을 발행하지 않습니다. 기본적으로 10분으로 설정된 JWT 토큰의 캐시 만료 시간을 구성할 수 있습니다.
Red Hat Single Sign-On을 사용하는 경우 이 구성을 Red Hat Single Sign-On JWT 만료 시간으로 1분으로 설정하는 것이 가장 좋습니다. 예를 들어 Red Hat Single Sign-On에서 만료 시간이 5 분으로 설정된 경우 다음 설정 옵션을 4 분으로 설정해야 합니다.
| 환경 변수 | Java 시스템 속성 | 유형 | 기본값 |
|---|---|---|---|
|
|
| 정수 |
|
Apicurio Registry 역할 기반 권한 부여
다음 옵션을 true 로 설정하여 Apicurio Registry에서 역할 기반 인증을 활성화할 수 있습니다.
| 환경 변수 | Java 시스템 속성 | 유형 | 기본값 |
|---|---|---|---|
|
|
| 부울 |
|
|
|
| 부울 |
|
그런 다음 사용자의 인증 토큰에 포함된 역할을 사용하거나(예: Red Hat Single Sign-On을 사용하여 인증할 때 부여됨) Apicurio Registry에서 내부적으로 관리하는 역할 매핑을 사용하도록 역할 기반 권한을 구성할 수 있습니다.
Red Hat Single Sign-On에 할당된 사용 역할
Red Hat Single Sign-On에서 할당한 역할을 사용하여 활성화하려면 다음 환경 변수를 설정합니다.
| 환경 변수 | 설명 | 유형 | Default |
|---|---|---|---|
|
|
| 문자열 |
|
|
| 사용자가 관리자임을 나타내는 역할의 이름입니다. | 문자열 |
|
|
| 사용자가 개발자임을 나타내는 역할의 이름입니다. | 문자열 |
|
|
| 사용자에게 읽기 전용 액세스 권한이 있음을 나타내는 역할의 이름입니다. | 문자열 |
|
Apicurio Registry가 Red Hat Single Sign-On의 역할을 사용하도록 구성된 경우 Apicurio Registry 사용자를 Red Hat Single Sign-On에서 다음 사용자 역할 중 하나 이상에 할당해야 합니다. 그러나 표 5.10. “Red Hat Single Sign-On을 사용하여 Apicurio Registry 역할 기반 권한 부여 구성” 의 환경 변수를 사용하여 다른 사용자 역할 이름을 구성할 수 있습니다.
| 역할 이름 | 아티팩트 읽기 | 아티팩트 쓰기 | 글로벌 규칙 | 설명 |
|---|---|---|---|---|
|
| 제공됨 | 제공됨 | 제공됨 | 모든 생성, 읽기, 업데이트 및 삭제 작업에 대한 전체 액세스 권한 |
|
| 제공됨 | 제공됨 | 없음 | 글로벌 규칙 및 가져오기/내보도 구성을 제외하고 생성, 읽기, 업데이트 및 삭제 작업에 액세스할 수 있습니다. 이 역할은 아티팩트별 규칙만 구성할 수 있습니다. |
|
| 제공됨 | 없음 | 없음 | 읽기 및 검색 작업만 액세스할 수 있습니다. 이 역할은 규칙을 구성할 수 없습니다. |
Apicurio Registry에서 직접 역할 관리
Apicurio Registry에서 내부적으로 관리하는 역할을 사용하려면 다음 환경 변수를 설정합니다.
| 환경 변수 | 설명 | 유형 | Default |
|---|---|---|---|
|
|
| 문자열 |
|
내부적으로 관리되는 역할 매핑을 사용하는 경우 Apicurio Registry REST API에서 /admin/roleMappings 끝점을 사용하여 역할을 할당할 수 있습니다. 자세한 내용은 Apicurio Registry REST API 설명서를 참조하십시오.
사용자에게 정확히 하나의 역할인 ADMIN,DEVELOPER 또는 READ_ONLY 역할을 부여할 수 있습니다. admin 권한이 있는 사용자만 다른 사용자에게 액세스 권한을 부여할 수 있습니다.
Apicurio Registry admin-override 구성
Apicurio Registry에는 기본 관리자 사용자가 없으므로 일반적으로 admins로 식별할 수 있는 다른 방법을 구성하는 것이 유용합니다. 다음 환경 변수를 사용하여 admin-override 기능을 구성할 수 있습니다.
| 환경 변수 | 설명 | 유형 | Default |
|---|---|---|---|
|
| admin-override 기능을 활성화합니다. | 문자열 |
|
|
|
admin-override 정보를 찾는 위치. 현재 | 문자열 |
|
|
|
사용자가 관리자인지 확인하는 데 사용되는 정보 유형입니다. 값은 FROM 변수의 값에 따라 달라집니다(예: FROM이 | 문자열 |
|
|
| 사용자가 관리자임을 나타내는 역할의 이름입니다. | 문자열 |
|
|
| admin-override를 결정하는 데 사용할 JWT 토큰 클레임의 이름입니다. | 문자열 |
|
|
| CLAIM 변수에 표시된 JWT 토큰 클레임의 값은 사용자에게 admin-override를 부여해야 합니다. | 문자열 |
|
예를 들어 이 admin-override 기능을 사용하여 해당 사용자에게 admin 역할을 부여하는 Red Hat Single Sign-On의 단일 사용자에게 sr-admin 역할을 할당할 수 있습니다. 그런 다음 해당 사용자는 /admin/roleMappings REST API(또는 관련 UI)를 사용하여 추가 사용자(추가 관리자 포함)에 역할을 부여할 수 있습니다.
Apicurio Registry 소유자 전용 권한 부여
다음 옵션을 true 로 설정하여 Apicurio Registry에서 아티팩트 또는 아티팩트 그룹에 대한 업데이트에 대한 소유자 전용 권한을 활성화할 수 있습니다.
| 환경 변수 | Java 시스템 속성 | 유형 | 기본값 |
|---|---|---|---|
|
|
| 부울 |
|
|
|
| 부울 |
|
|
|
| 부울 |
|
소유자 전용 권한이 활성화되면 아티팩트를 생성한 사용자만 해당 아티팩트를 수정하거나 삭제할 수 있습니다.
소유자 전용 권한 부여와 그룹 소유자 전용 권한 부여가 모두 활성화되면 아티팩트 그룹을 생성한 사용자만 해당 아티팩트 그룹에 대한 쓰기 액세스 권한을 갖습니다(예: 해당 그룹에서 아티팩트를 추가하거나 제거하는 등).
Apicurio Registry 인증 읽기 액세스
인증된 읽기 액세스 옵션이 활성화되면 Apicurio Registry는 사용자 역할에 관계없이 동일한 조직의 모든 인증된 사용자의 요청에 대한 읽기 전용 액세스 권한을 부여합니다.
인증된 읽기 액세스를 활성화하려면 먼저 역할 기반 인증을 활성화한 다음 다음 옵션이 true 로 설정되어 있는지 확인해야 합니다.
| 환경 변수 | Java 시스템 속성 | 유형 | 기본값 |
|---|---|---|---|
|
|
| 부울 |
|
|
|
| 부울 |
|
자세한 내용은 “Apicurio Registry 역할 기반 권한 부여” 에서 참조하십시오.
Apicurio Registry 익명 읽기 전용 액세스
권한 부여의 두 가지 주요 유형(역할 기반 및 소유자 기반 권한 부여) 외에도 Apicurio Registry에서는 익명 읽기 전용 액세스 옵션을 지원합니다.
인증 자격 증명이 없는 REST API 호출과 같은 익명 사용자를 허용하려면 REST API에 대한 읽기 전용 호출을 수행하려면 다음 옵션을 true 로 설정합니다.
| 환경 변수 | Java 시스템 속성 | 유형 | 기본값 |
|---|---|---|---|
|
|
| 부울 |
|
|
|
| 부울 |
|
5.4. OpenShift 클러스터 내부에서 Apicurio Registry에 대한 HTTPS 연결 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 OpenShift 클러스터 내부에서 HTTPS 연결에 사용할 포트를 노출하도록 Apicurio Registry 배포를 구성하는 방법을 보여줍니다.
이러한 종류의 연결은 클러스터 외부에서 직접 사용할 수 없습니다. 라우팅은 호스트 이름을 기반으로 하며, HTTPS 연결 시 인코딩됩니다. 따라서 엣지 종료 또는 기타 구성이 여전히 필요합니다. 5.5절. “OpenShift 클러스터 외부에서 Apicurio Registry에 대한 HTTPS 연결 구성”을 참조하십시오.
사전 요구 사항
- Apicurio Registry Operator가 이미 설치되어 있어야 합니다.
절차
자체 서명된 인증서가 있는
키 저장소를생성합니다. 자체 인증서를 사용하는 경우 이 단계를 건너뛸 수 있습니다.openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout tls.key -out tls.crt인증서 및 개인 키를 저장할 새 보안을 생성합니다.
- OpenShift 웹 콘솔의 왼쪽 탐색 메뉴에서 워크로드 > 시크릿 > 키/값 시크릿 만들기를 클릭합니다.
-
다음 값을 사용합니다.
Name:https-cert-secret
키 1:tls.key
값 1: tls.key (uploaded file)
키 2:tls.crt
값 2: tls.crt (uploaded file)
또는 다음 명령을 사용하여 시크릿을 생성합니다.
oc create secret generic https-cert-secret --from-file=tls.key --from-file=tls.crtApicurio Registry 배포를 위해
ApicurioRegistryCR의spec.configuration.security.https섹션을 편집합니다. 예를 들면 다음과 같습니다.apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry spec: configuration: # ... security: https: secretName: https-cert-secret연결이 작동하는지 확인합니다.
SSH를 사용하여 클러스터의 Pod에 연결합니다(Apicurio Registry Pod를 사용할 수 있음).
oc rsh example-apicurioregistry-deployment-6f788db977-2wzpw서비스 리소스에서 Apicurio Registry Pod의 클러스터 IP를 찾습니다(웹 콘솔의 위치 열 참조). 이후 테스트 요청을 실행합니다(자체 서명 인증서를 사용하므로 비보안 플래그가 필요합니다.
curl -k https://172.30.230.78:8443/health
HTTPS 인증서 및 키가 포함된 Kubernetes 시크릿에서 제공된 값에 tls.crt 및 tls.key 이름을 사용해야 합니다. 현재 구성 불가능합니다.
HTTP 비활성화
이 섹션의 절차를 사용하여 HTTPS를 활성화한 경우 spec.security.https.disableHttp 를 true 로 설정하여 기본 HTTP 연결을 비활성화할 수도 있습니다. 이렇게 하면 Apicurio 레지스트리 Pod 컨테이너, 서비스 및 NetworkPolicy (있는 경우)에서 HTTP 포트 8080이 제거됩니다.
중요한 것은 Apicurio Registry Operator가 현재 Ingress 에서 HTTPS 구성을 지원하지 않기 때문에 Ingress 도 제거됩니다. 사용자는 HTTPS 연결에 대한 Ingress 를 수동으로 생성해야 합니다.
5.5. OpenShift 클러스터 외부에서 Apicurio Registry에 대한 HTTPS 연결 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 OpenShift 클러스터 외부의 연결에 대해 HTTPS 에지 종료 경로를 노출하도록 Apicurio Registry 배포를 구성하는 방법을 보여줍니다.
사전 요구 사항
- Apicurio Registry Operator가 이미 설치되어 있어야 합니다.
- 보안 경로 생성을 위한 OpenShift 문서를 참조하십시오.
절차
Apicurio Registry Operator가 생성한 HTTP 경로 외에 두 번째 경로를 추가합니다. 예를 들면 다음과 같습니다.
kind: Route apiVersion: route.openshift.io/v1 metadata: [...] labels: app: example-apicurioregistry [...] spec: host: example-apicurioregistry-default.apps.example.com to: kind: Service name: example-apicurioregistry-service-9whd7 weight: 100 port: targetPort: 8080 tls: termination: edge insecureEdgeTerminationPolicy: Redirect wildcardPolicy: None참고insecureEdgeTerminationPolicy: Redirect구성 속성이 설정되어 있는지 확인합니다.인증서를 지정하지 않으면 OpenShift에서 기본값을 사용합니다. 또는 다음 명령을 사용하여 사용자 정의 자체 서명 인증서를 생성할 수 있습니다.
openssl genrsa 2048 > tls.key && openssl req -new -x509 -nodes -sha256 -days 365 -key tls.key -out tls.crt그런 다음 OpenShift CLI를 사용하여 경로를 생성합니다.
oc create route edge \ --service=example-apicurioregistry-service-9whd7 \ --cert=tls.crt --key=tls.key \ --hostname=example-apicurioregistry-default.apps.example.com \ --insecure-policy=Redirect \ -n default
6장. Apicurio 레지스트리 배포 구성 및 관리 링크 복사링크가 클립보드에 복사되었습니다!
이 장에서는 OpenShift에서 Apicurio Registry 배포에 대한 선택적 설정을 구성하고 관리하는 방법을 설명합니다.
6.1. OpenShift에서 Apicurio 레지스트리 상태 점검 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift에서 Apicurio Registry 서버의 상태를 모니터링하도록 활성 상태 및 준비 상태 프로브에 대한 선택적 환경 변수를 구성할 수 있습니다.
- 활성 상태 프로브 는 애플리케이션을 진행할 수 있는지 테스트합니다. 애플리케이션을 진행할 수 없는 경우 OpenShift는 실패한 포드를 자동으로 다시 시작합니다.
- 준비 상태 프로브 는 애플리케이션이 요청을 처리할 준비가 되었는지 테스트합니다. 애플리케이션이 준비되지 않은 경우 요청에 의해 압도될 수 있으며 OpenShift는 프로브가 실패한 시간 동안 요청 전송을 중지합니다. 다른 Pod가 정상이면 요청을 계속 수신합니다.
liveness 및 readiness 환경 변수의 기본값은 대부분의 경우에만 설계되며 해당 환경에 필요한 경우에만 변경해야 합니다. 기본값을 변경하면 저장된 하드웨어, 네트워크 및 데이터 양에 따라 달라집니다. 불필요한 오버헤드를 방지하려면 이러한 값을 가능한 한 낮게 유지해야 합니다.
사전 요구 사항
- 클러스터 관리자 액세스 권한이 있는 OpenShift 클러스터가 있어야 합니다.
- OpenShift에 Apicurio Registry가 이미 설치되어 있어야 합니다.
- AMQ Streams 또는 PostgreSQL에 선택한 Apicurio 레지스트리 스토리지를 이미 설치하고 구성해야 합니다.
절차
- OpenShift Container Platform 웹 콘솔에서 클러스터 관리자 권한이 있는 계정을 사용하여 로그인합니다.
- 설치된 Operators > Red Hat Integration - Service Registry Operator 를 클릭합니다.
- ApicurioRegistry 탭에서 배포에 대한 Operator 사용자 정의 리소스를 클릭합니다(예: example-apicurioregistry ).
-
기본 개요 페이지에서 Apicurio Registry 배포의 Deployment Name 섹션과 해당
DeploymentConfig이름을 확인합니다(예: example-apicurioregistry ). -
왼쪽 탐색 메뉴에서 워크로드 > 배포 구성을 클릭하고
DeploymentConfig이름을 선택합니다. Environment 탭을 클릭하고 Single values env 섹션에 환경 변수를 입력합니다. 예를 들면 다음과 같습니다.
-
이름:
LIVENESS_STATUS_RESET -
값:
350
-
이름:
하단에서 저장 을 클릭합니다.
또는 OpenShift
oc명령을 사용하여 다음 단계를 수행할 수 있습니다. 자세한 내용은 OpenShift CLI 설명서를 참조하십시오.
6.2. Apicurio 레지스트리 상태 점검의 환경 변수 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 OpenShift에서 Apicurio 레지스트리 상태 점검에 사용할 수 있는 환경 변수에 대해 설명합니다. 여기에는 OpenShift에서 Apicurio Registry 서버의 상태를 모니터링할 수 있는 liveness 및 readiness 프로브가 포함됩니다. 예제 절차는 6.1절. “OpenShift에서 Apicurio 레지스트리 상태 점검 구성” 에서 참조하십시오.
다음 환경 변수는 참조용으로만 제공됩니다. 기본값은 대부분의 경우에만 설계되었으며 사용자 환경에 필요한 경우에만 변경해야 합니다. 기본값을 변경하면 저장된 하드웨어, 네트워크 및 데이터 양에 따라 달라집니다. 불필요한 오버헤드를 방지하려면 이러한 값을 가능한 한 낮게 유지해야 합니다.
활성 환경 변수
| 이름 | 설명 | 유형 | Default |
|---|---|---|---|
|
| 활성 상태 프로브가 실패하기 전에 발생할 수 있는 활성 문제 또는 오류 수입니다. | 정수 |
|
|
| 임계값 오류 수가 발생해야 하는 기간입니다. 예를 들어 이 값이 60이고 임계값이 1이면 1분 내에 두 번 오류가 발생한 후 검사가 실패합니다. | 초 |
|
|
| 활성 프로브가 OK 상태로 재설정될 때까지 더 많은 오류 없이 경과해야 하는 시간(초)입니다. | 초 |
|
|
| 무시되는 활동 예외의 쉼표로 구분된 목록입니다. | 문자열 |
|
OpenShift는 활성 상태 점검에 실패하는 포드를 자동으로 재시작하기 때문에 준비 설정과 달리 활성 설정은 OpenShift의 Apicurio Registry 동작에 직접적인 영향을 미치지 않습니다.
준비 상태 환경 변수
| 이름 | 설명 | 유형 | Default |
|---|---|---|---|
|
| 준비 상태 프로브가 실패하기 전에 발생할 수 있는 준비 상태 문제 또는 오류 수입니다. | 정수 |
|
|
| 임계값 오류 수가 발생해야 하는 기간입니다. 예를 들어 이 값이 60이고 임계값이 1이면 1분 내에 두 개의 오류가 발생한 후 검사가 실패합니다. | 초 |
|
|
| 활성 프로브가 OK 상태로 재설정될 때까지 더 많은 오류 없이 경과해야 하는 시간(초)입니다. 이 경우 정상 작업으로 돌아갈 때까지 Pod가 준비되지 않은 시간을 나타냅니다. | 초 |
|
|
| Readiness는 다음 두 가지 작업의 시간 초과를 추적합니다.
이러한 작업에 구성된 타임아웃보다 시간이 오래 걸리는 경우 이는 준비 상태 문제 또는 오류로 간주됩니다. 이 값은 두 작업의 시간 제한을 제어합니다. | 초 |
|
6.3. Apicurio 레지스트리 환경 변수 관리 링크 복사링크가 클립보드에 복사되었습니다!
Apicurio Registry Operator는 가장 일반적인 Apicurio 레지스트리 구성을 관리하지만 아직 지원하지 않는 몇 가지 옵션이 있습니다. ApicurioRegistry CR에서 높은 수준의 설정 옵션을 사용할 수 없는 경우 환경 변수를 사용하여 조정할 수 있습니다. spec.configuration.env 필드에서 ApicurioRegistry CR에서 직접 환경 변수를 설정하여 이러한 변수를 업데이트할 수 있습니다. 그런 다음 Apicurio 레지스트리의 배포 리소스로 전달됩니다.
절차
OpenShift 웹 콘솔 또는 CLI를 사용하여 Apicurio 레지스트리 환경 변수를 관리할 수 있습니다.
- OpenShift 웹 콘솔
- 설치된 Operator 탭을 선택한 다음 Red Hat Integration - Service Registry Operator 를 선택합니다.
-
Apicurio Registry 탭에서
Apicurio Registry배포에 대해 ApicurioRegistry CR을 클릭합니다. YAML 탭을 클릭한 다음 필요에 따라
spec.configuration.env섹션을 편집합니다. 다음 예제에서는 기본 글로벌 콘텐츠 규칙을 설정하는 방법을 보여줍니다.apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry spec: configuration: # ... env: - name: REGISTRY_RULES_GLOBAL_VALIDITY value: FULL # One of: NONE, SYNTAX_ONLY, FULL - name: REGISTRY_RULES_GLOBAL_COMPATIBILITY value: FULL # One of: NONE, BACKWARD, BACKWARD_TRANSITIVE, FORWARD, FORWARD_TRANSITIVE, FULL, FULL_TRANSITIVE
- OpenShift CLI
- Apicurio Registry가 설치된 프로젝트를 선택합니다.
-
oc get apicurioregistry를 실행하여ApicurioRegistryCR 목록을 가져옵니다. -
구성할 Apicurio Registry 인스턴스를 나타내는 CR에서
oc edit apicurioregistry를 실행합니다. spec.configuration.env섹션에서 환경 변수를 추가하거나 수정합니다.Apicurio Registry Operator는
spec.configuration.env필드에 이미 지정된 환경 변수를 설정하려고 시도할 수 있습니다. 환경 변수 구성에 충돌하는 값이 있는 경우 Apicurio Registry Operator가 설정한 값이 우선합니다.기능에 대한 고급 구성을 사용하거나 명시적으로 지정된 환경 변수를 사용하여 이 충돌을 방지할 수 있습니다. 다음은 충돌하는 구성의 예입니다.
apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry spec: configuration: # ... ui: readOnly: true env: - name: REGISTRY_UI_FEATURES_READONLY value: false이 구성으로 인해 Apicurio 레지스트리 웹 콘솔이 읽기 전용 모드가 됩니다.
6.4. PodTemplate을 사용하여 Apicurio 레지스트리 배포 구성 링크 복사링크가 클립보드에 복사되었습니다!
이는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다.
이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview 을 참조하십시오.
ApicurioRegistry CRD에는 Kubernetes Deployment 리소스( PodTemplateSpec struct)의 spec.template 필드와 동일한 구조가 있는 spec.deployment.podTemplateSpecPreview 필드가 포함되어 있습니다.
몇 가지 제한 사항이 있는 경우 Apicurio Registry Operator는 이 필드의 데이터를 Apicurio 레지스트리 배포의 해당 필드로 전달합니다. 이를 통해 Apicurio Registry Operator가 각 사용 사례를 기본적으로 지원할 필요 없이 구성 유연성이 향상됩니다.
다음 표에는 Apicurio Registry Operator에서 허용하지 않는 하위 필드 목록이 포함되어 있으며 구성 오류가 발생합니다.
podTemplateSpecPreview 하위 필드 | 상태 | 세부 정보 |
|---|---|---|
|
| 대체 방법이 있습니다. |
|
|
| 대체 방법이 있습니다. |
|
|
| 대체 방법이 있습니다. |
|
|
| 경고 |
Apicurio 레지스트리 컨테이너를 구성하려면 |
|
| 대체 방법이 있습니다. |
|
|
| 예약됨 | - |
|
| 대체 방법이 있습니다. |
|
|
| 대체 방법이 있습니다. |
|
podTemplateSpecPreview 에서 필드를 설정하는 경우 Apicurio 레지스트리 배포에서 직접 구성한 것처럼 해당 값이 유효해야 합니다. Apicurio Registry Operator는 제공한 값을 계속 수정할 수 있지만 유효하지 않은 값을 수정하거나 기본값이 있는지 확인합니다.
추가 리소스
6.5. Apicurio Registry 웹 콘솔 구성 링크 복사링크가 클립보드에 복사되었습니다!
선택적 환경 변수를 설정하여 배포 환경에 맞게 Apicurio Registry 웹 콘솔을 구성하거나 동작을 사용자 지정할 수 있습니다.
사전 요구 사항
- Apicurio Registry가 이미 설치되어 있습니다.
웹 콘솔 배포 환경 구성
브라우저에서 Apicurio Registry 웹 콘솔에 액세스하면 일부 초기 구성 설정이 로드됩니다. 다음 구성 설정이 중요합니다.
- 코어 Apicurio 레지스트리 서버 REST API의 URL
- Apicurio Registry 웹 콘솔 클라이언트의 URL
일반적으로 Apicurio Registry는 이러한 설정을 자동으로 감지하고 생성하지만 이러한 자동 검색이 실패할 수 있는 일부 배포 환경이 있습니다. 이 경우 환경에 이러한 URL을 명시적으로 설정하도록 환경 변수를 구성할 수 있습니다.
절차
기본 URL을 재정의하려면 다음 환경 변수를 구성합니다.
-
REGISTRY_UI_CONFIG_APIURL: 코어 Apicurio 레지스트리 서버 REST API의 URL을 지정합니다. 예:https://registry.my-domain.com/apis/registry -
REGISTRY_UI_CONFIG_UIURL: Apicurio Registry 웹 콘솔 클라이언트의 URL을 지정합니다. 예:https://registry.my-domain.com/ui
웹 콘솔을 읽기 전용 모드로 구성
Apicurio Registry 웹 콘솔을 읽기 전용 모드로 선택적 기능으로 구성할 수 있습니다. 이 모드에서는 사용자가 등록된 아티팩트를 변경할 수 있는 Apicurio Registry 웹 콘솔의 모든 기능을 비활성화합니다. 여기에는 다음이 포함됩니다.
- 아티팩트 생성
- 새 아티팩트 버전 업로드
- 아티팩트 메타데이터 업데이트
- 아티팩트 삭제
절차
다음 환경 변수를 구성합니다.
-
REGISTRY_UI_FEATURES_READONLY: 읽기 전용 모드를 활성화하려면true로 설정합니다. 기본값은false입니다.
6.6. Apicurio 레지스트리 로깅 구성 링크 복사링크가 클립보드에 복사되었습니다!
런타임에 Apicurio 레지스트리 로깅 구성을 설정할 수 있습니다. Apicurio Registry는 세분화된 로깅을 위해 특정 로거에 대한 로그 수준을 설정하는 REST 끝점을 제공합니다. 이 섹션에서는 Apicurio Registry /admin REST API를 사용하여 런타임에 Apicurio 레지스트리 로그 수준을 보고 설정하는 방법을 설명합니다.
사전 요구 사항
-
OpenShift에 Apicurio Registry가 배포된 경우 Apicurio Registry 인스턴스에 액세스할 수 있는 URL을 가져오거나 Apicurio Registry를 가져옵니다. 이 간단한 예제에서는
localhost:8080의 URL을 사용합니다.
절차
이
curl명령을 사용하여 로거io.apicurio.registry.storage의 현재 로그 수준을 가져옵니다.$ curl -i localhost:8080/apis/registry/v2/admin/loggers/io.apicurio.registry.storage HTTP/1.1 200 OK [...] Content-Type: application/json {"name":"io.apicurio.registry.storage","level":"INFO"}이
curl명령을 사용하여 로거io.apicurio.registry.storage의 로그 수준을DEBUG로 변경합니다.$ curl -X PUT -i -H "Content-Type: application/json" --data '{"level":"DEBUG"}' localhost:8080/apis/registry/v2/admin/loggers/io.apicurio.registry.storage HTTP/1.1 200 OK [...] Content-Type: application/json {"name":"io.apicurio.registry.storage","level":"DEBUG"}이
curl명령을 사용하여 로거io.apicurio.registry.storage의 로그 수준을 기본값으로 되돌립니다.$ curl -X DELETE -i localhost:8080/apis/registry/v2/admin/loggers/io.apicurio.registry.storage HTTP/1.1 200 OK [...] Content-Type: application/json {"name":"io.apicurio.registry.storage","level":"INFO"}
6.7. Apicurio Registry 이벤트 소싱 구성 링크 복사링크가 클립보드에 복사되었습니다!
이는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다.
이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview 을 참조하십시오.
레지스트리 콘텐츠를 변경할 때 이벤트를 전송하도록 Apicurio Registry를 구성할 수 있습니다. 예를 들어 Apicurio Registry는 스키마 또는 API 아티팩트, 그룹 또는 콘텐츠 규칙이 생성, 업데이트, 삭제 등의 경우 이벤트를 트리거할 수 있습니다. Apicurio Registry를 구성하여 애플리케이션에 이벤트를 전송하고 이러한 종류의 변경 사항에 대한 타사 통합으로 구성할 수 있습니다.
이벤트 전송에 사용할 수 있는 다양한 프로토콜이 있습니다. 현재 구현된 프로토콜은 HTTP 및 Apache Kafka입니다. 그러나 프로토콜에 관계없이 CNCF CloudEvents 사양을 사용하여 이벤트가 전송됩니다. Java 시스템 속성 또는 동등한 환경 변수를 사용하여 Apicurio Registry 이벤트 소싱을 구성할 수 있습니다.
Apicurio 레지스트리 이벤트 유형
모든 이벤트 유형은 io.apicurio.registry.events.dto.RegistryEventType 에 정의됩니다. 예를 들어 다음과 같은 이벤트 유형이 포함됩니다.
-
io.apicurio.registry.artifact-created -
io.apicurio.registry.artifact-updated -
io.apicurio.registry.artifact-state-changed -
io.apicurio.registry.artifact-rule-created -
io.apicurio.registry.global-rule-created -
io.apicurio.registry.group-created
사전 요구 사항
- Apicurio 레지스트리 클라우드 이벤트를 보낼 애플리케이션이 있어야 합니다. 예를 들어 사용자 지정 애플리케이션 또는 타사 애플리케이션일 수 있습니다.
HTTP를 사용하여 Apicurio 레지스트리 이벤트 소싱 구성
이 섹션의 예제에서는 http://my-app-host:8888/events 에서 실행되는 사용자 정의 애플리케이션을 보여줍니다.
절차
HTTP 프로토콜을 사용하는 경우 다음과 같이 이벤트를 애플리케이션으로 전송하도록 Apicurio Registry 구성을 설정합니다.
-
registry.events.sink.my-custom-consumer=http://my-app-host:8888/events
-
필요한 경우 다음과 같이 여러 이벤트 소비자를 구성할 수 있습니다.
-
registry.events.sink.my-custom-consumer=http://my-app-host:8888/events -
registry.events.sink.other-consumer=http://my-consumer.com/events
-
Apache Kafka를 사용하여 Apicurio Registry 이벤트 소싱 구성
이 섹션의 예제에서는 my-kafka-host:9092 에서 실행되는 my-registry-events 라는 Kafka 주제를 보여줍니다.
절차
Kafka 프로토콜을 사용하는 경우 Kafka 주제를 다음과 같이 설정합니다.
-
registry.events.kafka.topic=my-registry-events
-
KAFKA_BOOTSTRAP_SERVERS환경 변수를 사용하여 Kafka 생산자에 대한 구성을 설정할 수 있습니다.KAFKA_BOOTSTRAP_SERVERS=my-kafka-host:9092또는
registry.events.kafka.config접두사를 사용하여 kafka 생산자의 속성을 설정할 수 있습니다(예:registry.events.kafka.config.bootstrap.servers=my-kafka-host:9092).
필요한 경우 이벤트를 생성하는 데 사용할 Kafka 주제 파티션을 설정할 수도 있습니다.
-
registry.events.kafka.topic-partition=1
-
7장. Apicurio Registry Operator 구성 참조 링크 복사링크가 클립보드에 복사되었습니다!
이 장에서는 Apicurio Registry Operator를 배포하도록 Apicurio Registry Operator를 구성하는 데 사용되는 사용자 정의 리소스에 대한 자세한 정보를 제공합니다.
7.1. Apicurio 레지스트리 사용자 정의 리소스 링크 복사링크가 클립보드에 복사되었습니다!
Apicurio Registry Operator는 OpenShift에 Apicurio Registry 의 단일 배포를 나타내는 ApicurioRegistry CR(사용자 정의 리소스) 을 정의합니다.
이러한 리소스 오브젝트는 Apicurio Registry Operator에 Apicurio 레지스트리를 배포하고 구성하는 방법을 지시하기 위해 생성 및 유지 관리됩니다.
ApicurioRegistry CR의 예
다음 명령은 ApicurioRegistry 리소스를 표시합니다.
oc get apicurioregistry
oc edit apicurioregistry example-apicurioregistry
apiVersion: registry.apicur.io/v1
kind: ApicurioRegistry
metadata:
name: example-apicurioregistry
namespace: demo-kafka
# ...
spec:
configuration:
persistence: kafkasql
kafkasql:
bootstrapServers: 'my-cluster-kafka-bootstrap.demo-kafka.svc:9092'
deployment:
host: >-
example-apicurioregistry.demo-kafka.example.com
status:
conditions:
- lastTransitionTime: "2021-05-03T10:47:11Z"
message: ""
reason: Reconciled
status: "True"
type: Ready
info:
host: example-apicurioregistry.demo-kafka.example.com
managedResources:
- kind: Deployment
name: example-apicurioregistry-deployment
namespace: demo-kafka
- kind: Service
name: example-apicurioregistry-service
namespace: demo-kafka
- kind: Ingress
name: example-apicurioregistry-ingress
namespace: demo-kafka
기본적으로 Apicurio Registry Operator는 자체 프로젝트 네임스페이스만 감시합니다. 따라서 Operator를 수동으로 배포하는 경우 동일한 네임스페이스에 ApicurioRegistry CR을 생성해야 합니다. Operator 배포 리소스에서 WATCH_NAMESPACE 환경 변수를 업데이트하여 이 동작을 수정할 수 있습니다.
7.2. Apicurio Registry CR 사양 링크 복사링크가 클립보드에 복사되었습니다!
사양은 Operator에 필요한 상태 또는 구성을 제공하는 데 사용되는 ApicurioRegistry CR의 일부입니다.
ApicurioRegistry CR 사양 콘텐츠
다음 예제 블록에는 가능한 사양 구성 옵션의 전체 트리가 포함되어 있습니다. 일부 필드는 필수가 아니거나 동시에 정의해서는 안 됩니다.
spec:
configuration:
persistence: <string>
sql:
dataSource:
url: <string>
userName: <string>
password: <string>
kafkasql:
bootstrapServers: <string>
security:
tls:
truststoreSecretName: <string>
keystoreSecretName: <string>
scram:
mechanism: <string>
truststoreSecretName: <string>
user: <string>
passwordSecretName: <string>
ui:
readOnly: <string>
logLevel: <string>
registryLogLevel: <string>
security:
keycloak:
url: <string>
realm: <string>
apiClientId: <string>
uiClientId: <string>
https:
disableHttp: <bool>
secretName: <string>
env: <k8s.io/api/core/v1 []EnvVar>
deployment:
replicas: <int32>
host: <string>
affinity: <k8s.io/api/core/v1 Affinity>
tolerations: <k8s.io/api/core/v1 []Toleration>
imagePullSecrets: <k8s.io/api/core/v1 []LocalObjectReference>
metadata:
annotations: <map[string]string>
labels: <map[string]string>
managedResources:
disableIngress: <bool>
disableNetworkPolicy: <bool>
disablePodDisruptionBudget: <bool>
podTemplateSpecPreview: <k8s.io/api/core/v1 PodTemplateSpec>
다음 표에서는 각 구성 옵션에 대해 설명합니다.
| 구성 옵션 | type | 기본값 | 설명 |
|---|---|---|---|
|
| - | - | Apicurio 레지스트리 애플리케이션 구성 섹션 |
|
| string | required |
스토리지 백엔드. |
|
| - | - | SQL 스토리지 백엔드 구성 |
|
| - | - | SQL 스토리지 백엔드에 대한 데이터베이스 연결 구성 |
|
| string | required | 데이터베이스 연결 URL 문자열 |
|
| string | required | 데이터베이스 연결 사용자 |
|
| string | 빈 | 데이터베이스 연결 암호 |
|
| - | - | Kafka 스토리지 백엔드 구성 |
|
| string | required | Streams 스토리지 백엔드의 Kafka 부트스트랩 서버 URL |
|
| - | - | Kafka 스토리지 백엔드에 대한 TLS 인증 구성 섹션 |
|
| string | required | Kafka에 대한 TLS 신뢰 저장소를 포함하는 보안의 이름 |
|
| string | required | 사용자 TLS 키 저장소를 포함하는 보안의 이름 |
|
| string | required | Kafka에 대한 TLS 신뢰 저장소를 포함하는 보안의 이름 |
|
| string | required | SCRAM 사용자 이름 |
|
| string | required | SCRAM 사용자 암호를 포함하는 보안의 이름 |
|
| string |
| SASL 메커니즘 |
|
| - | - | Apicurio Registry 웹 콘솔 설정 |
|
| string |
| Apicurio Registry 웹 콘솔을 읽기 전용 모드로 설정 |
|
| string |
|
비Apicurio 구성 요소 및 라이브러리에 대한 Apicurio 레지스트리 로그 수준입니다. 정보 중 하나 |
|
| string |
|
Apicurio 애플리케이션 구성 요소에 대한 Apicurio 레지스트리 로그 수준(비Apicurio 구성 요소 및 라이브러리 제외). 정보 중 하나 |
|
| - | - | Apicurio Registry 웹 콘솔 및 REST API 보안 설정 |
|
| - | - | Red Hat Single Sign-On을 사용한 웹 콘솔 및 REST API 보안 구성 |
|
| string | required | Red Hat Single Sign-On URL |
|
| string | required | Red Hat Single Sign-On 영역 |
|
| string |
| Red Hat Single Sign-On 클라이언트 for REST API |
|
| string |
| 웹 콘솔용 Red Hat Single Sign-On 클라이언트 |
|
| - | - | HTTPS 구성. 자세한 내용은 OpenShift 클러스터 내부에서 Apicurio 레지스트리에 대한 HTTPS 연결 구성을 참조하십시오. |
|
| string | 빈 |
HTTPS 인증서 및 키가 포함된 Kubernetes 보안의 이름입니다. 각각 |
|
| bool |
| HTTP 포트 및 Ingress를 비활성화합니다. 사전 요구 사항으로 HTTPS를 활성화해야 합니다. |
|
| k8s.io/api/core/v1 []EnvVar | 빈 | Apicurio 레지스트리 Pod에 제공할 환경 변수 목록을 구성합니다. 자세한 내용은 Apicurio 레지스트리 환경 변수 관리를 참조하십시오. |
|
| - | - | Apicurio Registry 배포 설정 섹션 |
|
| 양의 정수 |
| 배포할 Apicurio Registry Pod 수 |
|
| string | auto-generated | Apicurio Registry 콘솔 및 API를 사용할 수 있는 호스트/URL. 가능한 경우 Apicurio Registry Operator는 클러스터 라우터의 설정에 따라 올바른 값을 결정하려고 합니다. 값은 한 번만 자동으로 생성되므로 사용자는 나중에 재정의할 수 있습니다. |
|
| k8s.io/api/core/v1 유사성 | 빈 | Apicurio Registry 배포 선호도 구성 |
|
| k8s.io/api/core/v1 []Toleration | 빈 | Apicurio Registry 배포 허용 오차 구성 |
|
| k8s.io/api/core/v1 []LocalObjectReference | 빈 | Apicurio 레지스트리 배포를 위한 이미지 풀 시크릿 구성 |
|
| - | - | Apicurio 레지스트리 Pod에 대한 레이블 또는 주석 세트를 구성합니다. |
|
| map[string]string | 빈 | Apicurio Registry Pod에 대한 레이블 세트 구성 |
|
| map[string]string | 빈 | Apicurio 레지스트리 Pod에 대한 주석 세트 구성 |
|
| - | - | Apicurio Registry Operator가 Kubernetes 리소스를 관리하는 방법을 구성하는 섹션입니다. 자세한 내용은 Apicurio 레지스트리 관리 리소스를 참조하십시오. |
|
| bool |
|
설정된 경우 Operator는 Apicurio 레지스트리 배포를 위한 |
|
| bool |
|
설정된 경우 Operator는 Apicurio 레지스트리 배포에 대한 |
|
| bool |
|
설정된 경우 Operator는 Apicurio Registry 배포를 위한 |
|
| k8s.io/api/core/v1 PodTemplateSpec | 빈 | Apicurio 레지스트리 배포 리소스의 일부를 구성합니다. 자세한 내용은 PodTemplate을 사용하여 Apicurio 레지스트리 배포 구성 을 참조하십시오. |
옵션이 필수로 표시되면 활성화되는 다른 구성 옵션에 조건부가 될 수 있습니다. 빈 값이 허용되지만 Operator에서 지정된 작업을 수행하지 않습니다.
7.3. Apicurio Registry CR 상태 링크 복사링크가 클립보드에 복사되었습니다!
상태는 현재 배포 및 애플리케이션 상태에 대한 설명이 포함된 Apicurio Registry Operator에서 관리하는 CR의 섹션입니다.
ApicurioRegistry CR 상태 콘텐츠
status 섹션에는 다음 필드가 포함되어 있습니다.
status:
info:
host: <string>
conditions: <list of:>
- type: <string>
status: <string, one of: True, False, Unknown>
reason: <string>
message: <string>
lastTransitionTime: <string, RFC-3339 timestamp>
managedResources: <list of:>
- kind: <string>
namespace: <string>
name: <string>
| 상태 필드 | 유형 | 설명 |
|---|---|---|
|
| - | 배포된 Apicurio Registry에 대한 정보가 있는 섹션입니다. |
|
| string | Apicurio Registry UI 및 REST API에 액세스할 수 있는 URL입니다. |
|
| - | Apicurio Registry의 상태를 보고하는 조건 목록 또는 해당 배포에 대한 Operator입니다. |
|
| string | 조건 유형입니다. |
|
| string |
조건의 상태, |
|
| string | 조건의 마지막 전환 이유를 나타내는 프로그래밍 식별자입니다. |
|
| string | 전환에 대한 세부 정보를 나타내는 사람이 읽을 수 있는 메시지입니다. |
|
| string | 조건이 한 상태에서 다른 상태로 마지막으로 전환된 시간입니다. |
|
| - | Apicurio Registry Operator에서 관리하는 OpenShift 리소스 목록 |
|
| string | 리소스 종류. |
|
| string | 리소스 네임스페이스. |
|
| string | 리소스 이름입니다. |
7.4. Apicurio Registry 관리 리소스 링크 복사링크가 클립보드에 복사되었습니다!
Apicurio Registry를 배포할 때 Apicurio Registry Operator가 관리하는 리소스는 다음과 같습니다.
-
Deployment -
Ingress(및경로) -
NetworkPolicy -
PodDisruptionBudget -
Service
Apicurio Registry Operator가 일부 리소스를 생성 및 관리하지 않도록 비활성화하여 수동으로 구성할 수 있습니다. 이렇게 하면 Apicurio Registry Operator가 현재 지원하지 않는 기능을 사용할 때 유연성이 향상됩니다.
리소스 유형을 비활성화하면 기존 인스턴스가 삭제됩니다. 리소스를 활성화하면 Apicurio Registry Operator에서 app 레이블(예: app=example-apicurioregistry )을 사용하여 리소스를 찾고 관리를 시작합니다. 그러지 않으면 Operator에서 새 인스턴스를 생성합니다.
이러한 방식으로 다음 리소스 유형을 비활성화할 수 있습니다.
-
Ingress(및경로) -
NetworkPolicy -
PodDisruptionBudget
예를 들면 다음과 같습니다.
apiVersion: registry.apicur.io/v1
kind: ApicurioRegistry
metadata:
name: example-apicurioregistry
spec:
deployment:
managedResources:
disableIngress: true
disableNetworkPolicy: true
disablePodDisruptionBudget: false # Can be omitted
7.5. Apicurio Registry Operator 라벨 링크 복사링크가 클립보드에 복사되었습니다!
Apicurio Registry Operator가 관리하는 리소스는 일반적으로 다음과 같이 레이블이 지정됩니다.
| 레이블 | 설명 |
|---|---|
|
|
지정된 ApicurioRegistry CR의 이름을 기반으로 리소스가 속하는 |
|
|
배포 유형: |
|
|
배포 이름: |
|
| Apicurio 레지스트리 또는 Apicurio Registry Operator의 버전 |
|
| 애플리케이션 배포에 권장되는 Kubernetes 레이블 세트입니다. |
|
| Red Hat 제품의 미터링 레이블입니다. |
사용자 정의 라벨 및 주석
spec.deployment.metadata.labels 및 spec.deployment.metadata.annotations 필드를 사용하여 Apicurio 레지스트리 Pod에 대한 사용자 정의 레이블 및 주석을 제공할 수 있습니다. 예를 들면 다음과 같습니다.
apiVersion: registry.apicur.io/v1
kind: ApicurioRegistry
metadata:
name: example-apicurioregistry
spec:
configuration:
# ...
deployment:
metadata:
labels:
example.com/environment: staging
annotations:
example.com/owner: my-team
8장. Apicurio 레지스트리 구성 참조 링크 복사링크가 클립보드에 복사되었습니다!
이 장에서는 Apicurio Registry에서 사용할 수 있는 구성 옵션에 대한 참조 정보를 제공합니다.
추가 리소스
-
Core Registry API를 사용하여 구성 옵션 설정에 대한 자세한 내용은 Apicurio Registry REST API 설명서의
/admin/config/properties끝점을 참조하십시오. - Kafka 직렬화기 및 역직렬화기의 클라이언트 구성 옵션에 대한 자세한 내용은 Red Hat build of Apicurio Registry User Guide 를 참조하십시오.
8.1. Apicurio 레지스트리 구성 옵션 링크 복사링크가 클립보드에 복사되었습니다!
다음 Apicurio 레지스트리 구성 옵션은 각 구성 요소 범주에 사용할 수 있습니다.
8.1.1. api 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 유형 | Default | 에서 사용 가능 | 설명 |
|---|---|---|---|---|
|
|
|
|
| 오류 응답에 스택 추적 포함 |
|
|
|
| API 비활성화 |
8.1.2. auth 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 유형 | Default | 에서 사용 가능 | 설명 |
|---|---|---|---|---|
|
|
|
|
| 인증 관리자 덮어쓰기 클레임 |
|
|
|
|
| 인증 관리자 덮어쓰기 클레임 값 |
|
|
|
|
| 인증 관리자 덮어쓰기 활성화 |
|
|
|
|
| 의 인증 관리자 덮어쓰기 |
|
|
|
|
| 인증 관리자 덮어쓰기 역할 |
|
|
|
|
| 인증 관리자 덮어쓰기 유형 |
|
|
|
|
| 익명 읽기 액세스 |
|
|
|
|
| 애플리케이션 감사 로깅에 사용되는 접두사입니다. |
|
|
|
|
| 인증된 읽기 액세스 |
|
|
|
|
| 클라이언트 인증 정보 토큰 만료 시간입니다. |
|
|
|
|
| 기본 인증 클라이언트 인증 정보 활성화 |
|
|
|
| 인증을 위해 서버에서 사용하는 클라이언트 식별자입니다. | |
|
|
|
| 인증에 서버에서 사용하는 클라이언트 시크릿입니다. | |
|
|
|
|
| 인증 활성화 |
|
|
|
|
| 아티팩트 소유자 전용 권한 부여 |
|
|
|
|
| 아티팩트 그룹 소유자 전용 권한 부여 |
|
|
|
|
| 역할 기반 권한 부여 활성화 |
|
|
|
|
| 인증 역할 소스 |
|
|
|
| 헤더 권한 부여 이름 | |
|
|
|
|
| 인증 역할 관리자 |
|
|
|
|
| 인증 역할 개발자 |
|
|
|
|
| 인증 역할 읽기 전용 |
|
|
|
|
| 인증 테넌트 소유자 관리자 활성화 |
|
|
|
| 인증 서버 URL. |
8.1.3. 캐시 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 유형 | Default | 에서 사용 가능 | 설명 |
|---|---|---|---|---|
|
|
|
|
| 레지스트리 캐시 활성화 |
8.1.4. ccompat 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 유형 | Default | 에서 사용 가능 | 설명 |
|---|---|---|---|---|
|
|
|
|
| 레거시 ID 모드(호환성 API) |
|
|
|
|
| 반환되는 최대 주체 수(호환성 API) |
|
|
|
|
| 표준 해시 모드 (호환성 API) |
8.1.5. 다운로드 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 유형 | Default | 에서 사용 가능 | 설명 |
|---|---|---|---|---|
|
|
|
|
| 링크 만료 다운로드 |
8.1.6. 이벤트 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 유형 | Default | 에서 사용 가능 | 설명 |
|---|---|---|---|---|
|
|
|
| 이벤트 Kafka 싱크 활성화 |
8.1.7. 상태 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 유형 | Default | 에서 사용 가능 | 설명 |
|---|---|---|---|---|
|
|
|
| 무시된 활성 오류 | |
|
|
|
|
| 지속성 활성 검사의 카운터 재설정 창 기간 |
|
|
|
|
| 지속성 활성 점검 로깅 비활성화 |
|
|
|
|
| 지속성 활성 점검 오류 임계값 |
|
|
|
|
| 지속성 활성 검사 상태 재설정 창 기간 |
|
|
|
|
| 지속성 준비 상태 점검의 카운터 재설정 창 기간 |
|
|
|
|
| 지속성 준비 상태 점검 오류 임계값 |
|
|
|
|
| 지속성 준비 상태 점검의 상태 재설정 창 기간 |
|
|
|
|
| 지속성 준비 상태 점검 시간 제한 |
|
|
|
|
| 응답 활성 검사의 카운터 재설정 창 기간 |
|
|
|
|
| 응답 활성 점검의 로깅 비활성화 |
|
|
|
|
| 응답 활성 검사의 오류 임계값 |
|
|
|
|
| 응답 활성 검사의 상태 재설정 창 기간 |
|
|
|
|
| 응답 준비 상태 점검의 카운터 재설정 창 기간 |
|
|
|
|
| 응답 준비 상태 점검의 오류 임계값 |
|
|
|
|
| 응답 준비 상태 점검의 상태 재설정 창 기간 |
|
|
|
|
| 응답 준비 상태 점검 시간 초과 |
|
|
|
|
| 스토리지 메트릭 캐시 검사 기간 |
8.1.8. 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 유형 | Default | 에서 사용 가능 | 설명 |
|---|---|---|---|---|
|
|
|
| 가져오기 URL |
8.1.9. kafka 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 유형 | Default | 에서 사용 가능 | 설명 |
|---|---|---|---|---|
|
|
|
| 이벤트 Kafka 주제 | |
|
|
|
| 이벤트 Kafka 주제 파티션 |
8.1.10. limits 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 유형 | Default | 에서 사용 가능 | 설명 |
|---|---|---|---|---|
|
|
|
|
| 최대 아티팩트 레이블 |
|
|
|
|
| 최대 아티팩트 속성 |
|
|
|
|
| 최대 아티팩트 수 |
|
|
|
|
| 최대 아티팩트 설명 길이 |
|
|
|
|
| 최대 아티팩트 레이블 크기 |
|
|
|
|
| 최대 아티팩트 이름 길이 |
|
|
|
|
| 최대 아티팩트 속성 키 크기 |
|
|
|
|
| 최대 아티팩트 속성 값 크기 |
|
|
|
|
| 초당 최대 아티팩트 요청 수 |
|
|
|
|
| 최대 스키마 크기(바이트) |
|
|
|
|
| 최대 총 스키마 수 |
|
|
|
|
| 아티팩트당 최대 버전 |
|
|
|
|
| 스토리지 지표 캐시 최대 크기입니다. |
8.1.11. log 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 유형 | Default | 에서 사용 가능 | 설명 |
|---|---|---|---|---|
|
|
|
| 로그 수준 |
8.1.12. 리디렉션 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 유형 | Default | 에서 사용 가능 | 설명 |
|---|---|---|---|---|
|
|
|
| 리디렉션 활성화 | |
|
|
|
| 레지스트리 리디렉션 |
8.1.13. rest 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 유형 | Default | 에서 사용 가능 | 설명 |
|---|---|---|---|---|
|
|
|
|
| 아티팩트 버전 삭제 활성화 |
|
|
|
|
| URL에서 다운로드할 수 있는 아티팩트의 최대 크기 |
|
|
|
|
| URL에서 아티팩트를 다운로드할 때 SSL 검증 건너뛰기 |
8.1.14. Store 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 유형 | Default | 에서 사용 가능 | 설명 |
|---|---|---|---|---|
|
|
|
|
| 최신 아티팩트 버전을 검색할 때 DISABLED 상태로 아티팩트 버전 건너뛰기 |
|
|
|
|
| 데이터 소스 Db 종류 |
|
|
|
| 데이터 소스 jdbc URL | |
|
|
|
|
| SQL init |
8.1.15. ui 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 유형 | Default | 에서 사용 가능 | 설명 |
|---|---|---|---|---|
|
|
|
|
| UI OIDC 테넌트 활성화 |
|
|
|
| UI API URL | |
|
|
|
|
| UI 인증 OIDC 클라이언트 ID |
|
|
|
|
| UI 인증 OIDC 리디렉션 URL |
|
|
|
|
| UI 인증 OIDC URL |
|
|
|
|
| UI 인증 유형 |
|
|
|
|
| UI 코드 생성 활성화 |
|
|
|
|
| UI 컨텍스트 경로 |
|
|
|
|
| UI 읽기 전용 모드 |
|
|
|
|
| UI 기능 설정 |
|
|
|
| UI 루트 컨텍스트를 재정의합니다(바인 프록시를 사용하여 UI 컨텍스트를 재배치할 때 사용됨) |
부록 A. 서브스크립션 사용 링크 복사링크가 클립보드에 복사되었습니다!
Apicurio Registry는 소프트웨어 서브스크립션을 통해 제공됩니다. 서브스크립션을 관리하려면 Red Hat 고객 포털에서 계정에 액세스하십시오.
귀하의 계정에 액세스
- access.redhat.com 으로 이동합니다.
- 아직 계정이 없는 경우 계정을 생성합니다.
- 계정에 로그인합니다.
서브스크립션 활성화
- access.redhat.com 으로 이동합니다.
- 내 서브스크립션으로 이동합니다.
- 서브스크립션을 활성화하여 16자리 활성화 번호를 입력합니다.
ZIP 및 TAR 파일 다운로드
ZIP 또는 TAR 파일에 액세스하려면 고객 포털을 사용하여 다운로드를 위한 관련 파일을 찾습니다. RPM 패키지를 사용하는 경우에는 이 단계가 필요하지 않습니다.
- 브라우저를 열고 access.redhat.com/downloads 에서 Red Hat 고객 포털 제품 다운로드 페이지에 로그인합니다.
- 통합 및 자동화 카테고리에서 Red Hat Integration 항목을 찾습니다.
- 원하는 Apicurio Registry 제품을 선택합니다. Software Download 페이지가 열립니다.
- 구성 요소에 대한 다운로드 링크를 클릭합니다.
2023-11-10에 최종 업데이트된 문서