Support Keda Autoscaling
Keda autoscaling is exclusive with regular hpa scaling. If both are set to true, keda takes precedence.
This commit is contained in:
parent
118b00a560
commit
129b7d119e
4 changed files with 73 additions and 1 deletions
|
@ -1,6 +1,6 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
version: 3.10.1
|
version: 3.11.0
|
||||||
appVersion: 0.41.2
|
appVersion: 0.41.2
|
||||||
home: https://github.com/kubernetes/ingress-nginx
|
home: https://github.com/kubernetes/ingress-nginx
|
||||||
description: Ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer
|
description: Ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
{{- if and .Values.controller.autoscaling.enabled (or (eq .Values.controller.kind "Deployment") (eq .Values.controller.kind "Both")) -}}
|
{{- if and .Values.controller.autoscaling.enabled (or (eq .Values.controller.kind "Deployment") (eq .Values.controller.kind "Both")) -}}
|
||||||
|
{{- if not .Values.controller.keda.enabled }}
|
||||||
|
|
||||||
apiVersion: autoscaling/v2beta2
|
apiVersion: autoscaling/v2beta2
|
||||||
kind: HorizontalPodAutoscaler
|
kind: HorizontalPodAutoscaler
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -34,3 +36,5 @@ spec:
|
||||||
{{- toYaml . | nindent 2 }}
|
{{- toYaml . | nindent 2 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
|
33
charts/ingress-nginx/templates/controller-keda.yaml
Normal file
33
charts/ingress-nginx/templates/controller-keda.yaml
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
{{- if .Values.controller.keda.enabled }}
|
||||||
|
# https://keda.sh/docs/
|
||||||
|
|
||||||
|
apiVersion: {{ .Values.controller.keda.apiVersion }}
|
||||||
|
kind: ScaledObject
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{- include "ingress-nginx.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: controller
|
||||||
|
name: {{ include "ingress-nginx.controller.fullname" . }}
|
||||||
|
|
||||||
|
spec:
|
||||||
|
scaleTargetRef:
|
||||||
|
deploymentName: {{ include "ingress-nginx.controller.fullname" . }}
|
||||||
|
pollingInterval: {{ .Values.controller.keda.pollingInterval }}
|
||||||
|
cooldownPeriod: {{ .Values.controller.keda.cooldownPeriod }}
|
||||||
|
minReplicaCount: {{ .Values.controller.keda.minReplicas }}
|
||||||
|
maxReplicaCount: {{ .Values.controller.keda.maxReplicas }}
|
||||||
|
triggers:
|
||||||
|
{{- with .Values.controller.keda.triggers }}
|
||||||
|
{{ toYaml . | indent 2 }}
|
||||||
|
{{ end }}
|
||||||
|
advanced:
|
||||||
|
restoreToOriginalReplicaCount: {{ .Values.controller.keda.restoreToOriginalReplicaCount }}
|
||||||
|
{{- if .Values.controller.keda.behavior }}
|
||||||
|
horizontalPodAutoscalerConfig:
|
||||||
|
behavior:
|
||||||
|
{{ with .Values.controller.keda.behavior -}}
|
||||||
|
{{ toYaml . | indent 8 }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
|
@ -273,6 +273,7 @@ controller:
|
||||||
cpu: 100m
|
cpu: 100m
|
||||||
memory: 90Mi
|
memory: 90Mi
|
||||||
|
|
||||||
|
# Mutually exclusive with keda autoscaling
|
||||||
autoscaling:
|
autoscaling:
|
||||||
enabled: false
|
enabled: false
|
||||||
minReplicas: 1
|
minReplicas: 1
|
||||||
|
@ -291,6 +292,40 @@ controller:
|
||||||
# type: AverageValue
|
# type: AverageValue
|
||||||
# averageValue: 10000m
|
# averageValue: 10000m
|
||||||
|
|
||||||
|
# Mutually exclusive with hpa autoscaling
|
||||||
|
keda:
|
||||||
|
apiVersion: "keda.sh/v1alpha1"
|
||||||
|
# apiVersion changes with keda 1.x vs 2.x
|
||||||
|
# 2.x = keda.sh/v1alpha1
|
||||||
|
# 1.x = keda.k8s.io/v1alpha1
|
||||||
|
enabled: false
|
||||||
|
minReplicas: 1
|
||||||
|
maxReplicas: 11
|
||||||
|
pollingInterval: 30
|
||||||
|
cooldownPeriod: 300
|
||||||
|
restoreToOriginalReplicaCount: false
|
||||||
|
triggers: []
|
||||||
|
# - type: prometheus
|
||||||
|
# metadata:
|
||||||
|
# serverAddress: http://<prometheus-host>:9090
|
||||||
|
# metricName: http_requests_total
|
||||||
|
# threshold: '100'
|
||||||
|
# query: sum(rate(http_requests_total{deployment="my-deployment"}[2m]))
|
||||||
|
|
||||||
|
behavior: {}
|
||||||
|
# scaleDown:
|
||||||
|
# stabilizationWindowSeconds: 300
|
||||||
|
# policies:
|
||||||
|
# - type: Pods
|
||||||
|
# value: 1
|
||||||
|
# periodSeconds: 180
|
||||||
|
# scaleUp:
|
||||||
|
# stabilizationWindowSeconds: 300
|
||||||
|
# policies:
|
||||||
|
# - type: Pods
|
||||||
|
# value: 2
|
||||||
|
# periodSeconds: 60
|
||||||
|
|
||||||
## Enable mimalloc as a drop-in replacement for malloc.
|
## Enable mimalloc as a drop-in replacement for malloc.
|
||||||
## ref: https://github.com/microsoft/mimalloc
|
## ref: https://github.com/microsoft/mimalloc
|
||||||
##
|
##
|
||||||
|
|
Loading…
Reference in a new issue