8장. 서비스 검색
3scale에서 제공하는 서비스 검색 기능을 사용하면 OpenShift에서 서비스를 가져올 수 있습니다.
8.1. 서비스 검색 정보
Service Discovery를 사용하면 동일한 OpenShift 클러스터에서 실행 중인 검색 가능한 API 서비스를 검색하고 관련 API 정의를 3scale로 자동으로 가져올 수 있습니다.
API 통합 및 Open API 사양을 언제든지 업데이트하여 나중에 클러스터와 동기화 할 수 있습니다.
Service Discovery는 다음과 같은 기능을 제공합니다.
- 클러스터 API를 사용하여 검색에 적절하게 주석이 추가된 서비스를 쿼리합니다.
- 클러스터 내부의 내부 엔드포인트를 사용하여 서비스에 액세스하도록 3scale을 구성합니다.
- 서비스와 관련된 OpenAPI 사양인 3scale ActiveDocs를 가져옵니다.
- OpenShift 및 RH SSO(Red Hat Single Sign-On) 권한 부여 흐름을 지원합니다.
- Fuse 버전 7.2부터 Red Hat Fuse와 함께 작동합니다.
검색 가능한 서비스를 가져올 때 해당 네임스페이스를 속하는 프로젝트 내에 유지합니다. 가져온 서비스는 새로운 고객용 API, 제품 및 해당 내부 API, 백엔드가 됩니다.
- 온프레미스 3scale의 경우 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 오브젝트 YAML 정의
OpenShift Service 오브젝트 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의 상대 기본 경로입니다. 루트에 경로가 "/"에 있을 때 이 주석을 생략할 수 있습니다.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 Console에서 API 서비스의 YAML 파일을 볼 수 있습니다.
- 애플리케이션> 서비스 을 선택합니다.
-
서비스를 선택합니다(예:
i-task-api
)를 선택하여 세부 정보 페이지를 엽니다. - 작업> YAML 편집 을 선택하여 YAML 파일을 엽니다.
- 보기를 완료하면 취소 를 선택합니다.
-
ovs-networkpolicy
플러그인이 있는 클러스터
-
OpenShift와 3scale 프로젝트 간 트래픽을 허용하려면
ovs-networkpolicy
플러그인이 있는 클러스터에 애플리케이션 프로젝트 내에서 NetworkPolicy 오브젝트가 필요합니다. - NetworkPolicy 오브젝트 구성에 대한 자세한 내용은 네트워크 정책정보를 참조하십시오.