您可以通过命令行或配置替换功能来扩缩在 Kubernetes 中运行的大多数服务。您可以在 overrides.yaml
文件中为 Apigee Hybrid 运行时服务设置扩缩参数。
服务 | 实施形式 | 扩缩 |
---|---|---|
Cassandra | ApigeeDatastore (CRD) | 请参阅扩缩 Cassandra。 |
Ingress/LoadBalancer | 部署 | Anthos Service Mesh 使用 Pod 横向自动扩缩 (HPA)。 |
Logger | DaemonSet | DaemonSet 会管理所有节点上的 Pod 副本,因此它们会在您扩缩 Pod 时自行扩缩。 |
MART Apigee Connect Watcher |
ApigeeOrganization (CRD) | 如需通过配置进行扩缩,请增加 mart: replicaCountMax: 2 replicaCountMin: 1 watcher: replicaCountMax: 2 replicaCountMin: 1 connectAgent: replicaCountMax: 2 replicaCountMin: 1 这些 Deployment 使用 Pod 横向自动扩缩器进行自动扩缩。将 Deployment 对象的 如需详细了解如何设置配置属性,请参阅管理运行时平面组件。 |
Runtime Synchronizer UDCA |
ApigeeEnvironment (CRD) | 如需通过配置进行扩缩,请增加替换文件中 udca 、synchronizer 和/或 runtime 这几节的 replicaCountMin 属性的值。例如:
synchronizer: replicaCountMax: 10 replicaCountMin: 1 runtime: replicaCountMax: 10 replicaCountMin: 1 udca: replicaCountMax: 10 replicaCountMin: 1 注意:这些更改适用于替换文件中的所有环境。如果您要为每个环境自定义扩缩功能,请参阅下文中的高级配置。 Deployment 使用 Pod 横向自动扩缩器进行自动扩缩。将 Deployment 对象的 如需详细了解如何设置配置属性,请参阅管理运行时平面组件。 |
高级配置
在某些情况下,您可能需要使用高级扩缩选项。示例场景包括:
- 为每个环境设置不同的扩缩选项。例如,其中 env1 的
minReplica
为 5,而 env2 的minReplica
为 2。 - 为环境中的每个组件设置不同的扩缩选项。例如,其中
udca
组件的maxReplica
为 5,synchronizer
组件的maxReplica
为 2。
以下示例展示了如何使用 kubernetes patch
命令更改 runtime
组件的 maxReplicas
属性:
- 创建要用于该命令的环境变量:
export ENV=my-environment-name export NAMESPACE=apigee #the namespace where apigee is deployed export COMPONENT=runtime #can be udca or synchronizer export MAX_REPLICAS=2 export MIN_REPLICAS=1
- 应用补丁程序。请注意,此示例假定
kubectl
位于PATH
中:kubectl patch apigeeenvironment -n $NAMESPACE \ $(kubectl get apigeeenvironments -n $NAMESPACE -o jsonpath='{.items[?(@.spec.name == "'$ENV'" )]..metadata.name}') \ --patch "$(echo -e "spec:\n components:\n $COMPONENT:\n autoScaler:\n maxReplicas: $MAX_REPLICAS\n minReplicas: $MIN_REPLICAS")" \ --type merge
- 验证更改:
kubectl get hpa -n $NAMESPACE