terraform
manifest
kubectl apply -f manifest/.
helm repo add kedacore <https://kedacore.github.io/charts>
helm repo update
helm install keda kedacore/keda --namespace keda --create-namespace
# lb-request.yaml
apiVersion: v1
kind: Secret
metadata:
name: test-secrets
data:
AWS_ACCESS_KEY_ID: QUtJQTUyUUdJTExQWE1GWlVORVU=
AWS_SECRET_ACCESS_KEY: VllhSGo3bXF4Q0F5Myt3OU45SnVoNWR5bnVFZ3lFeWFKM1k5RVZuTw== # Required.
---
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
name: keda-trigger-auth-aws-credentials
spec:
secretTargetRef:
- parameter: awsAccessKeyID # Required.
name: test-secrets # Required.
key: AWS_ACCESS_KEY_ID # Required.
- parameter: awsSecretAccessKey # Required.
name: test-secrets # Required.
key: AWS_SECRET_ACCESS_KEY # Required.
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: flask-scaled
spec:
scaleTargetRef:
name: flask-deploy
minReplicaCount: 2
maxReplicaCount: 10
triggers:
- type: aws-cloudwatch
metadata:
namespace: AWS/ApplicationELB
expression: SELECT SUM(RequestCount) FROM SCHEMA("AWS/ApplicationELB", LoadBalancer,TargetGroup) WHERE LoadBalancer = 'app/k8s-default-flasking-3031211bb2/e2176e786cd9b242'
metricName: RequestCount
targetMetricValue: '100'
minMetricValue: '0'
awsRegion: "ap-northeast-2"
identityOwner: pod
metricCollectionTime: '60'
metricStat: Sum
metricStatPeriod: '60'
metricUnit: Count
authenticationRef:
name: keda-trigger-auth-aws-credentials
kubectl apply -f lb-request.yaml