--- # HTTPScaledObject - 用于实现缩容到 0 的核心配置 apiVersion: http.keda.sh/v1alpha1 kind: HTTPScaledObject metadata: name: portainer-http-scaler namespace: portainer spec: hosts: - portainer.u6.net3w.com pathPrefixes: - / scaleTargetRef: name: portainer kind: Deployment apiVersion: apps/v1 service: portainer port: 9000 replicas: min: 0 # 空闲时缩容到 0 max: 3 # 最多 3 个副本 scalingMetric: requestRate: granularity: 1s targetValue: 50 # 每秒 50 个请求时扩容 window: 1m scaledownPeriod: 300 # 5 分钟无流量后缩容到 0 --- # Traefik Middleware - 设置正确的协议头 apiVersion: traefik.io/v1alpha1 kind: Middleware metadata: name: portainer-headers namespace: keda spec: headers: customRequestHeaders: X-Forwarded-Proto: "https" --- # Traefik IngressRoute - 将流量路由到 KEDA HTTP Add-on 的拦截器 apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: portainer-ingress namespace: keda spec: entryPoints: - web routes: - match: Host(`portainer.u6.net3w.com`) kind: Rule middlewares: - name: portainer-headers services: - name: keda-add-ons-http-interceptor-proxy port: 8080