8.11. 테넌트 사용자 정의 리소스 배포
테넌트 사용자
지정 리소스는 공급자 계정 이라고도 합니다.
APIManager
CR(사용자 정의 리소스)을 배포할 때 3scale Operator를 사용하여 3scale을 배포합니다. 기본 3scale 설치에는 사용할 준비가 된 기본 테넌트가 포함되어 있습니다. 선택적으로 테넌트 사용자 지정 리소스를 배포하여 다른 테넌트를 만들 수 있습니다.
사전 요구 사항
- 일반 사전 요구 사항
-
새
테넌트
CR의 네임스페이스에생성
권한이 있는 OpenShift 역할입니다.
절차
3scale이 설치된 OpenShift 프로젝트로 이동합니다. 예를 들어 프로젝트 이름이
my-3scale-project
인 경우 다음 명령을 실행합니다.oc project my-3scale-project
oc project my-3scale-project
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 테넌트의 3scale admin 계정의 암호가 포함된 시크릿을 생성합니다.
Tenant
CR 정의에서passwordCredentialsRef
속성을 이 시크릿 이름으로 설정합니다. 4단계에서테넌트
CR 정의의 예에서ADMIN_SECRET
은 이 시크릿의 자리 표시자입니다. 다음 명령은 시크릿 생성 예를 제공합니다.oc create secret generic ecorp-admin-secret --from-literal=admin_password=<admin password value>
oc create secret generic ecorp-admin-secret --from-literal=admin_password=<admin password value>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 3scale 마스터 계정 호스트 이름을 가져옵니다. Operator를 사용하여 3scale을 배포할 때 마스터 계정에는
master.${ldcardDomain}이 패턴과 함께 고정된 URL이 있습니다.
3scale이 설치된 네임스페이스에 액세스할 수 있는 경우 다음 명령을 사용하여 마스터 계정 호스트 이름을 가져올 수 있습니다.
oc get routes --field-selector=spec.to.name==system-master -o jsonpath="{.items[].spec.host}"
oc get routes --field-selector=spec.to.name==system-master -o jsonpath="{.items[].spec.host}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 4단계에서
테넌트
CR 정의의 예에서MASTER_HOSTNAME
은 이 이름의 자리 표시자입니다.새
테넌트
사용자 지정 리소스를 정의하는 파일을 만듭니다.Tenant
CR의 정의에서masterCredentialsRef.name
속성을system-seed
로 설정합니다. 3scale 마스터 계정 인증 정보를 사용하는 경우에만 테넌트 관리 작업을 수행할 수 있으며, 액세스 토큰을 사용할 수 있습니다.APIManager
CR을 배포하는 동안 Operator는 마스터 계정 자격 증명이 포함된 시크릿을 생성합니다. 시크릿 이름은system-seed
입니다.3scale이 클러스터 전체 모드에 설치된 경우 3scale이 포함된 네임스페이스와 다른 네임스페이스에 새 테넌트를 배포할 수 있습니다. 이렇게 하려면
masterCredentialsRef.namespace
를 3scale 설치가 포함된 네임스페이스로 설정합니다.다음 예에서는 3scale이 클러스터 전체 모드로 설치되어 있다고 가정합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 테넌트 사용자 지정
리소스를 만듭니다. 예를 들어 이전 예제 CR을mytenant.yaml
파일에 저장한 경우 다음을 실행합니다.oc create -f mytenant.yaml
oc create -f mytenant.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령의 결과:
-
Operator는
spec.systemMasterUrl
속성 설정에 따라 가리키는 3scale 설치에 테넌트를 배포합니다. 3scale Operator는 새 테넌트의 인증 정보가 포함된 시크릿을 생성합니다. 보안 이름은
tenantSecretRef.name
특성에 지정된 값입니다. 이 시크릿에는 새 테넌트의 관리 URL 및 액세스 토큰이 포함되어 있습니다.다음은 Operator가 생성하는 보안의 예입니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
이제 새 테넌트에 연결된
Product
,Backend
,OpenAPI
,DeveloperAccount
,DeveloperUser
CR을 배포할 수 있습니다.
-
Operator는
테넌트 사용자 정의
리소스 삭제
배포된 테넌트 사용자 정의 리소스를
삭제하려면 리소스 정의가 포함된 파일의 이름을 지정할 수 있습니다. 예를 들면 다음과 같습니다.
oc delete -f mytenant.yaml
oc delete -f mytenant.yaml
또는 oc delete
명령을 실행하고 Tenant
CR에 이름을 지정하고 테넌트의 네임스페이스도 지정할 수 있습니다. 예를 들면 다음과 같습니다.
oc delete tenant.capabilities.3scale.net mytenant -n mynamespace
oc delete tenant.capabilities.3scale.net mytenant -n mynamespace
테넌트를 삭제할 때 3scale Operator는 다음을 수행합니다.
- 3scale 설치에서 테넌트를 숨깁니다.
- 테넌트가 보유한 배포된 사용자 지정 리소스를 삭제합니다.
- 15일 후에 테넌트를 삭제하도록 표시합니다.
테넌트를 삭제한 후에는 복구할 수 없습니다. 테넌트가 소유하고 관리 포털에서 이 작업을 수행할 수 있는 리소스를 15일 동안 백업할 수 있습니다. 15일 후 3scale은 테넌트를 삭제합니다. 데이터 보호 법률 준수를 위해 일부 데이터는 향후 참조를 위해 보관됩니다.
테넌트 CR을 사용하여 해당 테넌트를 배포한 경우 관리자 포털에서 테넌트를 삭제하지 마십시오. 이 경우 Operator는 삭제하려는 테넌트에 CR을 사용하여 다른 테넌트를 생성합니다.
추가 리소스