3scale 설치
3scale API Management 설치 및 구성.
초록
머리말 링크 복사링크가 클립보드에 복사되었습니다!
이 가이드는 3scale을 설치하고 구성하는 데 유용한 정보를 제공합니다.
1장. Oracle Database가 포함된 3scale 시스템 이미지 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 Red Hat 3scale API Management 2.6에는 MySQL 데이터베이스에 구성 데이터를 저장하는 시스템 이라는 구성 요소가 있습니다. 기본 데이터베이스를 재정의하고 정보를 외부 Oracle 데이터베이스에 저장할 수 있는 옵션이 있습니다. 이 문서의 단계에 따라 자체 Oracle Database 클라이언트 바이너리를 사용하여 사용자 정의 시스템 컨테이너 이미지를 빌드하고 OpenShift에 3scale을 배포합니다.
1.1. 사전 준비 사항 링크 복사링크가 클립보드에 복사되었습니다!
1.1.1. Oracle 소프트웨어 구성 요소 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
사용자 지정 3scale 시스템 컨테이너 이미지를 빌드하려면 먼저 다음 Oracle 소프트웨어 구성 요소의 지원되는 버전을 가져와야 합니다.
- Oracle Instant Client Package Basic 또는 Basic Light
- Oracle Instant Client 패키지 SDK
- Oracle Instant Client 패키지ECDHE
1.1.2. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- OpenShift 클러스터에서 액세스할 수 있는 Oracle Database의 지원되는 버전
- 설치 절차를 위해 Oracle Database 시스템 사용자 액세스
-
3scale 2.6
amp.yml템플릿
1.2. Oracle 데이터베이스 준비 링크 복사링크가 클립보드에 복사되었습니다!
새 데이터베이스를 만듭니다.
Oracle Database가 3scale로 작동하려면 다음 설정이 필요합니다.
ALTER SYSTEM SET max_string_size=extended SCOPE=SPFILE; ALTER SYSTEM SET compatible='12.2.0.1' SCOPE=SPFILE;
ALTER SYSTEM SET max_string_size=extended SCOPE=SPFILE; ALTER SYSTEM SET compatible='12.2.0.1' SCOPE=SPFILE;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터베이스 세부 정보를 수집합니다.
3scale 구성에 필요한 다음 정보를 가져옵니다.
- Oracle 데이터베이스 URL
- Oracle Database 서비스 이름
Oracle Database 시스템 암호
DestinationRule
_URL매개변수는 다음 형식을 따라야 합니다.
oracle-enhanced://USER:PASSWORD@HOST:PORT/DATABASE
oracle-enhanced://USER:PASSWORD@HOST:PORT/DATABASE
예제
DATABASE_URL="oracle-enhanced://USER:PASSWORD@my-oracle-database.com:1521/threescalepdb"
DATABASE_URL="oracle-enhanced://USER:PASSWORD@my-oracle-database.com:1521/threescalepdb"
추가 리소스
Oracle Database에서 새 데이터베이스를 만드는 방법에 대한 자세한 내용은 Oracle 설명서를 참조하십시오.
1.3. 시스템 이미지 빌드 링크 복사링크가 클립보드에 복사되었습니다!
시스템 Oracle build.yml 파일을 다운로드한 후 AMP_RELEASE 값을 수동으로 2.5.0 에서 2.6.0 으로 변경해야 합니다.
이 섹션에서는 시스템 이미지를 빌드하는 단계를 제공합니다.
사전 요구 사항
- Oracle Database를 구성해야 합니다. 자세한 내용은 1.2절. “Oracle 데이터베이스 준비” 의 단계를 따르십시오.
절차
3scale OpenShift 템플릿 GitHub 리포지토리를 복제합니다. 다음 명령을 사용합니다.
git clone --branch 2.6.0.GA https://github.com/3scale/3scale-amp-openshift-templates.git
$ git clone --branch 2.6.0.GA https://github.com/3scale/3scale-amp-openshift-templates.gitCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Oracle Database Instant Client Package 파일을
3scale-amp-openshift-templates/amp/system-oracle/oracle-client-files디렉터리에 배치합니다. - 3scale 2.6 amp.yml 템플릿을 다운로드합니다.
-f옵션을 사용하여oc new-app명령을 실행하고build.ymlOpenShift 템플릿을 지정합니다.oc new-app -f build.yml
$ oc new-app -f build.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc new-app명령을-f옵션과 함께 실행하여amp.ymlOpenShift 템플릿을 표시하고-p옵션을 사용하여 OpenShift 클러스터 도메인으로WILDCARD_DOMAIN매개변수를 지정합니다.oc new-app -f amp.yml -p WILDCARD_DOMAIN=mydomain.com
$ oc new-app -f amp.yml -p WILDCARD_DOMAIN=mydomain.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음
oc 패치명령을 입력하고SYSTEM_PASSWORD를 1.2절. “Oracle 데이터베이스 준비” 에서 설정한 Oracle Database시스템암호로 교체합니다.oc patch dc/system-app -p '[{"op": "add", "path": "/spec/strategy/rollingParams/pre/execNewPod/env/-", "value": {"name": "ORACLE_SYSTEM_PASSWORD", "value": "SYSTEM_PASSWORD"}}]' --type=json oc patch dc/system-app -p '{"spec": {"strategy": {"rollingParams": {"post":{"execNewPod": {"env": [{"name": "ORACLE_SYSTEM_PASSWORD", "value": "SYSTEM_PASSWORD"}]}}}}}}'$ oc patch dc/system-app -p '[{"op": "add", "path": "/spec/strategy/rollingParams/pre/execNewPod/env/-", "value": {"name": "ORACLE_SYSTEM_PASSWORD", "value": "SYSTEM_PASSWORD"}}]' --type=json $ oc patch dc/system-app -p '{"spec": {"strategy": {"rollingParams": {"post":{"execNewPod": {"env": [{"name": "ORACLE_SYSTEM_PASSWORD", "value": "SYSTEM_PASSWORD"}]}}}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 1.2절. “Oracle 데이터베이스 준비” 에 지정된 Oracle 데이터베이스를 가리키도록 다음 명령을 입력하고 DestinationRule
_URL을 대체합니다.oc patch secret/system-database -p '{"stringData": {"URL": "DATABASE_URL"}}'$ oc patch secret/system-database -p '{"stringData": {"URL": "DATABASE_URL"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 가져오기 보안을 빌더에 연결합니다.
oc secrets link builder threescale-registry-auth
$ oc secrets link builder threescale-registry-authCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc start-build명령을 입력하여 새 시스템 이미지를 빌드합니다.oc start-build 3scale-amp-system-oracle --from-dir=.
$ oc start-build 3scale-amp-system-oracle --from-dir=.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
추가 리소스
- 3scale 및 Oracle Database 지원에 대한 자세한 내용은 Red Hat 3scale API Management 지원 구성을 참조하십시오.
2장. OpenShift에서 3scale 설치 가이드 링크 복사링크가 클립보드에 복사되었습니다!
2.1. 소개 링크 복사링크가 클립보드에 복사되었습니다!
이 가이드에서는 OpenShift에 Red Hat 3scale API Management - 온-프레미스 2.6를 배포하는 단계를 안내합니다.
온-프레미스 배포를 위한 3scale 솔루션은 다음과 같이 구성됩니다.
- 두 개의 API 게이트웨이: 내장 APIcast
- 영구 스토리지를 사용하는 3scale 관리 포털 및 개발자 포털
3scale 솔루션을 배포하는 방법은 다음 두 가지가 있습니다.
Operator 또는 템플릿을 사용하여 3scale을 배포하는 경우 먼저 2.4.2절. “OpenShift에서 레지스트리 인증 구성” 을 배포해야 합니다.
2.1.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- UTC(Coordinated Universal Time)에 대해 3scale 서버를 구성해야 합니다.
2.2. 시스템 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에는 3scale - OpenShift 템플릿의 요구 사항이 나열되어 있습니다.
2.2.1. 환경 요구사항 링크 복사링크가 클립보드에 복사되었습니다!
3scale에는 지원되는 구성에 지정된 환경이 필요합니다.
영구 볼륨:
- Redis 및 MySQL 지속성을 위한 3 RWO(ReadWriteOnce) 영구 볼륨
- CMS 및 System-app Assets용 1 RWX (ReadWriteMany) 영구 볼륨
RWX 영구 볼륨은 그룹에 쓰기 가능하도록 구성해야 합니다. 필요한 액세스 모드를 지원하는 영구 볼륨 유형 목록은 OpenShift 설명서를 참조하십시오 .
2.2.2. 하드웨어 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
하드웨어 요구 사항은 사용 요구에 따라 다릅니다. 특정 요구 사항에 맞게 환경을 테스트하고 구성하는 것이 좋습니다. 다음은 OpenShift에서 3scale 환경을 구성할 때의 권장 사항입니다.
- 클라우드 환경(AWS c4.2xlarge 또는 Azure Standard_F8)에 배포할 수 있도록 최적화된 컴퓨팅 노드입니다.
- 메모리 요구 사항이 현재 노드의 사용 가능한 RAM을 초과하는 경우 Redis에 별도의 노드 (AWS M4 시리즈 또는 Azure Av2 시리즈)가 필요할 수 있습니다.
- 라우팅 작업과 컴퓨팅 작업 간에 노드를 분리합니다.
- 3scale 특정 작업을 위한 전용 컴퓨팅 노드입니다.
-
백엔드 리스너의
PUMA_WORKERS변수를 컴퓨팅 노드의 코어 수로 설정합니다.
2.3. 노드 및 인타이틀먼트 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift에 3scale을 배포하려면 먼저 환경에서 Red Hat Container Registry 에서 이미지를 가져오는 데 필요한 노드 및 권한을 구성해야 합니다.
인타이틀먼트를 구성하려면 다음 단계를 수행합니다.
- 각 노드에 RHEL(Red Hat Enterprise Linux)을 설치합니다.
- 인터페이스 또는 명령줄을 통해 RHSM(Red Hat Subscription Manager)을 사용하여 Red Hat에 노드를 등록합니다.
- RHSM 을 사용하여 3scale 서브스크립션에 노드를 연결합니다.
노드에 OpenShift를 설치하고 다음 요구 사항을 준수합니다.
- 지원되는 OpenShift 버전을 사용합니다.
- 여러 쓰기를 지원하는 파일 시스템에서 영구 스토리지를 구성합니다.
- OpenShift 명령줄 인터페이스를 설치합니다.
서브스크립션 관리자를 사용하여
rhel-7-server-3scale-amp-2.6-rpms리포지토리에 대한 액세스를 활성화합니다.sudo subscription-manager repos --enable=rhel-7-server-3scale-amp-2.6-rpms
sudo subscription-manager repos --enable=rhel-7-server-3scale-amp-2.6-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 3scale-amp-template이라는 3scale 템플릿을 설치합니다. 이는/opt/amp/templates에 저장됩니다.sudo yum install 3scale-amp-template
sudo yum install 3scale-amp-templateCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4. 템플릿을 사용하여 OpenShift에 3scale 배포 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 템플릿을 사용하여 OpenShift에 3scale를 배포하는 방법을 설명합니다.
2.4.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- 2.3절. “노드 및 인타이틀먼트 구성” 섹션에 지정된 대로 구성된 OpenShift 클러스터입니다.
OpenShift 클러스터로 해석되는 도메인입니다.
- 참고: OCP(OpenShift Container Platform) 3.11에서는 템플릿을 사용하여 3scale 배포만 지원합니다.
- Red Hat 컨테이너 카탈로그에 액세스 .
- (선택 사항) 이메일 기능에 대한 작동하는 SMTP 서버입니다.
다음 절차에 따라 .yml 템플릿을 사용하여 OpenShift에 3scale을 설치합니다.
2.4.2. OpenShift에서 레지스트리 인증 구성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat 3scale API Management OpenShift 이미지 스트림을 사용하려면 Red Hat 컨테이너 레지스트리에 대한 레지스트리 인증을 구성해야 합니다. 컨테이너 레지스트리에 대한 등록을 구성하려면 아래 지침을 따르십시오.
다음과 같이 OpenShift 서버에 관리자로 로그인합니다.
oc login -u system:admin
oc login -u system:adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이미지 스트림을 설치할 OpenShift 프로젝트에 로그인합니다. 3scale OpenShift 이미지 스트림에
openshift프로젝트를 사용하는 것이 좋습니다.참고: 고정 임의의 문자열인 접두사가 있습니다.
oc project your-openshift-project
oc project your-openshift-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 2.4.3절. “레지스트리 서비스 계정 생성” 에서 생성한 인증 정보를 사용하여
docker-registry보안을 생성합니다.참고-
your-registry-service-account-username을 12345678|username 형식으로 만든 사용자 이름으로 바꿉니다. -
your-registry-service-account-password를 토큰 정보 탭에서 사용자 이름 아래의 암호 문자열로 바꿉니다. -
이미지 스트림이 상주하고 registry.redhat.io 를 사용하는 모든 새
네임스페이스에대해docker-registry보안을 생성합니다.
oc create secret docker-registry threescale-registry-auth \ --docker-server=registry.redhat.io \ --docker-username="your-registry-service-account-username" \ --docker-password="your-registry-service-account-password"
$ oc create secret docker-registry threescale-registry-auth \ --docker-server=registry.redhat.io \ --docker-username="your-registry-service-account-username" \ --docker-password="your-registry-service-account-password"Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
2.4.3. 레지스트리 서비스 계정 생성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift에 배포된 3scale 2.6가 있는 공유 환경에서 registry.redhat.io 의 컨테이너 이미지를 사용하려면 개별 사용자의 고객 포털 인증 정보 대신 레지스트리 서비스 계정을 사용해야 합니다.
3scale 2.6의 경우 두 옵션 모두 레지스트리 인증을 사용하므로 OpenShift에 템플릿을 사용하거나 Operator를 통해 배포하기 전에 아래 설명된 단계를 따라야 합니다.
- 레지스트리 서비스 계정 페이지로 이동하여 로그인합니다.
- 새 서비스 계정을 클릭합니다.
새 레지스트리 서비스 계정 생성 페이지의 양식을 작성합니다.
서비스 계정의 이름을 추가합니다.
참고: 양식 필드 전에 무작위로 생성된 숫자 문자열이 고정된 길이를 볼 수 있습니다.
- 설명을 입력합니다.
- 생성을 클릭합니다.
- 서비스 계정으로 다시 이동합니다.
- 생성한 서비스 계정을 클릭합니다.
접두사 문자열(예: 12345678|username) 및 암호를 포함하여 사용자 이름을 기록해 둡니다.
-
이 사용자 이름과 암호는
registry.redhat.io에 로그인하는 데 사용됩니다.
-
이 사용자 이름과 암호는
인증 토큰 사용 방법을 보여주는 토큰 정보 페이지에는 사용 가능한 탭이 있습니다. 예를 들어 토큰 정보 탭에는 12345678|username 형식의 사용자 이름과 그 아래의 암호 문자열이 표시되어 있습니다.
2.4.4. 레지스트리 서비스 계정 수정 링크 복사링크가 클립보드에 복사되었습니다!
서비스 계정을 수정하거나 삭제할 수 있습니다. 이 작업은 표의 각 인증 토큰 오른쪽에 팝업 메뉴를 사용하여 레지스트리 서비스 계정 페이지에서 수행할 수 있습니다.
서비스 계정을 다시 생성 또는 제거해도 registry.redhat.io에서 콘텐츠를 인증하고 검색하는 데 토큰을 사용하는 시스템에 영향을 미칩니다.
각 기능에 대한 설명은 다음과 같습니다.
토큰 재생성: 권한이 부여된 사용자가 서비스 계정과 연결된 암호를 재설정할 수 있습니다.
참고: 서비스 계정 의 사용자 이름은 변경할 수 없습니다.
- 설명 업데이트: 권한이 부여된 사용자가 서비스 계정에 대한 설명을 업데이트할 수 있습니다.
- 계정 삭제: 권한이 부여된 사용자가 서비스 계정을 제거할 수 있습니다.
자세한 내용은 다음을 참조하십시오.
2.4.5. 3scale 템플릿 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
와일드카드 경로가 3scale 2.6에서 제거되었습니다.
- 이 기능은 백그라운드에서 Zync에 의해 처리됩니다.
- API 공급자가 생성, 업데이트 또는 삭제되면 경로에 해당 변경 사항이 자동으로 반영됩니다.
3scale 템플릿을 OpenShift 클러스터로 가져오려면 다음 단계를 수행합니다.
터미널 세션에서 클러스터 관리자로 OpenShift에 로그인합니다.
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow 프로젝트를 선택하거나 새 프로젝트를 생성합니다.
oc project <project_name>
oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc new-project <project_name>
oc new-project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc new-app명령을 입력합니다.-
2.3절. “노드 및 인타이틀먼트 구성” 의 일부로 다운로드한 amp.yml 파일의 경로로
--file옵션을 지정합니다. OpenShift 클러스터 도메인으로 설정된
WILDCARD_DOMAIN매개변수를 사용하여--param옵션을 지정합니다.oc new-app --file /opt/amp/templates/amp.yml --param WILDCARD_DOMAIN=<WILDCARD_DOMAIN>
oc new-app --file /opt/amp/templates/amp.yml --param WILDCARD_DOMAIN=<WILDCARD_DOMAIN>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 터미널에는 새로 생성된 3scale 관리 포털의 마스터 및 테넌트 URL과 인증 정보가 표시됩니다. 이 출력에는 다음 정보가 포함되어야 합니다.
- 마스터 관리자 사용자 이름
- 마스터 암호
- 마스터 토큰 정보
- 테넌트 사용자 이름
- 테넌트 암호
- 테넌트 토큰 정보
-
2.3절. “노드 및 인타이틀먼트 구성” 의 일부로 다운로드한 amp.yml 파일의 경로로
https://user-admin.3scale-project.example.com에 admin/xXXyz123으로 로그인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 나중에 참조할 수 있도록 이러한 세부 사항을 기록해 두십시오.
참고로그인 및 인증 정보가 작동할 때까지 3scale이 OpenShift에 완전히 배포될 때까지 기다립니다.
2.4.6. 관리자 포털 URL 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
템플릿을 사용하여 3scale을 배포할 때 고정 URL인 3scale-admin.${wildcardDomain}을 사용하여 기본 테넌트가 생성됩니다.
대시보드에는 테넌트의 새 포털 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
xdg-open https://3scale-admin.3scale-project.example.com
필요한 경우 선택 사항으로 MASTER portal URL: master.${wildcardDomain}에서 새 테넌트를 만들 수 있습니다.
2.4.7. SMTP 변수 구성(선택 사항) 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift는 이메일을 사용하여 알림을 보내고 새 사용자를 초대합니다. 이러한 기능을 사용하려면 자체 SMTP 서버를 제공하고 SMTP 구성 맵에서 SMTP 변수를 구성해야 합니다.
SMTP 구성 맵에서 SMTP 변수를 구성하려면 다음 단계를 수행합니다.
아직 로그인하지 않은 경우 OpenShift에 로그인합니다.
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow SMTP 구성 맵에 대한 변수를 구성합니다.
oc patch명령을 사용하고configmap및smtp오브젝트를 지정한 다음-p옵션을 사용하여 다음 변수에 대해 JSON에 다음 새 값을 작성합니다.Expand 변수 설명 주소
원격 메일 서버를 릴레이로 지정할 수 있습니다.
사용자 이름
메일 서버 사용자 이름 지정
암호
메일 서버 암호 지정
domain
HELO 도메인 지정
port
메일 서버가 새 연결을 수신 대기하는 포트를 지정합니다.
인증
메일 서버의 인증 유형을 지정합니다. 허용되는 값:
plain값: plain ( clear),login(send password Base64로 인코딩), orcram_md5(exchange information and a cryptographic Message Digest to hash important information)openssl.verify.mode
TLS를 사용할 때 OpenSSL이 인증서를 확인하는 방법을 지정합니다. 허용되는 값:
none,peer,client_once, orfail_if_no_peer_cert.예제
oc patch configmap smtp -p '{"data":{"address":"<your_address>"}}' oc patch configmap smtp -p '{"data":{"username":"<your_username>"}}' oc patch configmap smtp -p '{"data":{"password":"<your_password>"}}'oc patch configmap smtp -p '{"data":{"address":"<your_address>"}}' oc patch configmap smtp -p '{"data":{"username":"<your_username>"}}' oc patch configmap smtp -p '{"data":{"password":"<your_password>"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
configmap 변수를 설정한 후
system-app및system-sidekiqPod를 재배포합니다.oc rollout latest dc/system-app oc rollout latest dc/system-sidekiq
oc rollout latest dc/system-app oc rollout latest dc/system-sidekiqCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. 3scale 템플릿 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
템플릿 매개 변수는 배포 중 및 배포 후 3scale(amp.yml) 템플릿의 환경 변수를 구성합니다.
| 이름 | 설명 | 기본값 | 필수 여부 |
|---|---|---|---|
| APP_LABEL | 오브젝트 앱 레이블에 사용됨 |
| 제공됨 |
| ZYNC_DATABASE_PASSWORD | PostgreSQL 연결 사용자의 암호입니다. 제공되지 않는 경우 임의로 생성됩니다. | 해당 없음 | 제공됨 |
| ZYNC_SECRET_KEY_BASE | Zync의 secret 키 기반입니다. 제공되지 않는 경우 임의로 생성됩니다. | 해당 없음 | 제공됨 |
| ZYNC_AUTHENTICATION_TOKEN | Zync에 대한 인증 토큰입니다. 제공되지 않는 경우 임의로 생성됩니다. | 해당 없음 | 제공됨 |
| AMP_RELEASE | 3scale 릴리스 태그입니다. |
| 제공됨 |
| ADMIN_PASSWORD | 임의로 생성된 3scale 관리자 계정 암호입니다. | 해당 없음 | 제공됨 |
| ADMIN_USERNAME | 3scale 관리자 계정 사용자 이름입니다. |
| 제공됨 |
| APICAST_ACCESS_TOKEN | APIcast가 구성을 다운로드하는 데 사용할 액세스 토큰만 읽습니다. | 해당 없음 | 제공됨 |
| ADMIN_ACCESS_TOKEN | API 액세스에 대한 모든 범위 및 쓰기 권한이 있는 관리자 액세스 토큰입니다. | 해당 없음 | 제공되지 않음 |
| WILDCARD_DOMAIN |
와일드카드 경로의 루트 도메인. 예를 들어 루트 도메인 | 해당 없음 | 제공됨 |
| TENANT_NAME | -admin 접미사를 사용하여 관리 포털을 사용할 수 있는 루트 아래의 테넌트 이름입니다. |
| 제공됨 |
| MYSQL_USER | 데이터베이스 액세스에 사용할 MySQL 사용자의 사용자 이름입니다. |
| 제공됨 |
| MYSQL_PASSWORD | MySQL 사용자의 암호입니다. | 해당 없음 | 제공됨 |
| MYSQL_DATABASE | 액세스한 MySQL 데이터베이스의 이름입니다. |
| 제공됨 |
| MYSQL_ROOT_PASSWORD | root 사용자의 암호입니다. | 해당 없음 | 제공됨 |
| SYSTEM_BACKEND_USERNAME | 내부 3scale api auth의 내부 3scale API 사용자 이름입니다. |
| 제공됨 |
| SYSTEM_BACKEND_PASSWORD | 내부 3scale api auth의 내부 3scale API 암호입니다. | 해당 없음 | 제공됨 |
| REDIS_IMAGE | 사용할 Redis 이미지 |
| 제공됨 |
| MYSQL_IMAGE | 사용할 Mysql 이미지 |
| 제공됨 |
| MEMCACHED_IMAGE | 사용할 Memcached 이미지 |
| 제공됨 |
| POSTGRESQL_IMAGE | 사용할 Postgresql 이미지 |
| 제공됨 |
| AMP_SYSTEM_IMAGE | 사용할 3scale 시스템 이미지 |
| 제공됨 |
| AMP_BACKEND_IMAGE | 사용할 3scale 백엔드 이미지 |
| 제공됨 |
| AMP_APICAST_IMAGE | 사용할 3scale APIcast 이미지 |
| 제공됨 |
| AMP_ZYNC_IMAGE | 사용할 3scale Zync 이미지 |
| 제공됨 |
| SYSTEM_BACKEND_SHARED_SECRET | 백엔드에서 시스템으로 이벤트를 가져오는 공유 시크릿입니다. | 해당 없음 | 제공됨 |
| SYSTEM_APP_SECRET_KEY_BASE | 시스템 애플리케이션 시크릿 키 기반 | 해당 없음 | 제공됨 |
| APICAST_MANAGEMENT_API | APIcast Management API의 범위입니다. disabled, status, debug일 수 있습니다. 상태 검사에는 최소한 상태가 필요합니다. |
| 제공되지 않음 |
| APICAST_OPENSSL_VERIFY | 설정을 다운로드할 때 OpenSSL 피어 확인을 켜거나 끕니다. true/false로 설정할 수 있습니다. |
| 제공되지 않음 |
| APICAST_RESPONSE_CODES | APIcast에서 응답 코드 로깅을 활성화합니다. | true | 제공되지 않음 |
| APICAST_REGISTRY_URL | APIcast 정책의 위치로 확인되는 URL | 제공됨 | |
| MASTER_USER | 마스터 관리자 계정 사용자 이름 |
| 제공됨 |
| MASTER_NAME |
마스터 관리 포털의 하위 도메인 값에는 |
| 제공됨 |
| MASTER_PASSWORD | 임의로 생성된 마스터 관리자 암호 | 해당 없음 | 제공됨 |
| MASTER_ACCESS_TOKEN | API 호출에 대한 마스터 수준 권한이 있는 토큰 | 해당 없음 | 제공됨 |
| IMAGESTREAM_TAG_IMPORT_INSECURE | 서버가 인증서 확인을 바이패스하거나 이미지 가져오기 중에 HTTP를 통해 직접 연결할 수 있는 경우 true로 설정합니다. |
| 제공됨 |
2.6. OpenShift에서 3scale로 APIcast 사용 링크 복사링크가 클립보드에 복사되었습니다!
APIcast는 API 관리자에서 3scale Hosted 및 OpenShift Container Platform의 온-프레미스 설치를 통해 사용할 수 있습니다. 구성 절차는 둘 다 다릅니다. 이 섹션에서는 OpenShift에 API Manager를 사용하여 APIcast를 배포하는 방법을 설명합니다.
2.6.1. 3scale이 포함된 기존 OpenShift 클러스터에 APIcast 템플릿 배포 링크 복사링크가 클립보드에 복사되었습니다!
3scale OpenShift 템플릿에는 기본적으로 두 개의 임베디드 APIcast가 포함되어 있습니다. 더 많은 API 게이트웨이가 필요하거나 별도의 APIcast 배포가 필요한 경우 OpenShift 클러스터에 추가 APIcast 템플릿을 배포할 수 있습니다.
OpenShift 클러스터에 추가 API 게이트웨이를 배포하려면 다음 단계를 수행합니다.
다음 구성을 사용하여 액세스 토큰을 생성합니다.
- 계정 관리 API로 범위
- 읽기 전용 액세스 권한
APIcast 클러스터에 로그인합니다.
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow APIcast가 3scale과 통신할 수 있는 시크릿을 생성합니다. 3scale 배포의 액세스 토큰, 테넌트 이름 및 와일드카드 도메인을 사용하여
new-basicauth,apicast-configuration-url-secret및--password매개변수를 지정합니다.oc secret new-basicauth apicast-configuration-url-secret --password=https://<APICAST_ACCESS_TOKEN>@<TENANT_NAME>-admin.<WILDCARD_DOMAIN>
oc secret new-basicauth apicast-configuration-url-secret --password=https://<APICAST_ACCESS_TOKEN>@<TENANT_NAME>-admin.<WILDCARD_DOMAIN>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고TENANT_NAME은 에서 관리 포털을 사용할 수 있는 루트의 이름입니다.TENANT_NAME의 기본값은 3scale입니다. 3scale 배포에서 사용자 지정 값을 사용한 경우 여기에서 해당 값을 사용해야 합니다.oc new-app명령을 사용하여 APIcast 템플릿을 가져와apicast.yml파일로--file옵션을 지정합니다.oc new-app --file /opt/amp/templates/apicast.yml
oc new-app --file /opt/amp/templates/apicast.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고먼저 2.3절. “노드 및 인타이틀먼트 구성” 에 설명된 대로 APIcast 템플릿을 설치합니다.
2.6.2. 다른 OpenShift 클러스터에서 APIcast 연결 링크 복사링크가 클립보드에 복사되었습니다!
3scale 클러스터 외부에서 다른 OpenShift 클러스터에 APIcast를 배포하는 경우 공용 경로를 통해 연결해야 합니다.
다음 구성을 사용하여 액세스 토큰을 생성합니다.
- 계정 관리 API로 범위
- 읽기 전용 액세스 권한
APIcast 클러스터에 로그인합니다.
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow APIcast가 3scale과 통신할 수 있는 시크릿을 생성합니다. 3scale 배포의 액세스 토큰, 테넌트 이름 및 와일드카드 도메인을 사용하여
new-basicauth,apicast-configuration-url-secret및--password매개변수를 지정합니다.oc secret new-basicauth apicast-configuration-url-secret --password=https://<APICAST_ACCESS_TOKEN>@<TENANT_NAME>-admin.<WILDCARD_DOMAIN>
oc secret new-basicauth apicast-configuration-url-secret --password=https://<APICAST_ACCESS_TOKEN>@<TENANT_NAME>-admin.<WILDCARD_DOMAIN>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고TENANT_NAME은 에서 관리 포털을 사용할 수 있는 루트의 이름입니다.TENANT_NAME의 기본값은 3scale입니다. 3scale 배포에서 사용자 지정 값을 사용한 경우 해당 값을 사용해야 합니다.oc new-app명령을 사용하여 다른 OpenShift 클러스터에 APIcast를 배포합니다.--file옵션과apicast.yml파일의 경로를 지정합니다.oc new-app --file /path/to/file/apicast.yml
oc new-app --file /path/to/file/apicast.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.3. 포함된 APIcast의 기본 동작 변경 링크 복사링크가 클립보드에 복사되었습니다!
외부 APIcast 배포에서는 APIcast OpenShift 템플릿에서 템플릿 매개 변수를 변경하여 기본 동작을 수정할 수 있습니다.
임베디드 APIcast 배포에서 3scale 및 APIcast는 단일 템플릿에서 배포됩니다. 포함된 APIcast 배포의 기본 동작을 변경하려면 배포 후 환경 변수를 수정해야 합니다.
2.6.4. 내부 서비스 경로를 통해 단일 OpenShift 클러스터에 여러 APIcast 배포 연결 링크 복사링크가 클립보드에 복사되었습니다!
동일한 OpenShift 클러스터에 여러 APIcast 게이트웨이를 배포하는 경우 기본 외부 경로 구성 대신 백엔드 리스너 서비스를 통해 내부 경로를 사용하여 연결하도록 구성할 수 있습니다.
내부 서비스 경로를 통해 연결하려면 OpenShift SDN 플러그인이 설치되어 있어야 합니다. 연결하는 방법은 설치된 SDN에 따라 다릅니다.
ovs-subnet
ovs-subnet OpenShift 소프트웨어 정의 네트워킹(SDN) 플러그인을 사용하는 경우 다음 단계를 수행하여 내부 경로를 통해 연결합니다.
아직 로그인하지 않은 경우 OpenShift 클러스터에 로그인합니다.
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여
backend-listener경로 URL을 표시합니다.oc get route backend
oc get route backendCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc new-app명령을apicast.yml:로 입력합니다.oc new-app -f apicast.yml
oc new-app -f apicast.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
ovs-multitenant
ovs-multitenant OpenShift SDN 플러그인을 사용하는 경우 다음 단계를 수행하여 내부 경로를 통해 연결합니다.
아직 로그인하지 않은 경우 OpenShift 클러스터에 로그인합니다.
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow admin으로
pod-network및join-projects옵션을 사용하여oadm명령을 지정하여 두 프로젝트 간 통신을 설정합니다.oadm pod-network join-projects --to=<3SCALE_PROJECT> <APICAST_PROJECT>
oadm pod-network join-projects --to=<3SCALE_PROJECT> <APICAST_PROJECT>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여
backend-listener경로 URL을 표시합니다.oc get route backend
oc get route backendCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc new-app명령을apicast.yml:로 입력합니다.oc new-app -f apicast.yml
oc new-app -f apicast.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
더 많은 정보
OpenShift SDN 및 프로젝트 네트워크 격리에 대한 자세한 내용은 Openshift SDN을 참조하십시오.
2.6.5. 다른 배포에서 APIcast 연결 링크 복사링크가 클립보드에 복사되었습니다!
Docker에 APIcast를 배포하는 경우 THREESCALE_PORTAL_ENDPOINT 매개변수를 URL로 설정하고 OpenShift에 배포된 3scale 관리 포털의 토큰을 액세스하여 OpenShift에 배포된 3scale에 APIcast를 연결할 수 있습니다. 이 경우 BACKEND_ENDPOINT_OVERRIDE 매개변수를 설정할 필요가 없습니다.
자세한 내용은 5장. Docker 컨테이너 환경의 APIcast 에서 참조하십시오.
2.7. Operator를 사용하여 3scale 배포 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 APIManager 사용자 정의 리소스를 사용하여 3scale Operator를 통해 3scale 솔루션을 설치 및 배포하는 방법을 설명합니다.
와일드카드 경로가 3scale 2.6에서 제거되었습니다.
- 이 기능은 백그라운드에서 Zync에 의해 처리됩니다.
- API 공급자가 생성, 업데이트 또는 삭제되면 경로에 해당 변경 사항이 자동으로 반영됩니다.
2.7.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- 2.4.2절. “OpenShift에서 레지스트리 인증 구성”
- 먼저 Operator를 사용하여 3scale을 배포하려면 다음 단계를 수행해야 합니다. 6장. OpenShift 4.x에 3scale Operator 설치
OpenShift Container Platform (OCP) 4.x
- OpenShift 클러스터에서 관리자 권한이 있는 사용자 계정
- 참고: OCP 4.x는 Operator를 사용하여 3scale 배포를 지원합니다.
2.7.2. APIManager 사용자 정의 리소스 배포 링크 복사링크가 클립보드에 복사되었습니다!
APIManager 사용자 지정 리소스를 배포하면 Operator가 처리를 시작하고 해당 리소스에서 3scale 솔루션을 배포합니다.
절차
카탈로그 > 설치된 Operator를 클릭합니다.
- 설치된 Operator 목록에서 3scale Operator를 클릭합니다.
- API Manager 탭을 클릭합니다.
- APIManager 생성을 클릭합니다.
샘플 콘텐츠를 지우고 편집기에 다음 YAML 정의를 추가한 다음 생성 을 클릭합니다.
참고wildcardDomain 매개변수는 유효한 DNS 도메인인 IP 주소로 확인되는 제공할 원하는 이름일 수 있습니다. 매개 변수의 자리 표시자 표시를 제거해야 합니다. <>.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고APIManager 필드에 대한 자세한 내용은 참조 설명서를 참조하십시오.
2.7.3. APIManager 관리자 인증 정보 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
Operator 기반 배포 후 3scale에 로그인하려면 관리자 인증 정보가 필요합니다. 이러한 인증 정보를 얻으려면 다음 단계를 수행하십시오.
다음 명령을 실행합니다.
oc get secret system-seed -o json | jq -r .data.ADMIN_USERNAME | 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.ADMIN_USERNAME | base64 -d oc get secret system-seed -o json | jq -r .data.ADMIN_PASSWORD | base64 -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow - APIManager 관리자로 로그인하여 이러한 인증 정보가 작동하는지 확인합니다.
2.7.4. 관리자 포털 URL 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
Operator를 사용하여 3scale을 배포할 때 고정 URL을 사용하여 기본 테넌트가 생성됩니다: 3scale-admin.${wildcardDomain}
대시보드에는 테넌트의 새 포털 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
xdg-open https://3scale-admin.3scale-project.example.com
필요한 경우 선택 사항으로 MASTER portal URL: master.${wildcardDomain}에서 새 테넌트를 만들 수 있습니다.
2.8. 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에는 일반적인 설치 문제 목록이 포함되어 있으며 문제 해결에 대한 지침을 제공합니다.
2.8.1. 더티 영구 볼륨 클레임을 남기는 이전 배포 링크 복사링크가 클립보드에 복사되었습니다!
문제
이전 배포 시도에서는 더티 PVC(영구 볼륨 클레임)로 인해 MySQL 컨테이너가 시작되지 않습니다.
원인
OpenShift에서 프로젝트를 삭제해도 연결된 PVC는 정리되지 않습니다.
해결책
oc get pvc명령을 사용하여 오류가 있는 MySQL 데이터가 포함된 PVC를 찾습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
OpenShift UI에서
cancel deployment를 클릭하여 system-mysql pod의 배포를 중지합니다. - MySQL 경로 아래의 모든 항목을 삭제하여 볼륨을 정리합니다.
-
새
system-mysql배포를 시작합니다.
2.8.2. Docker 레지스트리에서 잘못 가져 오기 링크 복사링크가 클립보드에 복사되었습니다!
문제
설치 중에 다음 오류가 발생합니다.
svc/system-redis - 1EX.AMP.LE.IP:6379
dc/system-redis deploys docker.io/rhscl/redis-32-rhel7:3.2-5.3
deployment #1 failed 13 minutes ago: config change
svc/system-redis - 1EX.AMP.LE.IP:6379
dc/system-redis deploys docker.io/rhscl/redis-32-rhel7:3.2-5.3
deployment #1 failed 13 minutes ago: config change
원인
OpenShift는 docker 명령을 실행하여 컨테이너 이미지를 검색하고 가져옵니다. 이 명령은 registry.redhat.io Red Hat 컨테이너 레지스트리 대신 docker.io Docker 레지스트리를 나타냅니다.
이는 시스템에 예기치 않은 버전의 Docker 컨테이너 환경이 포함된 경우 발생합니다.
해결책
적절한 Docker 컨테이너 버전 을 사용합니다.
2.8.3. MySQL의 권한 문제 링크 복사링크가 클립보드에 복사되었습니다!
문제
system-msql Pod가 충돌하며 배포되지 않아 이에 종속된 다른 시스템이 배포에 실패합니다. Pod 로그에 다음 오류가 표시됩니다.
[ERROR] Cannot start server : on unix socket: Permission denied [ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ? [ERROR] Aborting
[ERROR] Cannot start server : on unix socket: Permission denied
[ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
[ERROR] Aborting
원인
MySQL 프로세스는 부적절한 사용자 권한으로 시작됩니다.
해결책
영구 볼륨에 사용되는 디렉터리에는 root 그룹에 대한 쓰기 권한이 있어야 합니다. MySQL 서비스가 root 그룹에서 다른 사용자로 실행되므로 root 사용자에 대한 rw 권한이 충분하지 않습니다. root 사용자로 다음 명령을 실행합니다.
chmod -R g+w /path/for/pvs
chmod -R g+w /path/for/pvsCopy to Clipboard Copied! Toggle word wrap Toggle overflow SElinux가 액세스를 차단하지 못하도록 다음 명령을 실행합니다.
chcon -Rt svirt_sandbox_file_t /path/for/pvs
chcon -Rt svirt_sandbox_file_t /path/for/pvsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.8.4. 로고 또는 이미지를 업로드할 수 없음 링크 복사링크가 클립보드에 복사되었습니다!
문제
로고를 업로드할 수 없음 - system-app 로그에 다음과 같은 오류가 표시됩니다.
Errno::EACCES (Permission denied @ dir_s_mkdir - /opt/system/public//system/provider-name/2
Errno::EACCES (Permission denied @ dir_s_mkdir - /opt/system/public//system/provider-name/2
원인
영구 볼륨은 OpenShift에서 쓸 수 없습니다.
해결책
OpenShift에서 영구 볼륨에 쓸 수 있는지 확인합니다. root 그룹이 소유해야 하며 쓰기 가능한 그룹이어야 합니다.
2.8.5. 테스트 호출이 OpenShift에서 작동하지 않음 링크 복사링크가 클립보드에 복사되었습니다!
문제
테스트 호출은 OpenShift에서 새 서비스 및 경로를 생성한 후 작동하지 않습니다. curl을 통한 직접 호출도 실패합니다. 즉, service not available.
원인
3scale에서는 기본적으로 HTTPS 경로가 필요하며 OpenShift 경로는 보안되지 않습니다.
해결책
OpenShift 라우터 설정에서 보안 경로 확인란이 클릭되었는지 확인합니다.
2.8.6. 3scale의 다른 프로젝트에서 APIcast 링크 복사링크가 클립보드에 복사되었습니다!
문제
APIcast 배포가 실패합니다(pod가 파란색으로 바뀌지 않음). 로그에 다음 오류가 표시됩니다.
update acceptor rejected apicast-3: pods for deployment "apicast-3" took longer than 600 seconds to become ready
update acceptor rejected apicast-3: pods for deployment "apicast-3" took longer than 600 seconds to become ready
Pod에 다음 오류가 표시됩니다.
Error synching pod, skipping: failed to "StartContainer" for "apicast" with RunContainerError: "GenerateRunContainerOptions: secrets \"apicast-configuration-url-secret\" not found"
Error synching pod, skipping: failed to "StartContainer" for "apicast" with RunContainerError: "GenerateRunContainerOptions: secrets \"apicast-configuration-url-secret\" not found"
원인
시크릿이 제대로 설정되어 있지 않았습니다.
해결책
APIcast v3을 사용하여 보안을 생성할 때 apicast-configuration-url-secret을 지정합니다.
oc secret new-basicauth apicast-configuration-url-secret --password=https://<ACCESS_TOKEN>@<TENANT_NAME>-admin.<WILDCARD_DOMAIN>
oc secret new-basicauth apicast-configuration-url-secret --password=https://<ACCESS_TOKEN>@<TENANT_NAME>-admin.<WILDCARD_DOMAIN>
3장. APIcast 설치 링크 복사링크가 클립보드에 복사되었습니다!
APIcast는 내부 및 외부 API 서비스를 3scale 플랫폼과 통합하는 데 사용되는 NGINX 기반 API 게이트웨이입니다. APIcast는 라운드 로빈을 사용하여 로드 밸런싱을 수행합니다.
이 가이드에서는 배포 옵션, 환경 제공 및 시작 방법에 대해 알아봅니다.
최신 릴리스 및 지원되는 APIcast 버전에 대한 자세한 내용은 Red Hat 3scale API Management Supported Configurations and Red Hat 3scale API Management - Component Details 문서를 참조하십시오.
3.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
APIcast는 독립 실행형 API 게이트웨이가 아닙니다. 3scale API Manager에 연결해야 합니다.
- 작동하는 3scale 온프레미스 인스턴스가 필요합니다.
3.2. 배포 옵션 링크 복사링크가 클립보드에 복사되었습니다!
호스팅 또는 자체 관리 APIcast를 사용할 수 있습니다. 두 경우 모두 APIcast를 3scale API 관리 플랫폼의 나머지 부분에 연결해야 합니다.
- 내장된 APIcast: 기본적으로 3scale API Management 설치로 두 개의 APIcast 게이트웨이(staging 및 production)가 제공됩니다. 사전 구성되어 있으며 즉시 사용할 준비가 되어 있습니다.
자체 관리형 APIcast: 원하는 곳에 APIcast를 배포할 수 있습니다. 자체 관리형 모드는 프로덕션 환경에서 의도한 작동 모드입니다. 다음은 APIcast 배포에 권장되는 몇 가지 옵션입니다.
- Docker 컨테이너 환경: Docker 형식의 컨테이너에서 APIcast를 실행할 모든 종속 항목이 포함된 Docker 형식의 컨테이너 이미지를 다운로드할 수 있습니다.
- OpenShift: 지원되는 OpenShift 버전에서 APIcast를 실행합니다. 자체 관리형 APIcast를 3scale 설치 또는 3scale 온라인 계정에 연결할 수 있습니다.
3.3. 환경 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 3scale 계정을 생성할 때 두 가지 다른 환경에 내장 APIcast가 제공됩니다.
-
스테이징: API 통합을 구성하고 테스트하는 경우에만 사용됩니다. 설정이 예상대로 작동하는지 확인한 후 프로덕션 환경에 배포하도록 선택할 수 있습니다. OpenShift 템플릿은 각 API 호출에 구성이 다시 로드되는 방식으로 Staging APIcast의 매개 변수를 설정합니다 (
APIST_CONFIGURATION_LOADER: lazy,APICAST_CONFIGURATION_CACHE: 0). APIcast 구성의 변경 사항을 빠르게 테스트하는 것이 유용합니다. -
프로덕션: 이 환경은 프로덕션 용도로 사용됩니다. 다음 매개변수는 OpenShift 템플릿에서 Production APIcast에 대해 설정됩니다.
APICAST_CONFIGURATION_LOADER: boot,APICAST_CONFIGURATION_CACHE: 300. 즉, APIcast가 시작될 때 구성이 완전히 로드되고 300초(5분) 동안 캐시됩니다. 5분 후에 설정이 다시 로드됩니다. 즉, 구성을 프로덕션으로 승격시킬 때 APIcast의 새 배포를 트리거하지 않는 한 최대 5분이 걸릴 수 있습니다.
3.4. 통합 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
[your_API_name] > 통합 > 설정으로 이동합니다.
통합 페이지 상단에 통합 옵션이 표시됩니다. 기본적으로 배포 옵션은 호스팅 APIcast이며 인증 모드는 API 키입니다. 오른쪽 상단에 있는 통합 설정 편집을 클릭하여 이러한 설정을 변경할 수 있습니다.
통합 페이지 상단에 통합 옵션이 표시됩니다. 기본적으로 다음 값을 찾을 수 있습니다.
- 배포 옵션: 포함된 APIcast.
- 인증 모드: API 키
오른쪽 상단에 있는 통합 설정 편집을 클릭하여 이러한 설정을 변경할 수 있습니다.
3.5. 서비스 구성 링크 복사링크가 클립보드에 복사되었습니다!
3.5.1. API 백엔드 선언 링크 복사링크가 클립보드에 복사되었습니다!
API 백엔드의 끝점 호스트인 Private Base URL 필드에서 API 백엔드를 선언해야 합니다. APIcast는 모든 인증, 권한 부여, 속도 제한 및 통계가 처리된 후 모든 트래픽을 API 백엔드로 리디렉션합니다.
일반적으로 API의 프라이빗 기본 URL은 관리하는 도메인의 https://api-backend.yourdomain.com:443 (yourdomain.com)과 같습니다. 예를 들어, Twitter API와 통합하려는 경우 개인 기본 URL은 https://api.twitter.com/ 입니다. 이 예제에서는 3scale에서 호스팅하는 echo API를 사용합니다. - 경로를 수락하고 요청에 대한 정보(path, request 매개변수, 헤더 등)를 반환합니다. 개인 기본 URL은 https://echo-api.3scale.net:443입니다.
프라이빗(관리되지 않음) API가 작동하는지 테스트합니다. 예를 들어, Echo API의 경우 curl 명령을 사용하여 다음 호출을 수행할 수 있습니다.
curl "https://echo-api.3scale.net:443"
curl "https://echo-api.3scale.net:443"
다음과 같은 응답을 받습니다.
3.5.2. 인증 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
AUTHENTICATION SETTINGS 섹션에서 API에 대한 인증 설정을 구성할 수 있습니다. 다음 필드는 모두 선택 사항입니다.
| 필드 | 설명 |
|---|---|
| 호스트 헤더 | 사용자 지정 호스트 요청 헤더를 정의합니다. 이는 API 백엔드가 특정 호스트의 트래픽만 허용하는 경우에만 필요합니다. |
| 시크릿 토큰 | API 백엔드에 대한 직접 개발자 요청을 차단하는 데 사용됩니다. 여기에서 헤더 값을 설정하고 백엔드에서 이 시크릿 헤더를 사용하여 호출만 허용하도록 합니다. |
| 인증 정보 위치 | 인증 정보가 HTTP 헤더로 전달되는지, 쿼리 매개변수 또는 HTTP 기본 인증으로 전달되는지 여부를 정의합니다. |
| 인증 사용자 키 | 자격 증명 위치와 관련된 사용자 키 설정 |
| 오류 | 다음과 같은 오류에 대해 응답 코드, 콘텐츠 유형 및 응답 본문을 정의합니다. 인증 실패, 인증 누락, 일치하지 않습니다. |
3.5.3. API 테스트 호출을 구성합니다. 링크 복사링크가 클립보드에 복사되었습니다!
호스팅된 스테이징 환경에 대한 테스트 호출을 구성해야 합니다. API test GET 요청 필드 (예: /v1/word/good.json)의 API에 기존 경로를 입력합니다.
3.5.4. 구성 설정 저장 링크 복사링크가 클립보드에 복사되었습니다!
페이지 오른쪽 아래에 있는 업데이트 및 테스트 설정 버튼을 클릭하여 설정을 저장합니다. 그러면 APIcast 구성이 3scale 호스팅 스테이징 환경에 배포됩니다. 모든 항목이 올바르게 구성된 경우 왼쪽의 수직선이 녹색으로 전환되어야 합니다.
자체 관리 배포 옵션 중 하나를 사용하는 경우 GUI에서 구성을 저장하고 스테이징 또는 프로덕션 공용 기본 URL 필드에 올바른 호스트를 추가하여 배포된 API 게이트웨이를 가리키는지 확인합니다. 프로덕션 게이트웨이를 호출하기 전에 v.x to Production 버튼을 클릭해야 합니다.
staging 섹션 하단에서 샘플 curl 을 찾아 콘솔에서 실행합니다.
curl "https://XXX.staging.apicast.io:443/v1/word/good.json?user_key=YOUR_USER_KEY"
curl "https://XXX.staging.apicast.io:443/v1/word/good.json?user_key=YOUR_USER_KEY"
하지만 위와 동일한 응답이 표시되어야 하지만, 이번에 요청은 3scale 호스팅 APIcast 인스턴스를 거칩니다. 참고: 서비스에 유효한 자격 증명이 있는 애플리케이션이 있어야 합니다. 최대 3scale에 등록할 때 생성된 기본 API 서비스를 사용하는 경우 이미 애플리케이션이 있어야 합니다. 그렇지 않으면 테스트 curl에 USER_KEY 또는 APP_ID 및 APP_KEY 값이 표시되는 경우 이 서비스에 대한 애플리케이션을 먼저 생성해야 합니다.
이제 API가 3scale과 통합되었습니다.
3scale 호스팅 APIcast 게이트웨이는 자격 증명을 검증하고 애플리케이션의 애플리케이션 계획에 대해 정의한 속도 제한을 적용합니다. 인증 정보가 없거나 잘못된 인증 정보가 있으면 오류 메시지가 표시됩니다.
4장. Red Hat OpenShift에서 APIcast 실행 링크 복사링크가 클립보드에 복사되었습니다!
이 튜토리얼에서는 Red Hat OpenShift에 APIcast API 게이트웨이를 배포하는 방법을 설명합니다.
4.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
아래 튜토리얼 단계를 수행하려면 먼저 APIcast 설치 가이드에 따라 3scale 관리 포털에서 APIcast 를 구성해야 합니다. 통합 설정에서 자체 관리 게이트웨이가 배포 옵션으로 선택되어 있는지 확인합니다. staging 및 Production 환경이 모두 진행되도록 구성되어 있어야 합니다.
4.2. Red Hat OpenShift 설정 링크 복사링크가 클립보드에 복사되었습니다!
이미 실행 중인 OpenShift 클러스터가 있는 경우 이 단계를 건너뛸 수 있습니다. 그렇지 않은 경우 계속 읽으십시오.
프로덕션 배포의 경우 OpenShift 설치에 대한 지침을 따를 수 있습니다.
이 튜토리얼에서는 다음을 사용하여 OpenShift 클러스터를 설치합니다.
- Red Hat Enterprise Linux (RHEL) 7
- Docker 컨테이너 환경 v1.10.3
- OpenShift Origin CLI(명령줄 인터페이스) - v1.3.1
4.2.1. Docker 컨테이너 환경 설치 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat에서 제공하는 Docker 형식의 컨테이너 이미지는 RHEL에서 Extras 채널의 일부로 릴리스됩니다. 추가 리포지토리를 활성화하려면 서브스크립션 관리자 또는 yum config 관리자를 사용할 수 있습니다. 자세한 내용은 RHEL 제품 설명서 를 참조하십시오.
AWS EC2 인스턴스에 배포된 RHEL 7의 경우 다음 지침을 사용합니다.
모든 리포지토리를 나열합니다.
sudo yum repolist all
sudo yum repolist allCopy to Clipboard Copied! Toggle word wrap Toggle overflow *-extras리포지토리를 찾아 활성화합니다.sudo yum-config-manager --enable rhui-REGION-rhel-server-extras
sudo yum-config-manager --enable rhui-REGION-rhel-server-extrasCopy to Clipboard Copied! Toggle word wrap Toggle overflow Docker 형식의 컨테이너 이미지를 설치합니다.
sudo yum install docker docker-registry
sudo yum install docker docker-registryCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/sysconfig/docker파일에 다음 행을 추가하거나 제거하여172.30.0.0/16의 비보안 레지스트리를 추가합니다.INSECURE_REGISTRY='--insecure-registry 172.30.0.0/16'
INSECURE_REGISTRY='--insecure-registry 172.30.0.0/16'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Docker 서비스를 시작합니다.
sudo systemctl start docker
sudo systemctl start dockerCopy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 명령을 사용하여 컨테이너 서비스가 실행 중인지 확인할 수 있습니다.
sudo systemctl status docker
sudo systemctl status docker
4.2.2. OpenShift 클러스터 시작 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift 릴리스 페이지에서 클라이언트 툴의 안정적인 최신 릴리스 (openshift-origin-client-tools-VERSION-linux-64bit.tar.gz)를 다운로드하여 PATH 에 있는 아카이브에서 추출된 Linux oc 바이너리를 배치합니다.
-
oc 클러스터명령 세트는 1.3+ 또는 최신 릴리스에서만 사용할 수 있습니다. -
docker 명령은
root사용자로 실행되므로 root 권한으로oc또는 docker 명령을 실행해야 합니다.
docker 명령을 실행하고 다음을 실행할 수 있는 권한이 있는 사용자로 터미널을 엽니다.
oc cluster up
oc cluster up
출력 하단에서 배포된 클러스터에 대한 정보를 확인할 수 있습니다.
OpenShift 서버에 할당된 IP 주소를 확인합니다. 이 튜토리얼에서 OPENSHIFT-SERVER-IP 를 참조합니다.
4.2.3. 원격 서버에서 OpenShift 클러스터 설정(선택 사항) 링크 복사링크가 클립보드에 복사되었습니다!
원격 서버에 OpenShift 클러스터를 배포하는 경우 클러스터 시작 시 공용 호스트 이름과 라우팅 접미사를 명시적으로 지정해야 OpenShift 웹 콘솔에 원격으로 액세스할 수 있습니다.
예를 들어 AWS EC2 인스턴스에 배포하는 경우 다음 옵션을 지정해야 합니다.
oc cluster up --public-hostname=ec2-54-321-67-89.compute-1.amazonaws.com --routing-suffix=54.321.67.89.xip.io
oc cluster up --public-hostname=ec2-54-321-67-89.compute-1.amazonaws.com --routing-suffix=54.321.67.89.xip.io
여기서 ec2-54-321-67-89.amazonaws.com 은 공용 도메인이며 54.321.67.89 는 인스턴스의 IP입니다. 그러면 https://ec2-54-321-67-89.compute-1.amazonaws.com:8443 에서 OpenShift 웹 콘솔에 액세스할 수 있습니다.
4.3. OpenShift 템플릿을 사용하여 APIcast 배포 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 개발자로 로그인하여 다음 단계를 진행할 수 있습니다.
그렇지 않으면 이전 단계에서 다운로드하여 설치한 OpenShift 클라이언트 툴에서
oc login명령을 사용하여 OpenShift에 로그인합니다. 기본 로그인 인증 정보는 username = " developer" 및 password = " developer" 입니다.oc login https://OPENSHIFT-SERVER-IP:8443
oc login https://OPENSHIFT-SERVER-IP:8443Copy to Clipboard Copied! Toggle word wrap Toggle overflow Login successful.출력이 표시되어야 합니다.프로젝트를 생성합니다. 이 예에서는 표시 이름을 게이트웨이로설정
oc new-project "3scalegateway" --display-name="gateway" --description="3scale gateway demo"
oc new-project "3scalegateway" --display-name="gateway" --description="3scale gateway demo"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 응답은 다음과 같아야 합니다.
Now using project "3scalegateway" on server "https://172.30.0.112:8443".
Now using project "3scalegateway" on server "https://172.30.0.112:8443".Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령 프롬프트의 텍스트 출력에서 제안된 다음 단계를 무시하고 아래의 다음 단계로 진행합니다.
<access_token>및<domain>을 자체 인증 정보로 교체하여 프로젝트를 참조하는 새 시크릿을 생성합니다.<access_token>및<domain>에 대한 자세한 내용은 아래를 참조하십시오.oc create secret generic apicast-configuration-url-secret --from-literal=password=https://<access_token>@<admin_portal_domain> --type=kubernetes.io/basic-auth
oc create secret generic apicast-configuration-url-secret --from-literal=password=https://<access_token>@<admin_portal_domain> --type=kubernetes.io/basic-authCopy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서 <
access_token>은 3scale 계정 관리 API의 액세스 토큰 (서비스 토큰이 아님)이며 <domain>-admin.3scale.net은 3scale 관리자 포털의 URL입니다.응답은 다음과 같아야 합니다.
secret/apicast-configuration-url-secret
secret/apicast-configuration-url-secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow 템플릿에서 APIcast 게이트웨이 애플리케이션을 생성하고 배포를 시작합니다.
oc new-app -f https://raw.githubusercontent.com/3scale/3scale-amp-openshift-templates/2.6.0.GA/apicast-gateway/apicast.yml
oc new-app -f https://raw.githubusercontent.com/3scale/3scale-amp-openshift-templates/2.6.0.GA/apicast-gateway/apicast.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 하단에 다음 메시지가 표시됩니다.
--> Creating resources with label app=3scale-gateway ... deploymentconfig "apicast" created service "apicast" created --> Success Run 'oc status' to view your app.--> Creating resources with label app=3scale-gateway ... deploymentconfig "apicast" created service "apicast" created --> Success Run 'oc status' to view your app.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. OpenShift 콘솔을 통해 경로 생성 링크 복사링크가 클립보드에 복사되었습니다!
브라우저에서 OpenShift 클러스터의 웹 콘솔을 엽니다. https://OPENSHIFT-SERVER-IP:8443/console/
원격 서버에서 OpenShift 클러스터를 시작한 경우
OPENSHIFT-SERVER-IP대신--public-hostname에 지정된 값을 사용합니다.로그인 화면이 표시됩니다.
참고신뢰할 수 없는 웹 사이트에 대한 경고가 표시될 수 있습니다. 이는 유효한 인증서를 구성하지 않고도 보안 프로토콜을 통해 웹 콘솔에 액세스하려고 하기 때문에 이는 예상된 결과입니다. 프로덕션 환경에서 이 문제를 방지해야 하지만 이 테스트 설정에서는 계속 진행하여 이 주소에 대한 예외를 생성할 수 있습니다.
위의 OpenShift 설치 섹션에서 만들거나 가져온 개발자 자격 증명을 사용하여 로그인합니다.
위의 명령줄에서 생성한 게이트웨이 프로젝트를 포함하여 프로젝트 목록이 표시됩니다.
게이트웨이 프로젝트가 표시되지 않으면 다른 사용자로 만들었을 수 있으며 이 사용자에게 정책 역할을 할당해야 합니다.
게이트웨이 링크를 클릭하면 개요 탭이 표시됩니다.
OpenShift는 APIcast용 코드를 다운로드하고 배포를 시작했습니다. 배포가 진행 중일 때 실행 중인 Deployment #1 메시지가 표시될 수 있습니다.
빌드가 완료되면 UI가 새로 고침되고 템플릿에 정의된 OpenShift에서 시작한 APIcast 2개(포드 ) 인스턴스가 두 개 표시됩니다.
각 APIcast 인스턴스는 시작 시 3scale 관리 포털의 통합 페이지에서 제공한 설정을 사용하여 3scale에서 필요한 구성을 다운로드합니다.
OpenShift는 두 개의 APIcast 인스턴스를 유지 관리하고 두가지 모두의 상태를 모니터링합니다. 비정상 APIcast 인스턴스는 자동으로 새 APIcast 인스턴스로 교체됩니다.
APIcast 인스턴스가 트래픽을 수신하도록 허용하려면 경로를 생성해야 합니다. 경로 생성을 클릭하여 시작합니다.
위의 3scale에 설정한 것과 동일한 호스트를 Public Base URL 섹션에 (http:// 및 포트 없이)
gateway.openshift.demo와 같이 입력한 다음 만들기 버튼을 클릭합니다.정의하는 모든 3scale 서비스에 대해 새 경로를 생성해야 합니다.
5장. Docker 컨테이너 환경의 APIcast 링크 복사링크가 클립보드에 복사되었습니다!
이는 3scale API 게이트웨이로 사용할 준비가 된 Docker 형식의 컨테이너 내에 APIcast를 배포하는 단계별 가이드입니다.
5.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
APIcast 설치 가이드에 따라 3scale 관리 포털에서 APIcast 를 구성해야 합니다.
5.2. Docker 컨테이너 환경 설치 링크 복사링크가 클립보드에 복사되었습니다!
이 가이드에서는 RHEL (Red Hat Enterprise Linux) 7에서 Docker 컨테이너 환경을 설정하는 단계를 설명합니다.
Red Hat에서 제공하는 Docker 형식의 컨테이너는 RHEL의 Extras 채널의 일부로 릴리스됩니다. 추가 리포지토리를 활성화하려면 Subscription Manager 또는 yum config manager를 사용할 수 있습니다. 자세한 내용은 RHEL 제품 설명서를 참조하십시오.
AWS EC2 인스턴스에 RHEL 7을 배포하려면 다음 단계를 따르십시오.
-
모든 리포지토리 나열합니다:
sudo yum repolist all. -
*-extras리포지토리를 찾습니다. -
extras리포지토리sudo yum-config-manager --enable rhui-REGION-rhel-server-extras를 활성화합니다. -
Docker 컨테이너 환경 패키지 설치:
sudo yum install docker.
다른 운영 체제의 경우 다음 Docker 설명서를 참조하십시오.
5.3. Docker 컨테이너 환경 게이트웨이 실행 링크 복사링크가 클립보드에 복사되었습니다!
Docker 데몬을 시작합니다.
sudo systemctl start docker.service.Docker 데몬이 실행 중인지 확인합니다.
sudo systemctl status docker.service.Red Hat 레지스트리에서 Docker 형식의 컨테이너 이미지를 사용할 준비가 되어 있는 경우 다음을 다운로드할 수 있습니다.
sudo docker pull registry.access.redhat.com/3scale-amp26/apicast-gateway.Docker 형식의 컨테이너에서 APIcast를 실행합니다.
sudo docker run --name apicast --rm -p 8080:8080 -e THREESCALE_PORTAL_ENDPOINT=https://<access_token>@<domain>-admin.3scale.net registry.access.redhat.com/3scale-amp26/apicast-gateway.여기서
<access_token>은 3scale 계정 관리 API의 액세스 토큰입니다. 액세스 토큰 대신 공급자 키를 사용할 수 있습니다.<domain>-admin.3scale.net은 3scale 관리 포털의 URL입니다.
이 명령은 포트 8080 에서 "apicast" 라는 Docker 형식의 컨테이너를 실행하고 3scale 포털에서 JSON 구성 파일을 가져옵니다. 기타 구성 옵션은 APIcast 설치 가이드를 참조하십시오.
5.3.1. Docker 명령 옵션 링크 복사링크가 클립보드에 복사되었습니다!
docker run 명령과 함께 다음 옵션을 사용할 수 있습니다.
-
--rm: 종료 시 컨테이너를 자동으로 제거합니다. -
-d또는--detach: 백그라운드에서 컨테이너를 실행하고 컨테이너 ID를 출력합니다. 지정하지 않으면 컨테이너가 전경 모드에서 실행되며CTRL + c를 사용하여 중지할 수 있습니다. 분리된 모드에서 시작하면docker attach명령을 사용하여 컨테이너에 다시 연결할 수 있습니다(예:docker attach apicast). -
-p또는--publish: 컨테이너의 포트를 호스트에 게시합니다. 값의 형식은<host port="">:<container port="">이므로-p 80:8080은 컨테이너의 포트8080을 호스트 시스템의 포트80에 바인딩합니다. 예를 들어 관리 API는 포트8090을 사용하므로-p 8090:8090을docker run명령에 추가하여 이 포트를 게시할 수 있습니다. -
-e또는--env: 환경 변수를 설정합니다. -
-v또는--volume: 볼륨을 마운트합니다. 값은 일반적으로<host path="">:<container path="">[:<options>]로 표시됩니다.<options>는 선택적 특성입니다. 이 특성을:ro로 설정하여 볼륨을 읽기 전용으로 지정할 수 있습니다(기본적으로 읽기 전용 모드임). 예:-v /host/path:/container/path:ro.
사용 가능한 옵션에 대한 자세한 내용은 Docker 실행 참조를 확인하십시오.
5.4. APIcast 테스트 링크 복사링크가 클립보드에 복사되었습니다!
이전 단계에서는 Docker 형식의 컨테이너가 3scale 레지스트리의 구성 파일과 Docker 형식의 이미지로 실행 중인지 확인합니다. 포트 8080 에서 APIcast를 통해 호출을 테스트하고 3scale 계정에서 가져올 수 있는 올바른 인증 정보를 제공할 수 있습니다.
테스트 호출은 APIcast가 올바르게 실행되고 있는지 확인할 뿐만 아니라 인증 및 보고가 성공적으로 처리되고 있는지도 확인합니다.
호출에 사용하는 호스트가 Integration (통합) 페이지의 Public Base URL 필드에 구성된 호스트와 같은지 확인합니다.
6장. OpenShift 4.x에 3scale Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
이 문서에서는 다음을 수행하는 방법을 보여줍니다.
- 새 프로젝트를 생성합니다.
- 3scale 인스턴스를 배포합니다.
-
프로젝트에
threescale-registry-auth시크릿을 생성합니다. - OLM(Operator Lifecycle Manager)을 통해 3scale Operator를 설치합니다.
- Operator가 배포되면 사용자 정의 리소스를 배포합니다.
사전 요구 사항
OpenShift Container Platform (OCP) 4.1 클러스터에 대한 관리자 권한으로 액세스할 수 있습니다.
- 참고: OCP 4.x는 Operator를 사용하여 3scale 배포를 지원합니다.
새로 생성된 별도의 빈 프로젝트에 3scale Operator 및 CRD(사용자 정의 리소스 정의)를 배포합니다. 인프라가 포함된 기존 프로젝트에 배포하는 경우 기존 요소를 변경하거나 삭제할 수 있습니다.
6.1. 새 OpenShift 프로젝트 생성 링크 복사링크가 클립보드에 복사되었습니다!
아래에 표시된 명령을 실행하여 새 OpenShift 프로젝트를 생성합니다. 새 프로젝트를 생성하고 Operator 및 사용자 정의 리소스를 설치합니다. Operator는 해당 프로젝트의 OLM을 통해 사용자 정의 리소스를 관리합니다.
이 명령은 프로젝트 이름 operator-test 의 예를 보여줍니다. 이 프로젝트 이름을 자신의 이름으로 바꿉니다.
oc new-project operator-test
oc new-project operator-test
그러면 Operator, APIManager CR(사용자 정의 리소스) 및 Capabilities 사용자 정의 리소스가 설치되는 새 OpenShift 프로젝트 가 생성됩니다.
6.2. OLM을 사용하여 3scale Operator 설치 및 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 콘솔에서 OperatorHub를 사용하여 OpenShift Container Platform 4.1 클러스터에 3scale Operator를 설치하는 데 OLM을 사용합니다.
operator-test 프로젝트에 3scale Operator를 설치하고 배포해야 합니다.
절차
- OpenShift Container Platform 콘솔에서 관리자 권한이 있는 계정을 사용하여 로그인합니다.
- 카탈로그 > OperatorHub를 클릭합니다.
- 키워드로 필터링 상자에3scale operator를 입력하여 3scale operator 찾습니다.
- 3scale Operator를 클릭합니다. Operator에 대한 정보가 표시됩니다.
- Operator에 대한 정보를 읽고 설치를 클릭합니다. Create Operator Subscription 페이지가 열립니다.
Create Operator Subscription 페이지에서 기본 선택 사항을 모두 수락하고 서브스크립션을 클릭합니다.
참고Operator는 선택한 클러스터의 특정 단일 네임 스페이스에서만 사용할 수 있습니다.
3scale-operator 세부 정보 페이지가 표시됩니다. 여기서 서브스크립션 개요가 표시됩니다.
서브스크립션 업그레이드 상태가 Up to date 로 표시되면 Catalog > Installed Operators 를 클릭하여 3scale Operator CSV(ClusterServiceVersion)가 표시되고 상태가 결국
operator-test프로젝트에서 InstallSucceeded로 표시되는지 확인합니다.- 설치에 성공하면 OpenShift API 서버에서 Operator의 기능 기능과 관련된 APIManager CRD 및 CRD가 등록됩니다.
성공적으로 설치한 후
oc get를 통해 CRD에서 정의한 리소스 유형을 쿼리합니다.예를 들어 APIManager CRD가 올바르게 등록되었는지 확인하려면 다음 명령을 실행합니다.
oc get apimanagers
oc get apimanagersCopy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 출력이 표시되어야 합니다.
No resources found.
No resources found.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7장. 3scale High Availability 및 evaluation 템플릿 링크 복사링크가 클립보드에 복사되었습니다!
7.1. 소개 링크 복사링크가 클립보드에 복사되었습니다!
이 문서에서는 Red Hat 3scale API Management 2.6 On-Premises 설치에서 사용하는 High Availability 및ECDHE의 템플릿에 대해 설명합니다. ???
3scale High Availability 및 evaluation 템플릿은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
7.2. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- 고가용성 및 평가판 템플릿의 요소를 배포하려면 사용 가능한 OpenShift 클러스터가 있어야 합니다.
7.3. 고가용성 템플릿 링크 복사링크가 클립보드에 복사되었습니다!
HA(고가용성) 템플릿을 사용하면 중요한 데이터베이스에 대한 HA 설정을 사용할 수 있습니다.
7.3.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- HA 템플릿을 배포하기 전에 외부 데이터베이스를 배포 및 구성하고 부하 분산 엔드포인트를 사용하여 HA 구성으로 구성해야 합니다.
7.3.2. HA 템플릿 사용 링크 복사링크가 클립보드에 복사되었습니다!
HA의 경우 console -ha-tech-preview.yml 이라는 템플릿을 사용하면 OpenShift 외부에 중요한 데이터베이스를 배포할 수 있습니다. 이 예외는 다음과 같습니다.
- Memcached
- Sphinx
- Zync
표준 amp.yml 템플릿과 amp-ha-tech-preview.yml 간의 차이점은 다음과 같습니다.
다음 요소를 제거합니다.
- backend-redis 및 관련 구성 요소
- system-redis 및 관련 구성 요소
- system-mysql 및 관련 구성 요소
- Redis 및 MySQL 관련 ConfigMaps
- MYSQL_IMAGE, REDIS_IMAGE, MYSQL_USER, MYSQL_ROOT_PASSWORD 매개 변수
-
기본적으로 데이터베이스 이외의
DeploymentConfig오브젝트 유형의 복제본 수가 1에서 2로 증가했습니다. 다음 필수 매개변수를 추가하여 외부 데이터베이스의 위치를 제어할 수 있습니다.
- BACKEND_REDIS_STORAGE_ENDPOINT
- BACKEND_REDIS_QUEUES_ENDPOINT
- SYSTEM_REDIS_URL
- APICAST_STAGING_REDIS_URL
- APICAST_PRODUCTION_REDIS_URL
- SYSTEM_DATABASE_URL
amp-ha-tech-preview.yml을 사용하면 새로 추가된 필수 매개변수를 통해 클러스터 외부에서 데이터베이스 연결( 영구 데이터를 포함하지 않는 system-memcache,zync-database 및 system-sphinx 제외)을 구성해야 합니다. 엔드포인트에는 인증 정보를 포함하여 데이터베이스 부하 분산 연결 문자열이 필요합니다. 또한 데이터베이스 이외의 배포의 경우 애플리케이션 수준에서 중복성을 가지도록 Pod 복제본 수가 기본적으로 2로 증가합니다.
7.4. 평가 템플릿 링크 복사링크가 클립보드에 복사되었습니다!
평가를 위해 리소스 요청 또는 제한 없이 3scale 환경을 배포하는 amp-eval-tech-preview.yml 이라는 템플릿이 있습니다.
표준 amp.yml 템플릿에 비해 유일한 기능 차이점은 리소스 제한 및 요청이 제거되었다는 것입니다. 즉, 이 버전에서는 최소 하드웨어 요구 사항이 CPU 및 메모리 수준의 Pod에서 제거되었습니다. 이 템플릿은 지정된 하드웨어 리소스와 함께 최상의 방식으로 구성 요소를 배포하려고 하므로 평가, 테스트 및 개발 목적으로만 사용됩니다.
8장. 3scale에 대한 Redis HA(고가용성) 지원 링크 복사링크가 클립보드에 복사되었습니다!
operator 및 backend-redis 에 알려진 문제가 있습니다. 자세한 내용은 Red Hat 3scale API Management 2.6 릴리스 노트인 6을 참조하십시오. 릴리스 노트의 알려진 문제
HA(고가용성)는 OpenShift Container Platform(OCP)에서 대부분의 구성 요소에 대해 제공됩니다. 자세한 내용은 OpenShift Container Platform 3.11 Chapter 30. High Availability에서 참조하십시오.
3scale의 HA에 대한 데이터베이스 구성 요소는 다음과 같습니다.
-
backend-redis: 통계 스토리지 및 임시 작업 스토리지에 사용됩니다. -
system-redis: 3scale의 백그라운드 작업을 위한 임시 스토리지를 제공하며,system-appPod의 Ruby 프로세스에 대한 메시지 버스로도 사용됩니다.
backend-redis 및 system-redis 에는 모두 Redis Sentinel 및 Redis Enterprise에 대해 지원되는 Redis 고가용성 변형이 포함되어 있습니다.
8.1. 제로 다운타임으로 Redis 설정 링크 복사링크가 클립보드에 복사되었습니다!
제로 다운타임이 필요한 경우 OCP 외부에서 Redis를 구성해야 합니다. 3scale Pod의 구성 옵션을 사용하여 설정하는 방법은 여러 가지가 있습니다.
- 자체 관리 Redis 설정
- Redis Sentinel 사용: Redis Sentinel 문서 참조
Redis는 서비스로 제공됩니다.
예를 들면 다음과 같습니다.
- Amazon ElastiCache
- Redis Labs
Red Hat은 위에 언급된 서비스를 지원하지 않습니다. 이러한 서비스에 대한 언급은 Red Hat의 제품 또는 서비스를 보증한다는 의미는 아닙니다. 사용자는 Red Hat이 귀하의 외부 콘텐츠 사용 (또는 의존)으로 인해 발생할 수있는 손실 또는 비용을 부담하지 않는 것에 동의합니다.
8.2. 3scale의 백엔드 구성 요소 구성 링크 복사링크가 클립보드에 복사되었습니다!
백엔드 구성 요소에 대한 Redis HA(failover)를 구성하려면 3scale 2.6에 구성 설정이 있습니다. 이러한 설정은 backend-cron,backend-listener, backend-worker 의 다음 배포 구성에서 환경 변수로 구성할 수 있습니다.
Redis 대신 sentinels를 사용하려면 3scale을 배포하기 전에 사용하려는 Redis를 구성하기 위해 모든 필드가 포함된 system-redis 보안을 생성해야 합니다. 필드는 3scale 2.6부터 백엔드에 매개 변수로 제공되지 않습니다.
8.2.1. backend-redis 및 system-redis 시크릿 생성 링크 복사링크가 클립보드에 복사되었습니다!
다음과 같이 backend-redis 및 system-redis 보안을 생성하려면 다음 단계를 따르십시오.
8.2.1.1. HA용 3scale 신규 설치 배포 링크 복사링크가 클립보드에 복사되었습니다!
아래 모든 필드를 사용하여
backend-redis및system-redis보안을 생성합니다.backend-redis
Copy to Clipboard Copied! Toggle word wrap Toggle overflow system-redis
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sentinels를 사용하여 Redis에 대해 구성할 때
backend-redis및system-redis의 해당URL필드는redis://[:redis-password@]redis-group[/db]`형식의 Redis 그룹을 나타냅니다. 여기서 [x]는 선택적 요소 x이며,redis-password,redis-group,db변수를 적절하게 대체합니다.예제
redis://:redispwd@mymaster/5
redis://:redispwd@mymaster/5Copy to Clipboard Copied! Toggle word wrap Toggle overflow SENTINEL_HOSTS필드는 다음 형식의 sentinel 연결 문자열을 쉼표로 구분한 목록입니다.[redis://][:sentinel-password@]sentinel-hostname-or-ip[:port]
[redis://][:sentinel-password@]sentinel-hostname-or-ip[:port]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 목록의 각 요소에 대해 [x]는 선택적 요소 x 및
sentinel-password,sentinel-hostname-or-ip를 나타내며,port는 그에 따라 교체할 변수입니다.예제
:sentinelpwd@123.45.67.009:2711,:sentinelpwd@other-sentinel:2722
:sentinelpwd@123.45.67.009:2711,:sentinelpwd@other-sentinel:2722Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
SENTINEL_ROLE필드는master또는slave입니다.
최신 버전의 템플릿을 사용하여 OpenShift에서 3scale 2.6 설치 가이드에 표시된 3scale를 배포합니다.
-
이미 존재하는
backend-redis및system-redis로 인한 오류를 무시합니다.
-
이미 존재하는
8.2.1.2. 3scale이 아닌 HA 배포를 HA로 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
-
8.2.1.1절. “HA용 3scale 신규 설치 배포” 에 표시된 대로 모든 필드를 사용하여
backend-redis및system-redis보안을 편집합니다. 백엔드 pod에 대해 다음
backend-redis환경 변수가 정의되어 있는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음
system-redis환경 변수가system-(app|sidekiq|sphinx)Pod에 대해 정의되어 있는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 3scale을 계속 업그레이드하려면 지침을 따르십시오.
8.2.2. Redis Enterprise 사용 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift에 배포된 Redis Enterprise를 사용하여 다음과 같은 세 가지
redis-enterprise인스턴스를 사용하십시오.system-redis시크릿을 편집합니다.-
고유한 값을
MESSAGE_BUS_NAMESPACE및NAMESPACE로 설정합니다. -
URL및MESSAGE_BUS_URL을 동일한 데이터베이스로 설정합니다.
-
고유한 값을
-
backend-redis의 백엔드 데이터베이스를REDIS_QUEUES_URL으로 설정합니다. -
backend-redis의 세 번째 데이터베이스를REDIS_STORAGE_URL로 설정합니다.
8.2.3. Redis Sentinel 사용 링크 복사링크가 클립보드에 복사되었습니다!
3개 또는 4개의 다른 Redis 데이터베이스와 함께 Redis Sentinel을 사용하십시오.
system-redis시크릿을 편집합니다.-
고유한 값을
MESSAGE_BUS_NAMESPACE및NAMESPACE로 설정합니다. -
URL및MESSAGE_BUS_URL을 적절한 Redis 그룹으로 설정합니다 (예:redis://:redispwd@mymaster/5) -
SENTINEL_HOSTS및MESSAGE_BUS_SENTINEL_HOSTS를 sentinels 호스트 및 포트의 쉼표로 구분된 목록으로 설정합니다(예::sentinelpwd@123.45.67.009:2711,:sentinelpwd@other-sentinel:2722). -
SENTINEL_ROLE및MESSAGE_BUS_SENTINEL_ROLE을 master로 설정합니다.
-
고유한 값을
백엔드의
backend-redis시크릿을 다음 값으로 설정합니다.-
REDIS_QUEUES_URL -
REDIS_QUEUES_SENTINEL_ROLE -
REDIS_QUEUES_SENTINEL_HOSTS
-
세 번째 데이터베이스의 변수를 다음과 같이 설정합니다.
-
REDIS_STORAGE_URL -
REDIS_STORAGE_SENTINEL_ROLE -
REDIS_STORAGE_SENTINEL_HOSTS
-
참고
system-app 및 system-sidekiq 구성 요소는 통계를 검색하기 위해
back-endRedis에 직접 연결합니다.-
3scale 2.7부터 이러한 시스템 구성 요소는 sentinels를 사용할 때
back-endRedis(스토리지)에도 연결할 수 있습니다.
-
3scale 2.7부터 이러한 시스템 구성 요소는 sentinels를 사용할 때
system-app 및 system-sidekiq 구성 요소는
backend-redis대기열이 아닌backend-redis스토리지 만 사용합니다.-
시스템 구성 요소를 변경하면 sentinels가 있는
backend-redis스토리지를 지원합니다.
-
시스템 구성 요소를 변경하면 sentinels가 있는
9장. 외부 MySQL 데이터베이스 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 가이드에서는 7장. 3scale High Availability 및 evaluation 템플릿 에 대한 MySQL 데이터베이스를 외부화하는 데 필요한 정보를 제공합니다. 이 작업은 default amp.yml 파일을 사용하여 수행할 수 있습니다. 이는 기본 system-mysql pod를 사용하여 네트워크 또는 파일 시스템과 같은 여러 인프라 문제가 있는 경우 유용합니다.
이 접근 방식과 7장. 3scale High Availability 및 evaluation 템플릿 의 차이점은 Red Hat 3scale API Management가 처음에 default amp.yml 템플릿을 사용하는 경우 MySQL 데이터베이스를 외부화하는 방법을 제공한다는 것입니다.
9.1. 외부 MySQL 데이터베이스 제한 사항 링크 복사링크가 클립보드에 복사되었습니다!
MySQL 데이터베이스를 외부화하는 프로세스에는 제한이 있습니다.
3scale 온-프레미스 버전
3scale의 2.5 온-프레미스 및 2.6 온-프레미스 버전에서 테스트 및 검증되었습니다.
MySQL 데이터베이스 사용자
mysql2:// 형식 URL을 사용하면 'root'@'%' 를 사용해야 합니다. 그렇지 않으면 데이터베이스에 대한 연결이 실패합니다. 사용자 이름과 암호 조합을 사용하는 것은 3scale에서 'root'@'%' 를 사용하므로 지원되지 않습니다.
MySQL 호스트
호스트 이름 대신 외부 MySQL 데이터베이스의 IP 주소를 사용하거나 확인하지 않습니다. 예를 들어 mysql.mydomain.com 대신 1.1.1.1 을 사용합니다.
시스템 데이터베이스
원격 MySQL 서버에는 현재 system 이라는 기존 데이터베이스가 없어야 합니다.
9.2. MySQL 데이터베이스 외부 지정 링크 복사링크가 클립보드에 복사되었습니다!
다음 단계를 사용하여 MySQL 데이터베이스를 완전히 외부화합니다.
사전 요구 사항
- 관리자 권한이 있는 계정을 사용하여 OpenShift Container Platform 3.11 클러스터에 액세스할 수 있습니다.
- OpenShift 클러스터에 3scale 인스턴스 설치 2장. OpenShift에서 3scale 설치 가이드 을 참조하십시오.
그러면 프로세스가 진행되는 동안 환경에서 다운타임이 발생합니다.
절차
3scale 온-프레미스 인스턴스가 호스팅되는 OpenShift 노드에 로그인하고 해당 프로젝트로 변경합니다.
oc login -u <user> <url> oc project <3scale-project>
oc login -u <user> <url> oc project <3scale-project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <user>,<url>,<3scale-project>를 사용자 고유의 자격 증명 및 프로젝트 이름으로 바꿉니다.표시된 순서에 따라 모든 pod를 축소합니다. 이는 데이터 손실을 방지 할 것입니다.
3scale 온-프레미스 중지
OpenShift 웹 콘솔 또는 CLI(명령줄 인터페이스)에서 모든 배포 구성을 다음 순서로 0개의 복제본으로 축소합니다.
-
3scale 2.6 이전 버전의 경우
apicast-wildcard-router및zync3scale 2.6 이상 버전의 경우zync-que및zync -
apicast-staging및apicast-production. system-sidekiq,backend-cron,system-sphinx.-
3scale 2.3에는
system-resque가 포함되어 있습니다.
-
3scale 2.3에는
-
system-app. -
backend-listener및backend-worker. backend-redis,system-memcache,system-mysql,system-redis,zync-database.다음 예제에서는
apicast-wildcard-router및zync에 대해 CLI에서 이 작업을 수행하는 방법을 보여줍니다.oc scale dc/apicast-wildcard-router --replicas=0 oc scale dc/zync --replicas=0
oc scale dc/apicast-wildcard-router --replicas=0 oc scale dc/zync --replicas=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고각 단계에 대한 배포 구성은 동시에 축소할 수 있습니다. 예를 들어
apicast-wildcard-router및zync를 함께 축소할 수 있습니다. 그러나 다음 항목을 축소하기 전에 각 단계의 Pod가 종료될 때까지 기다리는 것이 좋습니다. 3scale 인스턴스는 완전히 다시 시작될 때까지 완전히 액세스할 수 없습니다.
-
3scale 2.6 이전 버전의 경우
3scale 프로젝트에서 실행 중인 Pod가 없는지 확인하려면 다음 명령을 사용합니다.
oc get pod
oc get podCopy to Clipboard Copied! Toggle word wrap Toggle overflow 명령에서 리소스를 찾을 수 없음을 반환해야 합니다.
다음 명령을 사용하여 데이터베이스 수준 Pod를 다시 확장합니다.
oc scale dc/{backend-redis,system-memcache,system-mysql,system-redis,zync-database} --replicas=1oc scale dc/{backend-redis,system-memcache,system-mysql,system-redis,zync-database} --replicas=1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 단계를 진행하기 전에
system-mysqlpod를 통해 외부 MySQL 데이터베이스에 로그인할 수 있는지 확인합니다.oc rsh system-mysql-<system_mysql_pod_id> mysql -u root -p -h <host>
oc rsh system-mysql-<system_mysql_pod_id> mysql -u root -p -h <host>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - <system_mysql_pod_id> : system-mysql Pod의 식별자입니다.
사용자는 항상 root여야 합니다. 자세한 내용은 9.1절. “외부 MySQL 데이터베이스 제한 사항” 에서 참조하십시오.
-
CLI에
mysql>이 표시됩니다. exit을 입력한 다음 return을 누릅니다. 다음 프롬프트에서 exit을 다시 입력하여 OpenShift 노드 콘솔로 돌아갑니다.
-
CLI에
다음 명령을 사용하여 전체 MySQL 덤프를 수행합니다.
oc rsh system-mysql-<system_mysql_pod_id> /bin/bash -c "mysqldump -u root --single-transaction --routines --triggers --all-databases" > system-mysql-dump.sql
oc rsh system-mysql-<system_mysql_pod_id> /bin/bash -c "mysqldump -u root --single-transaction --routines --triggers --all-databases" > system-mysql-dump.sqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
<system_mysql_pod_id>를 고유한
system-mysqlPod ID 로 바꿉니다. 다음 예제와 같이
system-mysql-dump.sql파일에 유효한 MySQL 수준 덤프가 포함되어 있는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
<system_mysql_pod_id>를 고유한
system-mysqlpod를 축소하고 0(영) 복제본으로 둡니다.oc scale dc/system-mysql --replicas=0
oc scale dc/system-mysql --replicas=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow URL
mysql2://root:<password>@<host>/system과 동일한 base64 를 찾아 <password> 및 <host>를 적절하게 바꿉니다.echo "mysql2://root:<password>@<host>/system" | base64
echo "mysql2://root:<password>@<host>/system" | base64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 원격 MySQL 데이터베이스에 기본 'user'@'%' 를 생성합니다. SELECT 권한만 있으면 됩니다. 또한 동등한 base64를 찾을 수 있습니다.
echo "user" | base64 echo "<password>" | base64
echo "user" | base64 echo "<password>" | base64Copy to Clipboard Copied! Toggle word wrap Toggle overflow - <password>를 'user'@'%'의 암호로 바꿉니다.
백업을 수행하고 OpenShift 시크릿
system-database를 편집합니다.oc get secret system-database -o yaml > system-database-orig.bkp.yml oc edit secret system-database
oc get secret system-database -o yaml > system-database-orig.bkp.yml oc edit secret system-databaseCopy to Clipboard Copied! Toggle word wrap Toggle overflow - URL: [Step-8]의 값으로 바꿉니다.
- DB_USER 및 DB_PASSWORD: 두 가지 모두에 대해 이전 단계의 값을 사용합니다.
아래 명령을 사용하여
system-mysql-dump.sql을 원격 데이터베이스 서버에 전송하고 덤프를 서버로 가져옵니다.mysql -u root -p < system-mysql-dump.sql
mysql -u root -p < system-mysql-dump.sqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow system 이라는 새 데이터베이스가 생성되었는지 확인합니다.
mysql -u root -p -se "SHOW DATABASES"
mysql -u root -p -se "SHOW DATABASES"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 Pod를 올바른 순서로 확장하는 Start 3scale 온-프레미스 에 대한 다음 지침을 사용합니다.
3scale 온-프레미스 시작
-
backend-redis,system-memcache,system-mysql,system-redis,zync-database. -
backend-listener및backend-worker. -
system-app. system-sidekiq,backend-cron,system-sphinx-
3scale 2.3에는
system-resque가 포함되어 있습니다.
-
3scale 2.3에는
-
apicast-staging및apicast-production. 3scale 2.6 이전 버전의 경우
apicast-wildcard-router및zync3scale 2.6 이상 버전의 경우zync-que및zync다음 예제에서는
backend-redis,system-memcache,system-mysql,system-redis,zync-database에 대해 CLI에서 이 작업을 수행하는 방법을 보여줍니다.oc scale dc/backend-redis --replicas=1 oc scale dc/system-memcache --replicas=1 oc scale dc/system-mysql --replicas=1 oc scale dc/system-redis --replicas=1 oc scale dc/zync-database --replicas=1
oc scale dc/backend-redis --replicas=1 oc scale dc/system-memcache --replicas=1 oc scale dc/system-mysql --replicas=1 oc scale dc/system-redis --replicas=1 oc scale dc/zync-database --replicas=1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이제
system-apppod가 문제 없이 가동 및 실행되어야 합니다.
-
- 검증 후 표시된 순서대로 다른 포드를 확장합니다.
-
system-mysqlDeploymentConfig 오브젝트를 백업합니다. 모든 것이 제대로 실행되고 있는지 확인한 후 며칠 후에 삭제할 수 있습니다.system-mysqlDeploymentConfig를 삭제하면 향후 이 절차가 다시 수행되는 경우 향후 혼동이 발생하지 않습니다.
9.3. 롤백 링크 복사링크가 클립보드에 복사되었습니다!
system-app 포드가 완전히 온라인 상태가 아니고 13단계 이후 해당 Pod의 근본 원인을 결정하거나 처리할 수 없는 경우 롤백 절차를 수행합니다.
system-database-orig.bkp.yml의 원래 값을 사용하여 시크릿system-database를 편집합니다. [단계-10] 을 참조하십시오.oc edit secret system-database
oc edit secret system-databaseCopy to Clipboard Copied! Toggle word wrap Toggle overflow URL, DB_USER, DB_PASSWORD를 원래 값으로 바꿉니다.
모든 pod를 축소한 다음
system-mysql을 포함하여 다시 확장합니다.system-apppod 및 기타 pod를 시작한 후 다시 실행해야 합니다. 다음 명령을 실행하여 모든 Pod가 백업되어 실행 중인지 확인합니다.oc get pods -n <3scale-project>
oc get pods -n <3scale-project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow