2.5. Operator를 사용하여 3scale 배포
이 섹션에서는 APIManager 사용자 지정 리소스를 사용하여 3scale Operator를 통해 3scale 솔루션을 설치하고 배포하는 방법을 설명합니다.
3scale 2.6 이후 와일드카드 경로가 제거되었습니다.
- 이 기능은 백그라운드에서 Zync에 의해 처리됩니다.
- API 공급자가 생성, 업데이트 또는 삭제되면 경로에 해당 변경 사항이 자동으로 반영됩니다.
사전 요구 사항
- 컨테이너 레지스트리 인증 구성
- 3scale 용 마이크로 릴리스의 자동 업데이트를 받으려면 3scale Operator에서 자동 승인 기능을 활성화해야 합니다. Automatic은 기본 승인 설정입니다. 특정 요구 사항에 따라 언제든지 이를 변경하려면 마이크로 릴리스의 자동화된 애플리케이션 구성 단계를 사용하십시오.
- 먼저 Operator를 사용하여 3scale을 배포하려면 OpenShift에 3scale Operator 설치단계를 수행해야 합니다.
OpenShift Container Platform 4
- OpenShift 클러스터에서 관리자 권한이 있는 사용자 계정입니다.
- 참고: OCP 4에서는 Operator만 사용하여 3scale 배포를 지원합니다.
- 지원되는 구성에 대한 자세한 내용은 Red Hat 3scale API Management Supported Configurations 페이지를 참조하십시오.
다음 절차에 따라 Operator를 사용하여 3scale을 배포합니다.
2.5.1. APIManager 사용자 정의 리소스 배포
APIManager 사용자 지정 리소스를 배포하면 Operator가 처리를 시작하고 해당 리소스에서 3scale 솔루션을 배포합니다.
절차
Operators > 설치된 Operators를 클릭합니다.
- 설치된 Operator 목록에서 3scale Operator를 클릭합니다.
- API Manager 탭을 클릭합니다.
- APIManager 생성을 클릭합니다.
샘플 콘텐츠를 지우고 편집기에 다음 YAML 정의를 추가한 다음 생성 을 클릭합니다.
3scale 2.8 이전에는
highAvailability
필드를true
로 설정하여 복제본을 자동으로 추가할 수 있습니다. 3scale 2.8의 다음 예와 같이 복제본 추가는 APIManager CR의 replicas 필드를 통해 제어됩니다.참고wildcardDomain 매개변수는 유효한 DNS 도메인인 IP 주소로 확인되는 제공할 원하는 이름일 수 있습니다.
최소 요구사항이 있는 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.5.2. 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.5.3. 관리자 포털 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 portal URL: master.${wildcardDomain}
에서 새 테넌트를 만들 수 있습니다.
2.5.4. 마이크로 릴리스의 자동화된 애플리케이션 구성
마이크로 릴리스 업데이트를 가져와 자동으로 적용하려면 3scale Operator의 승인 전략을 자동으로 설정해야 합니다. 다음에서는 자동 설정과 수동 설정의 차이점을 설명하고 절차의 단계를 간략하게 설명합니다.
자동 및 수동:
- 설치하는 동안 자동 설정은 기본적으로 선택한 옵션입니다. 새 업데이트의 설치는 사용 가능할 때 발생합니다. 설치하는 동안에 또는 나중에 언제든지 변경할 수 있습니다.
- 설치 중 또는 설치 후 수동 옵션을 선택하면 언제든지 사용 가능한 업데이트를 받게 됩니다. 다음으로 설치 계획을 승인하고 직접 적용해야 합니다.
절차
- Operators > 설치된 Operators를 클릭합니다.
- 설치된 Operator 목록에서 3scale API Management를 클릭합니다.
- 서브스크립션 탭을 클릭합니다. 서브스크립션 세부 정보 제목 아래에 해당 승인이 표시됩니다.
- 승인 아래 링크를 클릭합니다. 이 링크는 기본적으로 자동으로 설정됩니다. 업데이트 승인 전략 변경이라는 제목이 있는 모달이 표시됩니다.
- 기본 설정 옵션을 선택합니다. 자동(기본값) 또는 수동을 클릭한 다음 저장을 클릭합니다.
추가 리소스
- OperatorHub를 사용하여 Operator 설치에서 승인 전략을 참조하십시오.
2.5.5. Operator를 사용하여 3scale의 고가용성
3scale에서 HA(고가용성)는 하나 이상의 데이터베이스가 실패하는 경우 중단되지 않는 가동 시간을 제공하는 것을 목표로 합니다.
3scale Operator 기반 배포에서 HA를 사용하려면 다음 사항에 유의하십시오.
- 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을 구성합니다.