From 84213401bec4d214d84ebef67342d519d91007ca Mon Sep 17 00:00:00 2001 From: Mostafa Kamal Date: Sat, 30 Nov 2024 22:33:38 +0600 Subject: [PATCH] keda example specific day --- READEME.md | 6 +++++ scale-specific-day-time/READEME.md | 16 ++++++++++++++ .../manifest/deployment.yaml | 22 +++++++++++++++++++ .../manifest/namespace.yml | 4 ++++ .../manifest/nginx-scaler.yaml | 19 ++++++++++++++++ scale-specific-day-time/run.sh | 3 +++ 6 files changed, 70 insertions(+) create mode 100644 READEME.md create mode 100644 scale-specific-day-time/READEME.md create mode 100644 scale-specific-day-time/manifest/deployment.yaml create mode 100644 scale-specific-day-time/manifest/namespace.yml create mode 100644 scale-specific-day-time/manifest/nginx-scaler.yaml create mode 100755 scale-specific-day-time/run.sh diff --git a/READEME.md b/READEME.md new file mode 100644 index 0000000..07e4331 --- /dev/null +++ b/READEME.md @@ -0,0 +1,6 @@ +# install keda +```bash +helm repo add kedacore https://kedacore.github.io/charts +helm repo update +helm install keda kedacore/keda --namespace keda --create-namespace +``` \ No newline at end of file diff --git a/scale-specific-day-time/READEME.md b/scale-specific-day-time/READEME.md new file mode 100644 index 0000000..d4c02b3 --- /dev/null +++ b/scale-specific-day-time/READEME.md @@ -0,0 +1,16 @@ +# apply manifest +```bash +kubectl apply -f manifest/namespace.yml +kubectl apply -f manifest/deployment.yaml +kubectl apply -f manifest/nginx-scaler.yaml +# or run script +./run.sh +``` + +# check keda +```bash +kubectl get scaledobjects -n backend-project +kubectl get pods -n backend-project -w +``` + + diff --git a/scale-specific-day-time/manifest/deployment.yaml b/scale-specific-day-time/manifest/deployment.yaml new file mode 100644 index 0000000..ad96e5c --- /dev/null +++ b/scale-specific-day-time/manifest/deployment.yaml @@ -0,0 +1,22 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-app + namespace: backend-project + labels: + app: nginx +spec: + replicas: 2 + selector: + matchLabels: + app: nginx + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx:latest + ports: + - containerPort: 80 \ No newline at end of file diff --git a/scale-specific-day-time/manifest/namespace.yml b/scale-specific-day-time/manifest/namespace.yml new file mode 100644 index 0000000..1701c03 --- /dev/null +++ b/scale-specific-day-time/manifest/namespace.yml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: backend-project diff --git a/scale-specific-day-time/manifest/nginx-scaler.yaml b/scale-specific-day-time/manifest/nginx-scaler.yaml new file mode 100644 index 0000000..4ebe8bb --- /dev/null +++ b/scale-specific-day-time/manifest/nginx-scaler.yaml @@ -0,0 +1,19 @@ +apiVersion: keda.sh/v1alpha1 +kind: ScaledObject +metadata: + name: nginx-scaler + namespace: backend-project +spec: + scaleTargetRef: + name: nginx-app + minReplicaCount: 2 + maxReplicaCount: 10 + pollingInterval: 15 + cooldownPeriod: 10 + triggers: + - type: cron + metadata: + timezone: "Asia/Dhaka" + start: "40 22 * * 6" # 10:40 PM || Saturday + end: "45 22 * * 6" # 10:45 PM || Saturday + desiredReplicas: "8" diff --git a/scale-specific-day-time/run.sh b/scale-specific-day-time/run.sh new file mode 100755 index 0000000..6dd3ef5 --- /dev/null +++ b/scale-specific-day-time/run.sh @@ -0,0 +1,3 @@ +kubectl apply -f manifest/namespace.yml +kubectl apply -f manifest/deployment.yaml +kubectl apply -f manifest/nginx-scaler.yaml \ No newline at end of file