7.4. 기능과 관련된 백엔드 사용자 정의 리소스
새로 생성된 테넌트에서 Openshift Container Platform을 사용하여 백엔드, 해당 메트릭, 메서드 및 매핑 규칙을 구성합니다. 또한 백엔드 사용자 지정 리소스의 상태와 백엔드가 테넌트 계정에 연결되는 방법에 대해서도 학습합니다.
사전 요구 사항
일반 사전 요구 사항에 나열된 것과 동일한 설치 요구 사항 및 다음 사항을 고려합니다.
- 3scale 계정의 최소 필수 매개 변수는 관리 포털 URL 주소 및 액세스 토큰입니다.
7.4.1. 기능과 관련된 백엔드 사용자 정의 리소스 배포
새로 생성된 테넌트에서 Openshift Container Platform을 사용하여 새 백엔드를 구성합니다.
절차
- OpenShift 계정에서 설치된 운영자 로 이동합니다.
- 3scale 연산자를 클릭합니다.
- 3scale 백엔드에서 인스턴스 생성을 클릭합니다.
- YAML View(YAML 보기)를 선택합니다.
특정 3scale 관리자 URL 주소를 가리키는 3scale 백엔드를 생성합니다.
apiVersion: capabilities.3scale.net/v1beta1 kind: Backend metadata: name: <your_backend_OpenShift_name> spec: name: "<your_backend_name>" privateBaseURL: "<your_admin_portal_URL>"
예를 들면 다음과 같습니다.
apiVersion: capabilities.3scale.net/v1beta1 kind: Backend metadata: name: backend-1 spec: name: "My Backend Name" privateBaseURL: "https://api.example.com"
- 변경 사항을 저장하려면 Create(만들기 )를 클릭합니다.
3scale 계정과 OpenShift에서 둘 다 생성한 백엔드를 몇 초 동안 기다립니다. 그런 다음 다음 검증을 수행할 수 있습니다.
-
동기화 조건이
True
로 표시되는 3scale 백엔드 개요 페이지에서 확인하여 백엔드가 OpenShift에 생성되었는지 확인합니다. -
3scale 계정으로 이동하여 백엔드가 생성된 것을 확인할 수 있습니다. 위의 예에서
My 백엔드 이름
이라는 새 백엔드가 표시됩니다.
-
동기화 조건이
7.4.2. 백엔드 지표 정의
새로 생성된 3scale 테넌트와 함께 Openshift Container Platform을 사용하여 백엔드 사용자 정의 리소스에서 원하는 백엔드 지표를 정의합니다.
다음 관찰을 고려하십시오.
-
지표
맵 키 이름은system_name
으로 사용됩니다. 아래 예제에서는metric01
,metric02
및hits
입니다. -
지표
맵의 키 이름은 모든 지표 및 방법에서 고유해야 합니다. -
단위
및friendlyName
은 필수 필드입니다. -
hits
지표를 추가하지 않으면 이 지표는 운영자가 생성합니다.
절차
다음 예와 같이 새로운 3scale 백엔드에 백엔드 지표를 추가합니다.
apiVersion: capabilities.3scale.net/v1beta1 kind: Backend metadata: name: backend-1 spec: name: "My Backend Name" privateBaseURL: "https://api.example.com" metrics: metric01: friendlyName: Metric01 unit: "1" metric02: friendlyName: Metric02 unit: "1" hits: description: Number of API hits friendlyName: Hits unit: "hit
7.4.3. 백엔드 방법 정의
새로 생성된 3scale 테넌트와 함께 Openshift Container Platform을 사용하여 백엔드 사용자 정의 리소스에 원하는 백엔드 메서드를 정의합니다.
다음 관찰을 고려하십시오.
-
메서드
맵 키 이름은system_name
으로 사용됩니다. 아래 예제에서는 다음을 수행합니다.Method01
및Method02
. -
메서드
는 모든 지표 및 방법에서 키 이름을 매핑해야 합니다. -
friendlyName
은 필수 필드입니다.
절차
다음 예와 같이 새로운 3scale 백엔드에 백엔드 메서드를 추가합니다.
apiVersion: capabilities.3scale.net/v1beta1 kind: Backend metadata: name: backend-1 spec: name: "My Backend Name" privateBaseURL: "https://api.example.com" methods: method01: friendlyName: Method01 method02: friendlyName: Method02
7.4.4. 백엔드 매핑 규칙 정의
새로 생성된 3scale 테넌트와 함께 Openshift Container Platform을 사용하여 백엔드 사용자 정의 리소스에 원하는 백엔드 매핑 규칙을 정의합니다.
다음 관찰을 고려하십시오.
-
httpMethod
,패턴
,increment
및metricMethodRef
는 필수 필드입니다. -
metricMethodRef
에는 기존 지표 또는 메서드 맵 키 이름system_name
에 대한 참조가 있습니다. 아래 예에서,hits
.
절차
다음 예와 같이 새로운 3scale 백엔드에 백엔드 매핑 규칙을 추가합니다.
apiVersion: capabilities.3scale.net/v1beta1 kind: Backend metadata: name: backend-1 spec: name: "My Backend Name" privateBaseURL: "https://api.example.com" mappingRules: - httpMethod: GET pattern: "/pets" increment: 1 metricMethodRef: hits - httpMethod: GET pattern: "/pets/id" increment: 1 metricMethodRef: hits metrics: hits: description: Number of API hits friendlyName: Hits unit: "hit"
7.4.5. 백엔드 사용자 정의 리소스의 상태
status 필드에는 최종 사용자에게 유용한 리소스 정보가 표시됩니다. 수동으로 업데이트하려는 것은 아니며 리소스 변경 시 동기화됩니다.
다음은 status 필드의 속성입니다.
-
backendId
: 3scale 백엔드의 내부 식별자입니다. 조건
:status.Conditions
Kubernetes 공통 패턴을 나타냅니다. 다음과 같은 유형이 있습니다.-
잘못된:
BackendSpec
의 구성 조합은 지원되지 않습니다. 이는 일시적인 오류는 아니지만 진행을 수행하기 전에 수정해야 하는 상태를 나타냅니다. - 동기화됨: 백엔드가 성공적으로 동기화되었습니다.
- 실패: 동기화하는 동안 오류가 발생했습니다.
-
잘못된:
-
observedGeneration
: 최신 리소스 사양을 사용하여 상태 정보가 업데이트되었는지 확인하는 도우미 필드입니다.
동기화된 리소스의 예:
status: backendId: 59978 conditions: - lastTransitionTime: "2020-06-22T10:50:33Z" status: "False" type: Failed - lastTransitionTime: "2020-06-22T10:50:33Z" status: "False" type: Invalid - lastTransitionTime: "2020-06-22T10:50:33Z" status: "True" type: Synced observedGeneration: 2
7.4.6. 테넌트 계정에 연결된 백엔드 사용자 지정 리소스
3scale Operator가 새로운 3scale 리소스를 찾으면 LookupProviderAccount 프로세스는 리소스를 소유한 테넌트를 식별하기 위한 목적으로 시작됩니다.
이 프로세스는 테넌트 자격 증명 소스를 확인합니다. 찾을 수 없는 경우 오류가 발생합니다.
다음 단계에서는 프로세스가 테넌트 자격 증명 소스를 확인하는 방법을 설명합니다.
providerAccountRef 리소스 속성에서 자격 증명을 확인합니다. 이는 보안 로컬 참조입니다. 예를 들어 mytenant:
apiVersion: capabilities.3scale.net/v1beta1 kind: Backend metadata: name: backend-1 spec: name: "My Backend Name" privateBaseURL: "https://api.example.com" providerAccountRef: name: mytenant
mytenant 시크릿에는 테넌트 자격 증명으로 채워진 adminURL 및 token 필드가 있어야 합니다. 예를 들면 다음과 같습니다.
apiVersion: v1 kind: Secret metadata: name: mytenant type: Opaque stringData: adminURL: https://my3scale-admin.example.com:443 token: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
기본 3scale-provider-account 시크릿을 확인합니다. 예:
adminURL=https://3scale-admin.example.com
및token=123456
:oc create secret generic threescale-provider-account --from-literal=adminURL=https://3scale-admin.example.com --from-literal=token=123456
- 3scale 배포의 동일한 네임스페이스에서 기본 공급자 계정을 확인합니다. 3scale 설치가 사용자 지정 리소스와 동일한 네임스페이스에 있는 경우 Operator는 기본 3scale 테넌트(공급자 계정)에 대해 필요한 자격 증명을 자동으로 수집합니다.