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

Комментарии • 42

  • @MarcelDempers
    @MarcelDempers  4 года назад +7

    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

  • @ibrahemazad
    @ibrahemazad Год назад

    the best video I ever watched on the internet explaining HPA

  • @tiagomedeiros7935
    @tiagomedeiros7935 3 года назад

    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.

  • @yovangrbovich3577
    @yovangrbovich3577 4 года назад +7

    Great content as usual, and the production quality is constantly getting better too! Awesome

  • @emergirie
    @emergirie 2 года назад +1

    Nice discover I like the way you explaining dude thanks for effort.I subscribe and will let other people know you

  • @5happy1
    @5happy1 4 года назад

    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.

  • @DevsLikeUs
    @DevsLikeUs 4 года назад

    Not having to provision infrastructure is awesome, thank you for the great video.

  • @inf222
    @inf222 3 года назад

    Such great work deserves like and comment))

  • @torbendury4374
    @torbendury4374 3 года назад

    Again, great content delivered in an easy way and also essy to reproduce. Thanks!

  • @prabhatnagpal
    @prabhatnagpal Год назад

    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

  • @ankitguhe5015
    @ankitguhe5015 3 года назад

    Absolutely useful video, you saved my job 🤣 thanks a ton mate!

  • @nikoladacic9800
    @nikoladacic9800 4 года назад

    Good lecture. Good presentation. Interesting fast and to the point. Good job man!!! Keep it coming and thanks. Deserved my SUB definitely. :)

  • @AmjadW.
    @AmjadW. 3 года назад

    You're awesome! kudos to your efforts

  • @Gandolfof
    @Gandolfof 3 года назад

    Thank you very much! Please make a video on kubernetes e2e testing.

  • @dangvu534
    @dangvu534 2 года назад +2

    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?

    • @MarcelDempers
      @MarcelDempers  2 года назад +3

      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 💪🏽

  • @elmeroranchero
    @elmeroranchero 4 года назад

    Amazing, thank you very much, loved the edition and the concise way o explaining

  • @derekreed6798
    @derekreed6798 Год назад +1

    Nice vid

  • @maratbiriushev7870
    @maratbiriushev7870 3 года назад

    Thank you!

  • @yuryzinovyev6186
    @yuryzinovyev6186 3 года назад

    Thank you so much!

  • @janco333
    @janco333 3 года назад

    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?

  • @vinayaknawale1015
    @vinayaknawale1015 4 года назад

    Nicely explained can you make video on eks with cluster autoscaler + hpa + ingress

    • @MarcelDempers
      @MarcelDempers  4 года назад

      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

  • @martinzen
    @martinzen 4 года назад

    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.

    • @MarcelDempers
      @MarcelDempers  4 года назад

      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

  • @vuhaiang2077
    @vuhaiang2077 2 года назад

    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?

    • @MarcelDempers
      @MarcelDempers  2 года назад +1

      Kubernetes hpa supports memory as well. In the demo I used CPU as its the most common one

    • @vuhaiang2077
      @vuhaiang2077 2 года назад

      @@MarcelDempers I understand. Thank you very much

  • @parasprince2001
    @parasprince2001 3 года назад

    can you provide some sort of breakdown of which autoscaling API supported in which k8s version?

    • @MarcelDempers
      @MarcelDempers  3 года назад

      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

  • @gouterelo
    @gouterelo 4 года назад

    In an HA cluster, metrics needs another modification... but i dont remmeber where...

  • @creative-commons-videos
    @creative-commons-videos 3 года назад +1

    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 ???

    • @MarcelDempers
      @MarcelDempers  3 года назад +1

      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.

    • @creative-commons-videos
      @creative-commons-videos 3 года назад

      @@MarcelDempers thanks buddy

  • @bullet_bg
    @bullet_bg 2 года назад

    thanx gold

  • @sachin-sachdeva
    @sachin-sachdeva 3 года назад

    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?

    • @MarcelDempers
      @MarcelDempers  3 года назад +1

      Maybe checkout a project called Keda. it may support exactly what you need 💪🏽

  • @imranarshad221
    @imranarshad221 4 года назад

    Thanks for great Demo. Quick question, How come Pod could go to 1493m CPU when we allocated 500m ? Isn't that hard limit ?

    • @MarcelDempers
      @MarcelDempers  4 года назад +1

      Thank you 💪🏽, no the 500m is the requested value which is used for scheduling

    • @imranarshad221
      @imranarshad221 4 года назад

      @@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 ?

    • @MarcelDempers
      @MarcelDempers  4 года назад +1

      @@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

  • @luc3r384
    @luc3r384 3 года назад

    materclass!