自定义ASM网关的扩缩容策略

ASM网关支持在网关YAML中配置副本数以及HPA相关参数,通常能够满足大部分场景。然而对于某些极端情况,默认提供的副本数配置和HPA并不能满足要求,比如当业务有十分规律的波峰波谷时,更适合使用CronHPA来调节副本数。为了满足此类需求,ASM支持自定义网关的扩缩容策略。

使用说明

创建ASM网关后,控制面会自动在数据面集群的istio-system命名空间下创建一个名为istio-${ASM网关名称}的Deployment。该Deployment由ASM管理,任何对其参数的修改都将无效,ASM会自动重新同步并覆盖自定义配置,以确保网关的正常运行。

为了实现自定义网关的扩缩容能力,1.19版本及以上的ASM支持了配置asm.alibabacloud.com/replicas-managed-by-asm: false的注解。在网关定义中添加此注解后,ASM控制面会在每次同步网关Deployment时跳过副本数的同步。这样,您就可以自行修改网关Deployment的副本数,并且更改不会被控制面覆盖。

网关示例如下:

apiVersion: istio.alibabacloud.com/v1beta1
kind: IstioGateway
metadata:   
  name: "ingressgateway"  
  namespace: "istio-system"
  annotations:
    asm.alibabacloud.com/replicas-managed-by-asm: "false"  # asm放弃同步网关deployment的副本数
spec:  
  ......
  ports:  
  - name: http    
    port: 80    
    targetPort: 80
  ......

相关操作

添加annotation之后,您可以手动管理网关副本数,或者使用容器水平伸缩(HPA)容器定时水平伸缩(CronHPA)等资源自动管理网关的弹性伸缩能力。