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
  • Наука та технологія

КОМЕНТАРІ • 42

  • @MarcelDempers
    @MarcelDempers  3 роки тому +7

    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

  • @tiagomedeiros7935
    @tiagomedeiros7935 2 роки тому

    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 3 роки тому +7

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

  • @ibrahemazad
    @ibrahemazad Рік тому

    the best video I ever watched on the internet explaining HPA

  • @5happy1
    @5happy1 3 роки тому

    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.

  • @torbendury4374
    @torbendury4374 3 роки тому

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

  • @elmeroranchero
    @elmeroranchero 3 роки тому

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

  • @nikoladacic9800
    @nikoladacic9800 3 роки тому

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

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

  • @ankitguhe5015
    @ankitguhe5015 3 роки тому

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

  • @DevsLikeUs
    @DevsLikeUs 3 роки тому

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

  • @AmjadW.
    @AmjadW. 3 роки тому

    You're awesome! kudos to your efforts

  • @inf222
    @inf222 3 роки тому

    Such great work deserves like and comment))

  • @yuryzinovyev6186
    @yuryzinovyev6186 3 роки тому

    Thank you so much!

  • @maratbiriushev7870
    @maratbiriushev7870 2 роки тому

    Thank you!

  • @derekreed6798
    @derekreed6798 Рік тому +1

    Nice vid

  • @Abdullah32066
    @Abdullah32066 3 роки тому

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

  • @bullet_bg
    @bullet_bg Рік тому

    thanx gold

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

  • @vinayaknawale1015
    @vinayaknawale1015 3 роки тому

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

    • @MarcelDempers
      @MarcelDempers  3 роки тому

      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

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

  • @martinzen
    @martinzen 3 роки тому

    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  3 роки тому

      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

  • @luc3r384
    @luc3r384 3 роки тому

    materclass!

  • @janco333
    @janco333 2 роки тому

    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?

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

  • @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 3 роки тому

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

  • @imranarshad221
    @imranarshad221 3 роки тому

    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  3 роки тому +1

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

    • @imranarshad221
      @imranarshad221 3 роки тому

      @@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  3 роки тому +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

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

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