2.2. 扩展内部 3scale API 管理
随着 APIcast 部署的增长,您可能需要增加可用的存储量。如何扩展存储取决于您用于持久性存储的文件系统类型。
如果使用网络文件系统(NFS),使用以下命令扩展持久性卷(PV):
$ oc edit pv <pv_name>
如果使用任何其他存储方法,则必须使用以下部分中列出的方法之一手动扩展持久性卷。
2.2.1. 方法 1:备份和恢复持久性卷
流程
- 备份现有持久性卷中的数据。
- 创建并附加一个目标持久性卷,按照您的新大小要求扩展。
-
创建一个预绑定的持久性卷声明,使用
volumeName
字段指定新的 PVC (PersistentVolumeClaim) 和持久性卷名称的大小。 - 将备份中的数据恢复到新创建的 PV。
使用新 PV 的名称修改部署配置:
$ oc edit dc/system-app
- 验证您的新 PV 已配置且正常工作。
- 删除您之前的 PVC 以释放其声明的资源。
2.2.2. 方法 2:备份和恢复 3scale API 管理
流程
- 备份现有持久性卷中的数据。
- 关闭 3scale pod。
- 创建并附加一个目标持久性卷,按照您的新大小要求扩展。
- 将备份中的数据恢复到新创建的 PV。
创建预绑定持久性卷声明。指定:
- 新 PVC 的大小
-
使用
volumeName
字段的持久性卷名称。
- 部署您的 amp.yml。
- 验证您的新 PV 已配置且正常工作。
- 删除您之前的 PVC 以释放其声明的资源。
2.2.3. 配置 3scale API 管理内部部署
为 3scale 扩展的关键部署配置有:
- APIcast 生产
- 后端监听程序
- 后端 worker
2.2.3.1. 通过 OCP 扩展
使用 APIManager CR 通过 OpenShift Container Platform (OCP),您可以扩展或缩减部署配置。
要扩展特定的部署配置,请使用:
使用以下 APIManager CR 扩展 APIcast 生产部署配置:
apiVersion: apps.3scale.net/v1alpha1 kind: APIManager metadata: name: example-apimanager spec: apicast: productionSpec: replicas: X
使用以下 APIManager CR 扩展部署配置的后端监听程序、后端 worker 和后端 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 部署的性能。您可以将更多计算节点作为 pod 添加到 OpenShift 集群,作为横向扩展,或者以垂直扩展形式将更多资源分配给现有计算节点。
横向扩展
您可以将更多计算节点作为容器集添加到 OpenShift 中。如果额外的计算节点与集群中的现有节点匹配,则不必重新配置任何环境变量。
垂直扩展
您可以为现有计算节点分配更多资源。如果分配更多资源,您必须在 pod 中添加额外的进程来提高性能。
在 3scale 部署中避免使用具有不同规格和配置的计算节点。
2.2.3.3. 扩展路由器
随着流量的增加,确保您的红帽 OCP 路由器可以正确处理请求。如果您的路由器正在限制请求的吞吐量,您必须扩展路由器节点。