(archived) KEDA를 이용한 Auto Scaling
apiVersion: v1
kind: Secret
metadata:
name: "secret-{{ include "test.name" . }}-keda"
namespace: {{ $.Values.env }}
type: Opaque
data:
conn_info: |
{{- $rdb_user := "user" -}}
{{- $rdb_password := "password" -}}
{{- $rdb_host := "localhost" -}}
{{- $rdb_port := "3306" -}}
{{- $rdb_db_name := "test" -}}
{{- if ne .Values.env "dev-1" }}
{{- $rdb_db_name = printf "%s%s" $rdb_db_name (.Values.env_num | toString) -}}
{{- end }}
{{ printf "%s:%s@tcp(%s:%s)/%s"
$rdb_user
$rdb_password
$rdb_host
$rdb_port
$rdb_db_name
| b64enc }}
---
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
name: "triggerauth-{{ include "test.name" . }}-keda"
namespace: {{ $.Values.env }}
spec:
secretTargetRef:
- parameter: connectionString
name: "secret-{{ include "test.name" . }}-keda"
key: conn_info
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: "scaledobject-{{ include "test.name" . }}-keda"
namespace: {{ $.Values.env }}
spec:
scaleTargetRef:
kind: StatefulSet
name: {{ include "test.name" . }}
minReplicaCount: 2
maxReplicaCount: 10
advanced:
horizontalPodAutoscalerConfig:
behavior:
scaleDown:
selectPolicy: Disabled
triggers:
- type: mysql
metadata:
queryValue: "1"
query: "SELECT CASE WHEN SUM(player) <= 50 THEN 1 ELSE CEIL(SUM(player)/100) FROM table WHERE type = 4"
authenticationRef:
name: "triggerauth-{{ include "test.name" . }}-keda"
- type: cron
metadata:
timezone: Asia/Seoul
start: "0 0 * * *"
end: "2 0 * * *"
desiredReplicas: "2"
Last updated