Files
k3s/009-基础设施/008-portainer/keda-scaler.yaml
2026-02-05 00:11:05 +08:00

59 lines
1.3 KiB
YAML

---
# 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