https://github.com/jhandguy/vertical-pod-autoscaler
A sample project showcasing the implementation of Vertical Pod Autoscaler.
https://github.com/jhandguy/vertical-pod-autoscaler
helm ingress-nginx k6 kind kubernetes metrics-server vertical-pod-autoscaler
Last synced: 2 months ago
JSON representation
A sample project showcasing the implementation of Vertical Pod Autoscaler.
- Host: GitHub
- URL: https://github.com/jhandguy/vertical-pod-autoscaler
- Owner: jhandguy
- License: mit
- Created: 2022-08-20T17:09:51.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-12-03T17:18:56.000Z (over 2 years ago)
- Last Synced: 2025-01-20T05:43:03.315Z (over 1 year ago)
- Topics: helm, ingress-nginx, k6, kind, kubernetes, metrics-server, vertical-pod-autoscaler
- Language: Go
- Homepage:
- Size: 24.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Vertical Pod Autoscaler
A sample project showcasing the implementation of Vertical Pod Autoscaler.
## Blog Post
- [Vertical Pod Autoscaler in Kubernetes](https://jhandguy.github.io/posts/vertical-pod-autoscaler/)
## Installing
### Autoscaling without Pod Disruption Budget
```shell
kind create cluster --image kindest/node:v1.27.3 --config=kind/cluster.yaml
helm repo add jetstack https://charts.jetstack.io
helm install jetstack/cert-manager --name-template cert-manager --create-namespace -n cert-manager --values kind/cert-manager-values.yaml --version 1.13.2 --wait
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm install ingress-nginx/ingress-nginx --name-template ingress-nginx --create-namespace -n ingress-nginx --values kind/ingress-nginx-values.yaml --version 4.8.3 --wait
helm repo add metrics-server https://kubernetes-sigs.github.io/metrics-server
helm install metrics-server/metrics-server --name-template metrics-server --create-namespace -n metrics-server --values kind/metrics-server-values.yaml --version 3.11.0 --wait
helm install helm-chart --name-template vertical-pod-autoscaler --create-namespace -n vertical-pod-autoscaler --wait
helm install sample-app/helm-chart --name-template sample-app --create-namespace -n sample-app --wait
```
### Autoscaling with Pod Disruption Budget
```shell
kind create cluster --image kindest/node:v1.27.3 --config=kind/cluster.yaml
helm repo add jetstack https://charts.jetstack.io
helm install jetstack/cert-manager --name-template cert-manager --create-namespace -n cert-manager --values kind/cert-manager-values.yaml --version 1.13.2 --wait
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm install ingress-nginx/ingress-nginx --name-template ingress-nginx --create-namespace -n ingress-nginx --values kind/ingress-nginx-values.yaml --version 4.8.3 --wait
helm repo add metrics-server https://kubernetes-sigs.github.io/metrics-server
helm install metrics-server/metrics-server --name-template metrics-server --create-namespace -n metrics-server --values kind/metrics-server-values.yaml --version 3.11.0 --wait
helm install helm-chart --name-template vertical-pod-autoscaler --create-namespace -n vertical-pod-autoscaler --wait
helm install sample-app/helm-chart --name-template sample-app --set podDisruptionBudget.enabled=true --create-namespace -n sample-app --wait
```
## Smoke Testing
```shell
curl localhost/success -H "Host: sample.app" -v
curl localhost/error -H "Host: sample.app" -v
```
## Load Testing
```shell
k6 run k6/script.js
```
## Uninstalling
```shell
kind delete cluster
```