扩缩和自动扩缩运行时服务

您可以通过命令行或配置替换功能来扩缩在 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)

如需通过配置进行扩缩,请增加 martwatcher 和/或 connectAgent 这几节的 Deployment replicaCountMin 配置属性的值。例如:

mart:
 replicaCountMax: 2
 replicaCountMin: 1

watcher:
 replicaCountMax: 2
 replicaCountMin: 1

connectAgent:
 replicaCountMax: 2
 replicaCountMin: 1

这些 Deployment 使用 Pod 横向自动扩缩器进行自动扩缩。将 Deployment 对象的 targetCPUUtilizationPercentage 属性设置为纵向扩容的阈值,超过此值时,Kubernetes 会将 Pod 最多添加到 replicaCountMax 的值。

如需详细了解如何设置配置属性,请参阅管理运行时平面组件

Runtime
Synchronizer
UDCA
ApigeeEnvironment (CRD) 如需通过配置进行扩缩,请增加替换文件中 udcasynchronizer 和/或 runtime 这几节的 replicaCountMin 属性的值。例如:
synchronizer:
 replicaCountMax: 10
 replicaCountMin: 1

runtime:
 replicaCountMax: 10
 replicaCountMin: 1

udca:
 replicaCountMax: 10
 replicaCountMin: 1

注意:这些更改适用于替换文件中的所有环境。如果您要为每个环境自定义扩缩功能,请参阅下文中的高级配置

Deployment 使用 Pod 横向自动扩缩器进行自动扩缩。将 Deployment 对象的 targetCPUUtilizationPercentage 属性设置为纵向扩容的阈值,超过此值时,Kubernetes 会增加 Pod 数量,最高可达 replicaCountMax

如需详细了解如何设置配置属性,请参阅管理运行时平面组件

高级配置

在某些情况下,您可能需要使用高级扩缩选项。示例场景包括:

  • 为每个环境设置不同的扩缩选项。例如,其中 env1 的 minReplica 为 5,而 env2 的 minReplica 为 2。
  • 为环境中的每个组件设置不同的扩缩选项。例如,其中 udca 组件的 maxReplica 为 5,synchronizer 组件的 maxReplica 为 2。

以下示例展示了如何使用 kubernetes patch 命令更改 runtime 组件的 maxReplicas 属性:

  1. 创建要用于该命令的环境变量:
    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
  2. 应用补丁程序。请注意,此示例假定 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
    
  3. 验证更改:
    kubectl get hpa -n $NAMESPACE