59 lines
1.3 KiB
YAML
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
|