Difference between revisions of "Karpenter"
Jump to navigation
Jump to search
↑ https://aws.amazon.com/blogs/aws/introducing-karpenter-an-open-source-high-performance-kubernetes-cluster-autoscaler/
(57 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | Karpenter (Nov 2021) <ref>https://aws.amazon.com/blogs/aws/introducing-karpenter-an-open-source-high-performance-kubernetes-cluster-autoscaler/</ref> Kubernetes cluster [[autoscaling]] | + | [[wikipedia:Karpenter]] (Nov [[2021]]) <ref>https://aws.amazon.com/blogs/aws/introducing-karpenter-an-open-source-high-performance-kubernetes-cluster-autoscaler/</ref> Kubernetes cluster [[autoscaling]]. |
* https://karpenter.sh/ | * https://karpenter.sh/ | ||
+ | * https://docs.aws.amazon.com/eks/latest/userguide/autoscaling.html#karpenter | ||
+ | |||
+ | * <code>[[controller.]]</code> | ||
+ | |||
+ | * <code>[[karpenter.sh]]</code> | ||
+ | |||
* [[Karpenter releases|Releases]]: https://github.com/aws/karpenter/releases | * [[Karpenter releases|Releases]]: https://github.com/aws/karpenter/releases | ||
[[helm repo add karpenter https://charts.karpenter.sh/]] | [[helm repo add karpenter https://charts.karpenter.sh/]] | ||
[[helm repo update]] | [[helm repo update]] | ||
+ | [[helm install karpenter]] | ||
− | [[ | + | [[kind: NodePool]] |
− | + | [[kind: EC2NodeClass]] | |
− | + | [[kind: AWSNodeTemplate]] | |
− | |||
− | |||
− | |||
− | |||
* <code>[[kubectl get provisioner]]</code> | * <code>[[kubectl get provisioner]]</code> | ||
* <code>[[kubectl describe provisioner]]</code> | * <code>[[kubectl describe provisioner]]</code> | ||
+ | * <code>[[kind: Provisioner]]</code> | ||
+ | * <code>[[kubectl get all -n karpenter]]</code> | ||
== Logs == | == Logs == | ||
− | * <code>[[Relaxing soft constrains]] ...</code> | + | * <code>[[controller.provisioning]] [[Relaxing soft constrains]] ...</code> |
+ | * <code>[[controller.node]] [[Triggering termination for expired node after]] 168h0m0s .../...</code> | ||
− | == News == | + | * <code>[[kubectl logs -f -n karpenter -l app.kubernetes.io/name=karpenter -c controller]]</code> |
− | * Apr 2022 [[Pod Affinity]] https://aws.amazon.com/about-aws/whats-new/2022/04/amazon-eks-karpenter-v0-9-0-pod-affinity/ | + | |
− | * Nov 2021 https://aws.amazon.com/about-aws/whats-new/2021/11/aws-karpenter-v0-5 | + | * <code>[[kubectl patch configmap config-logging]] -n karpenter --patch '{"data":{"loglevel.controller":"debug"}}'</code> |
− | + | ||
+ | * <code>[[stern -n karpenter -l app.kubernetes.io/name=karpenter]]</code> | ||
+ | |||
+ | == Events == | ||
+ | * <code>[[InstanceTerminating]]</code> | ||
+ | |||
+ | == [[Karpenter changelog|News]] == | ||
+ | * Aug 2022 v0.15.0 [[Workload Consolidation]] for Karpenter https://aws.amazon.com/about-aws/whats-new/2022/08/workload-consolidation-karpenter/ | ||
+ | * Apr 2022 v0.9.0 with [[Pod Affinity]] https://aws.amazon.com/about-aws/whats-new/2022/04/amazon-eks-karpenter-v0-9-0-pod-affinity/ | ||
+ | * Nov 2021 AWS Karpenter v0.5 https://aws.amazon.com/about-aws/whats-new/2021/11/aws-karpenter-v0-5/ | ||
== Activities == | == Activities == | ||
* Read htps://karpenter.sh/preview/troubleshooting/ | * Read htps://karpenter.sh/preview/troubleshooting/ | ||
− | * Read about Kubernetes scheduler and [[Karpenter]] https://github.com/aws/karpenter/issues/1528 | + | * Read about [[Kubernetes scheduler]] and [[Karpenter]] https://github.com/aws/karpenter/issues/1528 |
+ | * Read [[Karpenter best practices]]: https://aws.github.io/aws-eks-best-practices/karpenter/ | ||
+ | * Read https://aws.amazon.com/blogs/containers/managing-pod-scheduling-constraints-and-groupless-node-upgrades-with-karpenter-in-amazon-eks/ | ||
== Related == | == Related == | ||
* [[Amazon EC2 Instance types]]: | * [[Amazon EC2 Instance types]]: | ||
+ | * [[AWS Auto Scaling Groups (ASG)]] | ||
* [[Kubernetes Autoscaler]] | * [[Kubernetes Autoscaler]] | ||
* [[Escalator]] | * [[Escalator]] | ||
Line 37: | Line 55: | ||
* <code>[[KarpenterNode]]</code> [[IAM Role]] | * <code>[[KarpenterNode]]</code> [[IAM Role]] | ||
* https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest/examples/karpenter | * https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest/examples/karpenter | ||
− | * <code>[[karpenter.sh/capacity-type]]</code> | + | * <code>[[karpenter.sh]]: [[karpenter.sh/capacity-type]]</code> |
* <code>[[kubectl logs -f]] -n karpenter $([[kubectl get pods]] -n karpenter -l [[karpenter=controller]] -o name)</code> | * <code>[[kubectl logs -f]] -n karpenter $([[kubectl get pods]] -n karpenter -l [[karpenter=controller]] -o name)</code> | ||
− | |||
* [[Kubernetes PodDisruptionBudget (PDB)]] | * [[Kubernetes PodDisruptionBudget (PDB)]] | ||
* <code>[[kubectl get all -n karpenter]]</code> | * <code>[[kubectl get all -n karpenter]]</code> | ||
* <code>[[TopologyKey:]]</code> | * <code>[[TopologyKey:]]</code> | ||
* [[Kubernetes scheduler]] | * [[Kubernetes scheduler]] | ||
− | *[[Kubernetes Pod Topology Spread Constraints]] | + | * [[Kubernetes Pod Topology Spread Constraints]] |
+ | * [[Kubernetes pod affinity and anti affinity]] | ||
+ | * <code>[[Evict]]</code> | ||
+ | * <code>[[karpenter.sh/do-not-evict: true]]</code> | ||
+ | * [[Kubernetes provisioner]] | ||
+ | * [[IAM OIDC]] provider | ||
+ | * [[Kubernetes controllers]] | ||
+ | * [[Amazon EC2 Auto Scaling]] | ||
+ | * <code>[[kubectl get events]]</code>: <code>[[FailedScheduling]]</code> | ||
+ | * [[Cilium]] | ||
+ | |||
+ | * [[Kubernetes Event-Driven Autoscaling (KEDA)]] | ||
+ | * [[Amazon EKS to run Kubernetes Pods on AWS Fargate]] | ||
+ | * [[AKS Node autoprovisioning]] | ||
+ | * [[GKE node auto-provisioning]] | ||
== See also == | == See also == | ||
− | * {{ | + | * {{karpenter.sh}} |
+ | * {{kubectl provisioner}} | ||
* {{Karpenter}} | * {{Karpenter}} | ||
* {{Kubernetes autoscaling}} | * {{Kubernetes autoscaling}} | ||
[[Category:AWS]] | [[Category:AWS]] |
Latest revision as of 07:24, 3 October 2024
wikipedia:Karpenter (Nov 2021) [1] Kubernetes cluster autoscaling.
helm repo add karpenter https://charts.karpenter.sh/ helm repo update helm install karpenter
kind: NodePool kind: EC2NodeClass kind: AWSNodeTemplate
Contents
Logs[edit]
controller.provisioning Relaxing soft constrains ...
controller.node Triggering termination for expired node after 168h0m0s .../...
kubectl patch configmap config-logging -n karpenter --patch '{"data":{"loglevel.controller":"debug"}}'
Events[edit]
News[edit]
- Aug 2022 v0.15.0 Workload Consolidation for Karpenter https://aws.amazon.com/about-aws/whats-new/2022/08/workload-consolidation-karpenter/
- Apr 2022 v0.9.0 with Pod Affinity https://aws.amazon.com/about-aws/whats-new/2022/04/amazon-eks-karpenter-v0-9-0-pod-affinity/
- Nov 2021 AWS Karpenter v0.5 https://aws.amazon.com/about-aws/whats-new/2021/11/aws-karpenter-v0-5/
Activities[edit]
- Read htps://karpenter.sh/preview/troubleshooting/
- Read about Kubernetes scheduler and Karpenter https://github.com/aws/karpenter/issues/1528
- Read Karpenter best practices: https://aws.github.io/aws-eks-best-practices/karpenter/
- Read https://aws.amazon.com/blogs/containers/managing-pod-scheduling-constraints-and-groupless-node-upgrades-with-karpenter-in-amazon-eks/
Related[edit]
- Amazon EC2 Instance types:
- AWS Auto Scaling Groups (ASG)
- Kubernetes Autoscaler
- Escalator
- EKS Best Practices Guides https://aws.github.io/aws-eks-best-practices/karpenter/
KarpenterNode
IAM Role- https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest/examples/karpenter
karpenter.sh: karpenter.sh/capacity-type
kubectl logs -f -n karpenter $(kubectl get pods -n karpenter -l karpenter=controller -o name)
- Kubernetes PodDisruptionBudget (PDB)
kubectl get all -n karpenter
TopologyKey:
- Kubernetes scheduler
- Kubernetes Pod Topology Spread Constraints
- Kubernetes pod affinity and anti affinity
Evict
karpenter.sh/do-not-evict: true
- Kubernetes provisioner
- IAM OIDC provider
- Kubernetes controllers
- Amazon EC2 Auto Scaling
kubectl get events
:FailedScheduling
- Cilium
- Kubernetes Event-Driven Autoscaling (KEDA)
- Amazon EKS to run Kubernetes Pods on AWS Fargate
- AKS Node autoprovisioning
- GKE node auto-provisioning
See also[edit]
karpenter.sh [ /capacity-type | /discovery | /arch | /provisioner-name | /do-not-evict | /do-not-consolidate | /termination | /discovery ]
, provisioners.karpenter.shkubeclt [ get | describe | patch ] provisioner
- Karpenter,
karpenter.sh, provisioners.karpenter.sh
, Karpenter releases, best practices,karpenter.sh/capacity-type, karpenter.sh/discovery
,kind: Provisioner, kind: AWSNodeTemplate
,kubectl provisioner
,TopologyKey, FailedDraining, Evict, DisruptionBlocked
, Karpenter logs,controller., ttlSecondsUntilExpired
, KEDA, NodePools, Kind: NodePool, Workload Consolidation, Disruption controls - Kubernetes autoscaling, HPA, VPA, Karpenter, Kubernetes Autoscaler,
kubectl autoscale
, Kubernetes Metrics Server (KMS)
Advertising: