Kubernetes pod autoscaling for beginners
HTML-код
- Опубликовано: 21 окт 2024
- Subscribe to show your support! goo.gl/1Ty1Q2 .
Patreon 👉🏽 / marceldempers
In this episode, were taking a look at how to scale pods on Kubernetes based on CPU or Memory usage. This feature in Kubernetes is called the Horizontal Pod autoscaler.
Before scaling its important to understand your resource usage for the service you wish to scale.
We take a look at resource requests and limits and how they play a key role in autoscaling.
Checkout the source code below 👇🏽 and follow along 🤓
Also if you want to support the channel further, become a member 😎
marceldempers....
Checkout "That DevOps Community" too
marceldempers....
Source Code 🧐
--------------------------------------------------------------
github.com/mar...
If you are new to Kubernetes, check out my getting started playlist on Kubernetes below :)
Kubernetes Guide for Beginners:
---------------------------------------------------
• Kubernetes development...
Kubernetes Monitoring Guide:
-----------------------------------------------
• Kubernetes Monitoring ...
Kubernetes Secret Management Guide:
--------------------------------------------------------------
• Kubernetes Secret Mana...
Like and Subscribe for more :)
Follow me on socials!
marceldempers.dev
Twitter | / marceldempers
GitHub | github.com/mar...
Facebook | thatdevop...
LinkedIn | / marceldempers
Instagram | / thatdevopsguy
Music:
Track: Amine Maxwell - Cafe Cubano | is licensed under a Creative Commons Attribution licence (creativecommon...)
Listen: / cafe-cubano
Track: Fox Beat 2 - Jeff Kalee - Pillow Talk - Royalty Free Vlog Music [BUY=FREE] | is licensed under a Creative Commons Attribution licence (creativecommon...)
Listen: / jeff-kalee-pillow-talk...
Track: Joakim Karud - That Day | is licensed under a Creative Commons Attribution licence (creativecommon...)
Listen: / that-day
Track: souKo - souKo - Parallel | is licensed under a Creative Commons Attribution licence (creativecommon...)
Listen: / parallel
In this episode we learn how to scale pods with the horizontal pod autoscaler.
To scale your cluster nodes, checkout the Cluster Autoscaler 👉🏽 ruclips.net/video/jM36M39MA3I/видео.html
the best video I ever watched on the internet explaining HPA
I read many articles on many sites and watch many videos to understand pod autoscaler, but all this time, I just needed to watch this video. Thank you.
Great content as usual, and the production quality is constantly getting better too! Awesome
Nice discover I like the way you explaining dude thanks for effort.I subscribe and will let other people know you
Such a well-done video! Can't believe you haven't gone huge yet. I don't usually comment on RUclips but I felt compelled this time. Looking forward to going through more of your library of content as I get more into Kubernetes and DevOps in general.
Not having to provision infrastructure is awesome, thank you for the great video.
Such great work deserves like and comment))
Again, great content delivered in an easy way and also essy to reproduce. Thanks!
Thank you so much for making this concept easy to understand. Actually, I was also struggling setting the values of cpu requests and limits in the deployment, because in my Kubernetes even when the replicas increase, it starts running all pods with same load and didn't distribute evenly among the pods to make it come down and I have faced bad behaviour of scaling in my cluster. I have no clue what is happening
Absolutely useful video, you saved my job 🤣 thanks a ton mate!
Good lecture. Good presentation. Interesting fast and to the point. Good job man!!! Keep it coming and thanks. Deserved my SUB definitely. :)
You're awesome! kudos to your efforts
Thank you very much! Please make a video on kubernetes e2e testing.
Clearly explained and really useful for beginners, excellent work! May you kindly reply my small question: how can we estimate the resources request and limit for some specific pods?
The vertical pod autoscaler in recommendation mode can make recommendations on request values. There's a video on that in the channel.
Also the latest monitoring video will also help 💪🏽
Amazing, thank you very much, loved the edition and the concise way o explaining
Nice vid
Thank you!
Thank you so much!
How do you select a good minimum pod count for the hpa? I see this constant oscillation of it scaling up and down. Should i set my minimum above my normal load?
Nicely explained can you make video on eks with cluster autoscaler + hpa + ingress
Thank you 💪🏽
You should be able to follow the sequence:
EKS 👉🏽ruclips.net/video/QThadS3Soig/видео.html
CA 👉🏽ruclips.net/video/jM36M39MA3I/видео.html
HPA 👉🏽ruclips.net/video/FfDI08sgrYY/видео.html
Ingress 👉🏽ruclips.net/video/u948CURLDJA/видео.html
Absolutely killer video my man, much appreciated. Noob question: does the metrics server require a separate node for a production deployment? Or does it just run in the same k8s service process, the way a plugin would? It would be useful to have a better idea of how this maps to actual cloud infra in terms of VMs/nodes, etc.
Thanks for the kind words 💪🏽For production, Metric server can run on any node where it can be scheduled. Many cloud providers have metric server already installed in the kube-system namespace
Congrats on the excellent and well-explained video. However as your example at 7:39, the only resource scaled is CPU, not MEMORY (after scaling up to 4 replicas the memory of each pod remain unchanged). I wonder is this something obvious? And if so how can we actually scale base on memory consumed?
Kubernetes hpa supports memory as well. In the demo I used CPU as its the most common one
@@MarcelDempers I understand. Thank you very much
can you provide some sort of breakdown of which autoscaling API supported in which k8s version?
I don't see this formally documented anywhere, however, you can run `kubectl api-version" in your cluster to see what API versions it supports. I would also recommend looking at the HPA documentation of Kubernetes to see features of what's coming in future versions
In an HA cluster, metrics needs another modification... but i dont remmeber where...
hey there, can you please tell me how can i use nginx ingress in my cluster, I am using IBM cloud computing for cluster but the problem is currently i am on Lite plan which does not allow to create LoadBalancer, so how can i deploy my website using domain name on IBM ???
It will be an issue im afraid. Kubernetes allows NodePort but its not recommended for production workloads and will give you other issues like restrictions to port range which is not 80 or 443.
Also make it hard to run your pods behind multiple nodes.
If its your personal website, I would highly recommend Linode or Digital Ocean. Kubernetes is cheap to run there, their UI and UX is brilliant and an LB is around $10 a month too.
@@MarcelDempers thanks buddy
thanx gold
Thanks Marcel. This all is load based - is there a way where I can define it time based e.g. if there is a heavylifting job runs on my cluster between 2-4 AM and I can not afford to miss it?
Maybe checkout a project called Keda. it may support exactly what you need 💪🏽
Thanks for great Demo. Quick question, How come Pod could go to 1493m CPU when we allocated 500m ? Isn't that hard limit ?
Thank you 💪🏽, no the 500m is the requested value which is used for scheduling
@@MarcelDempers Thank you makes sense . If I Only need one pod , Is there a way to put hard limit so single pod doesn't eat up all the memory ?
@@imranarshad221 Sure there is. Just remember if that pod hits its limit, it will be terminated by the OOM killer and restarted kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits
materclass!