2.4. Operator를 사용하여 3scale 배포
이 섹션에서는 APIManager CR을 사용하여 3scale Operator를 통해 3scale 솔루션을 설치하고 배포하는 방법을 설명합니다.
3scale 2.6 이후 와일드카드 경로가 제거되었습니다.
- 이 기능은 백그라운드에서 Zync에 의해 처리됩니다.
- API 공급자가 생성, 업데이트 또는 삭제되면 경로에 해당 변경 사항이 자동으로 반영됩니다.
사전 요구 사항
- 컨테이너 레지스트리 인증 구성
- 3scale 용 마이크로 릴리스의 자동 업데이트를 받으려면 3scale Operator에서 자동 승인 기능을 활성화해야 합니다. Automatic은 기본 승인 설정입니다. 특정 요구 사항에 따라 언제든지 이를 변경하려면 마이크로 릴리스의 자동화된 애플리케이션 구성 단계를 사용하십시오.
- 먼저 Operator를 사용하여 3scale을 배포하려면 OpenShift에 3scale Operator 설치단계를 수행해야 합니다.
OpenShift Container Platform 4
- OpenShift 클러스터에서 관리자 권한이 있는 사용자 계정입니다.
- 지원되는 구성에 대한 자세한 내용은 Red Hat 3scale API Management Supported Configurations 페이지를 참조하십시오.
다음 절차에 따라 Operator를 사용하여 3scale을 배포합니다.
2.4.1. APIManager 사용자 정의 리소스 배포
Amazon Simple Storage Service(Amazon S3)를 사용하려면 Amazon Simple Storage Service 3scale FileStorage 설치를 참조하십시오.
Operator는 APIManager CR을 감시하고 APIManager CR에 지정된 대로 필요한 3Scale 솔루션을 배포합니다.
절차
Operators > 설치된 Operators를 클릭합니다.
- 설치된 Operator 목록에서 Red Hat Integration - 3scale 을 클릭합니다.
- API Manager 탭을 클릭합니다.
- APIManager 생성을 클릭합니다.
샘플 콘텐츠를 지우고 편집기에 다음 YAML 정의를 추가한 다음 생성 을 클릭합니다.
3scale 2.8 이전에는
highAvailability
필드를true
로 설정하여 복제본을 자동으로 추가할 수 있습니다. 3scale 2.8의 다음 예와 같이 복제본 추가는 APIManager CR의 replicas 필드를 통해 제어됩니다.참고wildcardDomain 매개변수의 값은 OCP(OpenShift Container Platform) 라우터 주소로 확인되는 유효한 도메인 이름이어야 합니다. 예를 들면
apps.mycluster.example.com
입니다.최소 요구사항이 있는 APIManager CR:
apiVersion: apps.3scale.net/v1alpha1 kind: APIManager metadata: name: apimanager-sample spec: wildcardDomain: example.com
복제본이 구성된 APIManager CR:
apiVersion: apps.3scale.net/v1alpha1 kind: APIManager metadata: name: apimanager-sample spec: system: appSpec: replicas: 1 sidekiqSpec: replicas: 1 zync: appSpec: replicas: 1 queSpec: replicas: 1 backend: cronSpec: replicas: 1 listenerSpec: replicas: 1 workerSpec: replicas: 1 apicast: productionSpec: replicas: 1 stagingSpec: replicas: 1 wildcardDomain: example.com
2.4.2. 관리자 포털 URL 가져오기
Operator를 사용하여 3scale을 배포할 때 고정 URL을 사용하여 기본 테넌트가 생성됩니다: 3scale-admin.${wildcardDomain}
3scale 대시보드는 테넌트의 새 포털 URL을 보여줍니다. 예를 들어 < wildCardDomain >이 3scale-project.example.com
인 경우 관리 포털 URL은 https://3scale-admin.3scale-project.example.com
입니다.
wildcardDomain
은 설치 중에 제공한 <wildCardDomain> 매개변수입니다. 다음 명령을 사용하여 브라우저에서 이 고유한 URL을 엽니다.
xdg-open https://3scale-admin.3scale-project.example.com
필요한 경우 MASTER 포털 URL:master.${wildcardDomain}
에서 새 테넌트를 생성할 수 있습니다.
2.4.3. APIManager 관리 포털 및 마스터 관리자 포털 인증 정보 가져오기
운영자 기반 배포 후 3scale 관리 포털 또는 마스터 관리 포털에 로그인하려면 별도의 각 포털에 대한 인증 정보가 필요합니다. 다음 인증 정보를 얻으려면 다음을 수행합니다.
다음 명령을 실행하여 관리 포털 인증 정보를 가져옵니다.
oc get secret system-seed -o json | jq -r .data.ADMIN_USER | base64 -d oc get secret system-seed -o json | jq -r .data.ADMIN_PASSWORD | base64 -d
- 관리 포털 관리자로 로그인하여 이러한 인증 정보가 작동하는지 확인합니다.
다음 명령을 실행하여 마스터 관리자 포털 자격 증명을 가져옵니다.
oc get secret system-seed -o json | jq -r .data.MASTER_USER | base64 -d oc get secret system-seed -o json | jq -r .data.MASTER_PASSWORD | base64 -d
- 마스터 관리 포털 관리자로 로그인하여 이러한 인증 정보가 작동하는지 확인합니다.
추가 리소스
APIManager 필드에 대한 자세한 내용은 참조 설명서를 참조하십시오.
2.4.4. Operator를 사용하여 3scale의 외부 데이터베이스
Red Hat 3scale API Management 배포에서 데이터베이스를 외부화하는 경우 애플리케이션에서 격리하고 데이터베이스 수준에서 서비스 중단에 대한 탄력성을 제공합니다. 서비스 중단에 대한 탄력성은 데이터베이스를 호스팅하는 인프라 또는 플랫폼 공급자가 제공하는 SLA(서비스 수준 계약)에 따라 다릅니다. 이는 3scale에서 제공되지 않습니다. 선택한 배포에서 제공하는 데이터베이스를 외부화하는 방법에 대한 자세한 내용은 관련 문서를 참조하십시오.
Operator를 사용하여 3scale에 외부 데이터베이스를 사용할 때 목표는 하나 이상의 데이터베이스가 실패하는 경우 중단되지 않는 가동 시간을 제공하는 것입니다.
3scale Operator 기반 배포에서 외부 데이터베이스를 사용하는 경우 다음 사항에 유의하십시오.
- 3scale 중요한 데이터베이스를 외부에서 구성 및 배포합니다. 중요한 데이터베이스에는 시스템 데이터베이스, 시스템 redis 및 백엔드 redis 구성 요소가 포함됩니다. 이러한 구성 요소를 고가용성(HA)으로 배포 및 구성해야 합니다.
3scale을 배포하기 전에 해당 Kubernetes 시크릿을 생성하여 3scale용 구성 요소에 대한 연결 끝점을 지정합니다.
- 자세한 내용은 외부 데이터베이스 설치를 참조하십시오.
- 데이터베이스 이외의 배포 구성에 대한 자세한 내용은 Pod 중단 예산 활성화를 참조하십시오.
APIManager CR에서
.spec.externalComponents
속성을 설정하여 시스템 데이터베이스, 시스템 redis 및 백엔드 redis가 외부임을 지정합니다.externalComponents: backend: redis: true system: database: true redis: true zync: database: true
또한 zync 데이터베이스를 다시 시작할 때 큐 작업 데이터가 손실되는 것을 방지하기 위해 zync 데이터베이스를 고가용성으로 설정하려면 다음 사항에 유의하십시오.
- 외부에서 zync 데이터베이스를 배포하고 구성합니다. 데이터베이스를 고가용성으로 배포하고 구성해야 합니다.
3scale을 배포하기 전에 해당 Kubernetes 시크릿을 생성하여 3scale의 zync 데이터베이스에 대한 연결 끝점을 지정합니다.
- Zync 데이터베이스 시크릿을 참조하십시오.
-
zync 데이터베이스가 외부 데이터베이스임을 지정하려면
APIManager
CR의.spec.externalComponents.zync.database
속성을true
로 설정하여 3scale을 구성합니다.