Kubernetes pod autoscaling for beginners
Вставка
- Опубліковано 1 вер 2020
- 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.dev/join
Checkout "That DevOps Community" too
marceldempers.dev/community
Source Code 🧐
--------------------------------------------------------------
github.com/marcel-dempers/doc...
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/marcel-dempers
Facebook | thatdevopsguy
LinkedIn | / marceldempers
Instagram | / thatdevopsguy
Music:
Track: Amine Maxwell - Cafe Cubano | is licensed under a Creative Commons Attribution licence (creativecommons.org/licenses/...)
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 (creativecommons.org/licenses/...)
Listen: / jeff-kalee-pillow-talk...
Track: Joakim Karud - That Day | is licensed under a Creative Commons Attribution licence (creativecommons.org/licenses/...)
Listen: / that-day
Track: souKo - souKo - Parallel | is licensed under a Creative Commons Attribution licence (creativecommons.org/licenses/...)
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 👉🏽 ua-cam.com/video/jM36M39MA3I/v-deo.html
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
the best video I ever watched on the internet explaining HPA
Such a well-done video! Can't believe you haven't gone huge yet. I don't usually comment on UA-cam 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.
Again, great content delivered in an easy way and also essy to reproduce. Thanks!
Amazing, thank you very much, loved the edition and the concise way o explaining
Good lecture. Good presentation. Interesting fast and to the point. Good job man!!! Keep it coming and thanks. Deserved my SUB definitely. :)
Nice discover I like the way you explaining dude thanks for effort.I subscribe and will let other people know you
Absolutely useful video, you saved my job 🤣 thanks a ton mate!
Not having to provision infrastructure is awesome, thank you for the great video.
You're awesome! kudos to your efforts
Such great work deserves like and comment))
Thank you so much!
Thank you!
Nice vid
Thank you very much! Please make a video on kubernetes e2e testing.
thanx gold
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
Nicely explained can you make video on eks with cluster autoscaler + hpa + ingress
Thank you 💪🏽
You should be able to follow the sequence:
EKS 👉🏽ua-cam.com/video/QThadS3Soig/v-deo.html
CA 👉🏽ua-cam.com/video/jM36M39MA3I/v-deo.html
HPA 👉🏽ua-cam.com/video/FfDI08sgrYY/v-deo.html
Ingress 👉🏽ua-cam.com/video/u948CURLDJA/v-deo.html
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 💪🏽
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
materclass!
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?
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 💪🏽
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...
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
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
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