第 16 章 自动扩展


Kubernetes 包含 HorizontalPodAutoscaler,允许 StatefulSets 或 Deployment 根据指定的指标自动扩展或缩减。Infinispan CR 会公开 .status.scale 子资源,它允许 HorizontalPodAutoscaler 资源以 Infinispan CR 为目标。

在定义 HorizontalPodAutoscaler 配置前,请考虑您定义的 Data Grid 缓存类型。分布式和复制缓存有不同的扩展要求,因此为运行这些缓存类型的组合定义了 HorizontalPodAutoscaler 可能并不具有优势。例如,定义当内存用量达到特定百分比时扩展的 HorizontalPodAutoscaler 允许在定义分布式缓存时增加整个缓存容量,因为缓存条目分散到 pod 中,但它无法像每个 pod 主机所有缓存条目一样使用复制缓存。相反,根据 CPU 使用率配置 HorizontalPodAutoscaler,对于每个 pod 都包含所有缓存条目的集群会更有益,因此在附加节点间分布读取请求将允许同时处理更多请求。

16.1. Configuring HorizontalPodAutoscaler

创建一个以 Infinispan CR 为目标的 HorizontalPodAutoScaler 资源。

流程

  1. 在与 Infinispan CR 相同的命名空间中定义 HorizontalPodAutoscaler 资源

    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
      name: infinispan-auto
    spec:
      scaleTargetRef:
        apiVersion: infinispan.org/v1
        kind: Infinispan
        name: example 1
      minReplicas: 1
      maxReplicas: 10
      metrics:
        - type: Resource
          resource:
            name: cpu
            target:
              type: Utilization
              averageUtilization: 50
    1
    Infinispan CR 的名称
注意

如果使用类型为 cpumemory 的指标资源,您必须在 Infinispan CR 中为此资源配置请求/限制。

重要

在升级 Data Grid 集群时,应删除 HorizontalPodAutoscaler,因为自动扩展会导致升级过程进入非预期的状态,因为 Operator 需要将集群缩减为 0 个 pod。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.