Kubernetes Autoscaling with Karpenter

DevOps and Docker Talk

Episode | Podcast

Date: Fri, 12 Aug 2022 09:30:00 -0400

<p>Bret is joined by Nirmal Mehta, a Principal Specialist Solution Architect at AWS, and a Docker Captain, to discuss Karpenter, an autoscaling solution launched by AWS in 2021. Karpenter simplifies Kubernetes infrastructure by automating node scaling up and down, giving you "the right nodes at the right time."</p><p>Autoscaling, particularly for Kubernetes, can be quite a complex project when you first start. Bret and Nirmal discuss how Karpenter works, how it can help or complement your existing setup, and how autoscaling generally works.</p><p>Streamed live on YouTube on June 9, 2022.</p><p><br /><strong>Unedited </strong><a href="https://www.youtube.com/watch?v=n45qPlYk7ps"><strong>live recording</strong></a><strong> of this show on YouTube (Ep #173). Includes demos.</strong></p><p><br /><strong>★Topics★</strong><br /><a href="https://starship.rs/">Starship Shell Prompt</a><br /><a href="https://www.bretfisher.com/shell/">Bret's favorite shell setup</a><br /><a href="https://karpenter.sh/">Karpenter</a><br /><a href="https://aws.amazon.com/blogs/aws/introducing-karpenter-an-open-source-high-performance-kubernetes-cluster-autoscaler/">Karpenter release blog</a><br /><a href="https://kubernetes.io/docs/concepts/scheduling-eviction/">K8s Scheduling Concepts</a></p><p>Other types of autoscalers:<br /><a href="https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/">Horizontal Pod Autoscaler</a><br /><a href="https://github.com/kubernetes/autoscaler">Vertical Pod Autoscaler</a><br /><a href="https://github.com/kubernetes/autoscaler">Cluster Autoscaler</a></p><p><br /><strong>★Nirmal Mehta★</strong><br /><a href="https://twitter.com/normalfaults">Nirmal on Twitter</a><br /><a href="https://www.linkedin.com/in/nirmalkmehta/">Nirmal on LinkedIn</a></p><p><br /><strong>★Join my Community★</strong><br />Best coupons for my <a href="https://www.bretfisher.com/courses"><strong>Docker and Kubernetes courses</strong></a></p><p>Chat with us on our Discord Server <a href="https://discord.com/invite/rnNf8jhKcx"><strong>Vital DevOps</strong></a></p><p>Homepage <a href="https://bretfisher.com/"><strong>bretfisher.com</strong></a></p> <ul> <li>(00:00) - DDT MAIN</li> <li>(00:04) - Intro</li> <li>(00:51) - Custom intro</li> <li>(02:08) - Main Show</li> <li>(02:12) - Introductions</li> <li>(03:12) - Nirmal's Jobs</li> <li>(03:58) - Talking about Kubernetes cluster scaling</li> <li>(05:04) - Who are we addressing?</li> <li>(06:29) - What is Karpenter not addressing?</li> <li>(06:52) - Auto-scaling at pod level</li> <li>(07:40) - Cluster auto-scaling</li> <li>(09:07) - Karpenter is alternate to cluser autoscaler</li> <li>(09:21) - Question</li> <li>(10:11) - Issues Karpenter was created to address</li> <li>(12:29) - What is Karpenter?</li> <li>(13:51) - Selective instance type provisioning</li> <li>(14:47) - Matching deployment definition to instance types</li> <li>(16:08) - Question: Is Karpenter designed only for AWS?</li> <li>(17:13) - Question: Can you auto-scale control plane nodes?</li> <li>(19:21) - The Kubernetes Scheduler</li> <li>(23:14) - Question: Does Karpenter auto-scale down?</li> <li>(25:05) - Question: EKS with Karpenter spot instances</li> <li>(25:58) - Question: Karpenter and AWS auto-scaling groups</li> <li>(26:10) - Question: Installation and provisioning</li> <li>(27:20) - Only affects unschedulable pods</li> <li>(28:49) - Demo intro</li> <li>(29:14) - Demo</li> <li>(29:19) - Scaling Down</li> <li>(30:27) - Keeping your nodes fresh</li> <li>(32:54) - If you want to learn more</li> <li>(33:23) - Goals for 2022</li> <li>(34:15) - Questions</li> <li>(34:21) - Question: Cost-effective instances</li> <li>(35:35) - Question: Instances to IoC and automatically destroyed?</li> <li>(38:25) - Question: Features being pushed upstream into Kubernetes</li> <li>(40:28) - Question: Rebalancing</li> <li>(44:28) - Scaling down is hard too</li> <li>(46:18) - Question: Horizontal pod auto-scaler trigger Karpenter</li> <li>(47:25) - Question: Specs and Documentation</li> <li>(48:01) - Question: How does it pick instance sizes?</li> <li>(48:55) - Question: Karpenter respects desire to spread workloads</li> <li>(49:29) - Question: EKSAnywhere support</li> <li>(49:50) - Question: How do you pick AMIs?</li> <li>(50:37) - Winding down</li> <li>(52:25) - Wrapping up</li> <li>(52:30) - Outro</li> </ul> <br /><p><strong>Support this show and get exclusive benefits on </strong><a href="https://patreon.com/BretFisher"><strong>Patreon</strong></a><strong>, </strong><a href="https://www.youtube.com/@BretFisher"><strong>YouTube</strong></a><strong>, or </strong><a href="https://www.bretfisher.com/"><strong>bretfisher.com</strong></a><strong>!</strong></p>