对于 Java 等需要预热的语言与框架而言,在容器刚启动的时候,有可能会出现分钟级别的CPU、内存飙高,其可能会造成HPA的误触发。

上面这句原话出自阿里云ACK服务文档,确实也是我在生产中遇到的问题,cpu 给高了吧,有点浪费资源,给低了吧,每次发版启动时就会触发 HPA,也会一直告警,很烦,一开始我以为配置在 HPA 里面,把 HPA 的文档都泛滥了,甚至对于 HPA 的使用更深了,也没找到我需要的内容。有幸找到了阿里云的解决方案

## 以Deployment为例
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment-basic
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
      annotations:
        HPAScaleUpDelay: 3m # m代表分钟,表示HPA在Pod创建3分钟后开始生效,可选单位为[s(秒),m(分)]
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80 

以上的配置中 spec.template.metadata.annotations.HPAScaleUpDelay 必须是 metric-server 支持的版本才可以使用,最新版本肯定支持,我也没查到哪个版本开始有的,有知道的大佬欢迎留言或者联系

评论




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0