helm repo add kedacore <https://kedacore.github.io/charts>
helm repo update
kubectl create namespace keda
helm install keda kedacore/keda --namespace keda
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: php-apache-cron-scaled
spec:
  minReplicaCount: 0
  maxReplicaCount: 2
  pollingInterval: 30
  cooldownPeriod: 300
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: php-apache
  triggers:
    - type: cron
      metadata:
        timezone: Asia/Seoul
        start: 00,15,30,45 * * * * # 매 시간 정각 15분, 30분.. 실행
        end: 05,20,35,50 * * * * # 매 시간 5분, 20분... 종료
        desiredReplicas: "1"
kubectl apply -f scaledobject.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: php-apache
spec:
  selector:
    matchLabels:
      run: php-apache
  template:
    metadata:
      labels:
        run: php-apache
    spec:
      containers:
        - name: php-apache
          image: registry.k8s.io/hpa-example
          ports:
            - containerPort: 80
          resources:
            limits:
              cpu: 500m
            requests:
              cpu: 200m
---
apiVersion: v1
kind: Service
metadata:
  name: php-apache
  labels:
    run: php-apache
spec:
  ports:
    - port: 80
  selector:
    run: php-apache
kubectl apply -f deployment.yaml