2.2. 온프레미스 3scale up
APIcast 배포가 증가함에 따라 사용 가능한 스토리지 용량을 늘려야 할 수 있습니다. 스토리지를 확장하는 방법은 영구 스토리지에 사용하는 파일 시스템의 유형에 따라 다릅니다.
NFS(네트워크 파일 시스템)를 사용하는 경우 다음 명령을 사용하여 PV(영구 볼륨)를 확장할 수 있습니다.
$ oc edit pv <pv_name>
다른 스토리지 방법을 사용하는 경우 다음 섹션에 나열된 방법 중 하나를 사용하여 영구 볼륨을 수동으로 확장해야 합니다.
2.2.1. 방법 1: 영구 볼륨 백업 및 스왑
절차
- 기존 영구 볼륨에 데이터를 백업합니다.
- 새 크기 요구 사항에 맞게 스케일링된 대상 영구 볼륨을 생성하고 연결합니다.
-
사전 바인딩된 영구 볼륨 클레임을 생성하고 새 PVC의 크기(PersistentVolumeClaim) 및
volumeName
필드를 사용하는 영구 볼륨 이름을 지정합니다. - 백업에서 새로 생성된 PV로 데이터를 복원합니다.
새 PV의 이름으로 배포 구성을 수정합니다.
$ oc edit dc/system-app
- 새 PV가 구성되어 제대로 작동하는지 확인합니다.
- 이전 PVC를 삭제하여 클레임된 리소스를 해제합니다.
2.2.2. 방법 2: 3scale 백업 및 재배포
절차
- 기존 영구 볼륨에 데이터를 백업합니다.
- 3scale Pod를 종료합니다.
- 새 크기 요구 사항에 맞게 스케일링된 대상 영구 볼륨을 생성하고 연결합니다.
- 백업에서 새로 생성된 PV로 데이터를 복원합니다.
사전 바인딩된 영구 볼륨 클레임을 생성합니다. 다음을 지정합니다.
- 새 PVC의 크기
-
volumeName
필드를 사용하는 영구 볼륨 이름입니다.
- amp.yml 을 배포합니다.
- 새 PV가 구성되어 제대로 작동하는지 확인합니다.
- 이전 PVC를 삭제하여 클레임된 리소스를 해제합니다.
2.2.3. 3scale 온프레미스 배포 구성
3scale용으로 확장할 주요 배포 구성은 다음과 같습니다.
- APIcast 프로덕션
- 백엔드 리스너
- 백엔드 작업자
2.2.3.1. OCP를 통한 확장
CloudEvent CR을 사용하는 OCP(OpenShift Container Platform)를 통해 배포 구성을 up 또는 down으로 확장할 수 있습니다.
특정 배포 구성을 스케일링하려면 다음을 사용합니다.
다음 VMDK CR을 사용하여 APIcast 프로덕션 배포 구성을 확장합니다.
apiVersion: apps.3scale.net/v1alpha1 kind: APIManager metadata: name: example-apimanager spec: apicast: productionSpec: replicas: X
다음 CR을 사용하여 배포 구성의 백엔드 리스너, 백엔드 작업자 및 백엔드 cron 구성 요소를 확장합니다.
apiVersion: apps.3scale.net/v1alpha1 kind: APIManager metadata: name: example-apimanager spec: backend: listenerSpec: replicas: X workerSpec: replicas: Y cronSpec: replicas: Z
Pod당 원하는 프로세스 수로 적절한 환경 변수를 설정합니다.
backend-listener
Pod의PUMA_WORKERS
:$ oc set env dc/backend-listener --overwrite PUMA_WORKERS=<number_of_processes>
system-app
Pod의UNICORN_WORKERS
:$ oc set env dc/system-app --overwrite UNICORN_WORKERS=<number_of_processes>
2.2.3.2. 수직 및 수평 하드웨어 스케일링
리소스를 추가하여 OpenShift에서 3scale 배포의 성능을 향상시킬 수 있습니다. 수평 확장으로 OpenShift 클러스터에 Pod로 더 많은 컴퓨팅 노드를 추가하거나 기존 컴퓨팅 노드에 더 많은 리소스를 수직 확장으로 할당할 수 있습니다.
수평 스케일링
OpenShift에 포드로 더 많은 컴퓨팅 노드를 추가할 수 있습니다. 추가 컴퓨팅 노드가 클러스터의 기존 노드와 일치하는 경우 환경 변수를 재구성할 필요가 없습니다.
수직 스케일링
기존 컴퓨팅 노드에 더 많은 리소스를 할당할 수 있습니다. 더 많은 리소스를 할당하는 경우 성능을 높이기 위해 Pod에 프로세스를 추가해야 합니다.
3scale 배포에서 다양한 사양 및 구성으로 컴퓨팅 노드를 사용하지 마십시오.
2.2.3.3. 라우터 확장
트래픽이 증가하면 Red Hat OCP 라우터에서 요청을 적절하게 처리할 수 있는지 확인하십시오. 라우터에서 요청의 처리량을 제한하는 경우 라우터 노드를 확장해야 합니다.