8장. 서비스 검색
3scale에서 제공하는 서비스 검색 기능을 사용하면 OpenShift에서 서비스를 가져올 수 있습니다.
8.1. 서비스 검색 정보
Service Discovery를 사용하면 동일한 OpenShift 클러스터에서 실행 중인 검색 가능한 API 서비스를 스캔하고 관련 API 정의를 3scale로 자동으로 가져올 수 있습니다.
API 통합 및 Open API Specification을 언제든지 업데이트하여 나중에 클러스터와 다시 동기화할 수도 있습니다.
Service Discovery는 다음과 같은 기능을 제공합니다.
- 클러스터 API를 사용하여 검색에 올바르게 주석이 달린 서비스를 쿼리합니다.
- 클러스터 내부의 내부 끝점을 사용하여 서비스에 액세스하도록 3scale을 구성합니다.
- 3scale ActiveDocs로 서비스와 관련된 OpenAPI 사양을 가져옵니다.
- OpenShift 및 Red Hat Single Sign-On(RH SSO) 권한 부여 흐름을 지원합니다.
- Fuse 버전 7.2부터 Red Hat Fuse와 함께 작동합니다.
검색 가능한 서비스를 가져오면 해당 네임스페이스가 속하는 프로젝트 내에 해당 네임스페이스를 유지합니다. 가져온 서비스는 새로운 고객용 API, 제품 및 해당 내부 API, 백엔드가 됩니다.
- 3scale on premises의 경우 3scale API 공급자는 자체 네임 스페이스 및 서비스를 가질 수 있습니다. 검색된 서비스는 3scale 기존 및 네이티브 서비스와 공존할 수 있습니다.
- Fuse 검색 가능 서비스는 Fuse 프로덕션 네임스페이스에 배포됩니다.
8.1.1. 검색 가능한 서비스에 대한 기준
3scale에서 OpenShift 클러스터에서 API를 찾으려면 API가 아래 각 요소의 기준을 충족해야 합니다.
content-Type
헤더
API 사양의 Content-Type
헤더는 다음 값 중 하나여야 합니다.
-
application/swagger+json
-
application/vnd.oai.openapi+json
-
application/json
OpenShift Service Object YAML 정의
OpenShift Service Object YAML 정의에는 다음 메타데이터가 포함되어야 합니다.
-
discovery.3scale.net
레이블: (필수) "true"로 설정합니다. 3scale은 선택기 정의를 실행하여 검색이 필요한 모든 서비스를 찾을 때 이 레이블을 사용합니다. 다음 주석은 다음과 같습니다.
discovery.3scale.net/discovery-version
: (선택 사항) 3scale 검색 프로세스의 버전입니다.discovery.3scale.net/scheme
: (필수) 서비스가 호스팅되는 URL의 스키마 부분입니다. 가능한 값은 "http" 또는 "https"입니다.discovery.3scale.net/port
: (필수) 클러스터 내의 서비스의 포트 번호입니다.discovery.3scale.net/path
: (선택 사항) 서비스가 호스팅되는 URL의 상대 기본 경로입니다. 경로가 root인 "/"에 있을 때 이 주석을 생략할 수 있습니다.discovery.3scale.net/description-path
: 서비스에 대한 OpenAPI 서비스 설명 문서의 경로입니다.예를 들어 다음과 같습니다.
metadata: annotations: discovery.3scale.net/scheme: "https" discovery.3scale.net/port: '8081' discovery.3scale.net/path: "/api" discovery.3scale.net/description-path: "/api/openapi/json" labels: discovery.3scale.net: "true" name: i-task-api namespace: fuse
관리 권한이 있는 OpenShift 사용자인 경우 OpenShift 콘솔에서 API 서비스의 YAML 파일을 볼 수 있습니다.
- Applications> Services 를 선택합니다.
-
i-task-api
와 같은 서비스를 선택하여 세부 정보 페이지를 엽니다. - Actions> Edit YAML 을 선택하여 YAML 파일을 엽니다.
- 보기를 완료하면 취소 를 선택합니다.
-
ovs-networkpolicy
플러그인이 있는 클러스터
-
OpenShift와 3scale 프로젝트 간 트래픽을 허용하려면
ovs-networkpolicy
플러그인이 있는 클러스터에는 애플리케이션 프로젝트 내에서 생성된 NetworkPolicy 오브젝트가 필요합니다. - NetworkPolicy 오브젝트 구성에 대한 자세한 내용은 네트워크 정책정보를 참조하십시오.