-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #33 from ksctl/dev
SYNC: move the latest dev to prod
- Loading branch information
Showing
8 changed files
with
119 additions
and
2 deletions.
There are no files selected for viewing
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1 @@ | ||
* @dipankardas011 | ||
* @Horiodino | ||
* @dipankardas011 @Horiodino |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
--- | ||
title: Our Findings | ||
weight: 20 | ||
--- | ||
|
||
{{% pageinfo %}} | ||
Ksctl documentation | ||
{{% /pageinfo %}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
--- | ||
title: About K8s Cluster Autoscaling | ||
date: 2024-01-23 | ||
description: > | ||
Our Findings on how does the K8s Cluster Autoscaling works. | ||
--- | ||
|
||
|
||
## Pod Auto-scaler | ||
|
||
[https://cloud.google.com/kubernetes-engine/docs/concepts/horizontalpodautoscaler](https://cloud.google.com/kubernetes-engine/docs/concepts/horizontalpodautoscaler) | ||
[https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale) | ||
|
||
## Cluster Auto-Scaler | ||
|
||
This blog might help [The Guide To Kubernetes Cluster Autoscaler by Example](https://www.kubecost.com/kubernetes-autoscaling/kubernetes-cluster-autoscaler/) | ||
|
||
* Information from slack channel (*Kubernetes* **\#karpenter**, **\#auto-scaler**) | ||
* How does **Karpenter** do it? | ||
* Karpenter scales using pending pod pressure. | ||
* There are two primary controllers for scale up and scale down | ||
* Provisioning\_trigger controller, which will create the nodeclaims or initialize a scale request.[https://github.com/kubernetes-sigs/karpenter/blob/main/pkg/controllers/provisioning/controller.go\#L58](https://github.com/kubernetes-sigs/karpenter/blob/main/pkg/controllers/provisioning/controller.go#L58) , The provisioning trigger controller watches for pending pods, and in response to those pending pods it checks if it can schedule them on the existing nodes, if not, karpenter will solve scheduling by creating addtional nodeclaims. We have another set of controllers called the node lifecycle controllers that watch for these nodeclaims, and will launch vms for a given nodeclaim. | ||
* Disruption Controller, which will tell karpenter to scale down the nodes. For scale down, we poll the cluster every 10 seconds via the disruption controller. [https://github.com/kubernetes-sigs/karpenter/blob/main/pkg/controllers/disruption/controller.go\#L126](https://github.com/kubernetes-sigs/karpenter/blob/main/pkg/controllers/disruption/controller.go#L126) We will iterate through all of our disruption methods and see if we can initiate some disruption action based on various factors. | ||
* How **Cluster-auto-scaler** does it? | ||
* for scale up, the CAS looks for pending pods. for scale down, it looks for under-utilized nodes (as calculated by resource usage). | ||
* Note that resource usage is sum(resource\_requests) / node\_allocatable | ||
* It has nothing to do with "real" utilization | ||
* Basically CA's job is to make all the pods able to schedule using as few nodes as possible, all it looks at is scheduling | ||
* You can use HPA/VPA to update pods based on actual resource usage and that will in turn trigger CA to add/remove nodes | ||
* Also found a **paper on CO\_2 efficient karpenter** | ||
* Andreasen, J. V. (2024). Carbon Efficient Karpenter: Optimizing Kubernetes Cluster Autoscaling for Carbon Efficiency \[Computer software\]. [https://github.com/JacobValdemar/carbon-efficient-karpenter-thesis](https://github.com/JacobValdemar/carbon-efficient-karpenter-thesis) | ||
|
||
|
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,10 @@ | ||
github.com/FortAwesome/Font-Awesome v0.0.0-20230327165841-0698449d50f2/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= | ||
github.com/FortAwesome/Font-Awesome v0.0.0-20240716171331-37eff7fa00de h1:JvHOfdSqvArF+7cffH9oWU8oLhn6YFYI60Pms8M/6tI= | ||
github.com/FortAwesome/Font-Awesome v0.0.0-20240716171331-37eff7fa00de/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= | ||
github.com/google/docsy v0.11.0 h1:QnV40cc28QwS++kP9qINtrIv4hlASruhC/K3FqkHAmM= | ||
github.com/google/docsy v0.11.0/go.mod h1:hGGW0OjNuG5ZbH5JRtALY3yvN8ybbEP/v2iaK4bwOUI= | ||
github.com/google/docsy/dependencies v0.7.2 h1:+t5ufoADQAj4XneFphz4A+UU0ICAxmNaRHVWtMYXPSI= | ||
github.com/google/docsy/dependencies v0.7.2/go.mod h1:gihhs5gmgeO+wuoay4FwOzob+jYJVyQbNaQOh788lD4= | ||
github.com/twbs/bootstrap v5.2.3+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= | ||
github.com/twbs/bootstrap v5.3.3+incompatible h1:goFoqinzdHfkeegpFP7pvhbd0g+A3O2hbU3XCjuNrEQ= | ||
github.com/twbs/bootstrap v5.3.3+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.