Scaling Explained Through Kubernetes HPA, VPA, KEDA & Cluster Autoscaler

Поделиться
HTML-код
  • Опубликовано: 2 окт 2024

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

  • @conradtaylor29
    @conradtaylor29 3 месяца назад +13

    I would like to see a video on dealing with SIGTERM signals. Also, I would be interested in learning how to implement services within a distributed system that can be started in any order. Fantastic video and please do keep them coming.

  • @TheVasanthbuddy
    @TheVasanthbuddy 3 месяца назад +8

    I would really love to hear about graceful shutdowns, because we did that after implementing autoscaling, which was a pain we had in the last year. Pretty please from your fan.

  • @DrWho4President
    @DrWho4President 3 месяца назад +7

    Interested in graceful shutdown sir!

  • @obasoroolakunle8421
    @obasoroolakunle8421 3 месяца назад +1

    Your book is one of the best out there. Thanks for sharing knowledge

    • @moisthoagie1992
      @moisthoagie1992 3 месяца назад +1

      What book is this? I must have missed it.

    • @DevOpsToolkit
      @DevOpsToolkit  3 месяца назад +1

      He was probably referencing leanpub.com/crossplane

  • @hassaanjavaid3565
    @hassaanjavaid3565 2 месяца назад +1

    I would like to see a video on SIGTERM signal and handling gracefully shut down

    • @DevOpsToolkit
      @DevOpsToolkit  2 месяца назад

      Great. I'll start working on it soon and expect it to go live in 2 months (give or take).

  • @civilapalyan6253
    @civilapalyan6253 2 месяца назад +2

    I use the Datadog operator that allows me to scale based on any metrics that I send to Datadog. Anyway, nice video 🙂

  • @RobertWinter2
    @RobertWinter2 2 месяца назад +1

    Can any of the autoscalers work by committing to my Git repo instead of mutating my Kubernetes resources? I'd like to use a declarative GitOps approach even for scaling.

    • @DevOpsToolkit
      @DevOpsToolkit  2 месяца назад +1

      In theory, you could use something like Argo Events to trigger pipelines (e.g., GitHub Actions) that would change manifests in Git but, as far as I know, no one does that. HPA itself is a statement of intent that makes pods dynamic (in number). At the end of the day, most of Kubernetes resources are like that. You're not storing Pods in Git and tying them to specific nodes but letting Deployments manage ReplicaSets which manage Pods which can be (almost) anywhere. HPA (and other scalers) do a similar level of dynamism. You specify the range and the criteria and it ensures you get them.

  • @DennisHaney
    @DennisHaney 3 месяца назад +1

    The most annoying thing about HPA is that it doesn't scale well(pun obviously intended) for low amounts of resources. Lets say you have a web app that uses 400mb idling and does great up to 600mb. When it reaches this point i know site is actually in real use and i want to start some new pods that _start_ at 4gig

    • @DevOpsToolkit
      @DevOpsToolkit  3 месяца назад

      KEDA should help with that since it allows you to use any query you want.

  • @mzimmerman1988
    @mzimmerman1988 2 месяца назад +2

    I am experimenting with using a VPA "recreate" for development environments in an GKE Autopilot cluster while setting it to "off" for production, while the HPA is set to 1 replica for development. The theory is that a under utilized development deployments should be placed onto smaller nodes by GKE Autopilot as the pod are re-created by the VPA. Time will tell if it works as planned 😅 I am still developing my process for setting resource requests/limits and scaling.
    I agree with some of the other comments, I'd like to hear your thoughts on graceful shutdowns for pods. I am often concerned that my auto scaler will interrupt some work 😅

    • @DevOpsToolkit
      @DevOpsToolkit  2 месяца назад +1

      I started working on the material for graceful shutdown yesterday. It should go live sometime in September.

    • @mzimmerman1988
      @mzimmerman1988 2 месяца назад +1

      @@DevOpsToolkit Thanks! Looking forward to it :)

  • @IvanRizzante
    @IvanRizzante 3 месяца назад +2

    Hi Viktor thanks for another great video 🎉 I think that autoscaling is one of the most underestimated tasks in the journey towards kubernetes adoption. I've seen many companies struggling with pods restarting continuously, working for a while and then stopping and all sorts of problems which makes them wondering why they adopted kubernetes in the first place! Instead understanding these concepts is fundamental thanks for clarifying them!
    I'd also like to see a video in graceful shutdown thank you

  • @east4ming
    @east4ming 3 месяца назад +1

    Is there a very simple way to scale a homelab/non-production environment deploys to 0 when there is no traffic? Yet I found three:traefik+sablier,greenkeytech/zero-pod-autoscaler, ctrox/zeropod.

    • @DevOpsToolkit
      @DevOpsToolkit  3 месяца назад

      Scaling to zero is easy. Scaling back up when a request comes in is a challenge. Try knative.

  • @microst99
    @microst99 2 месяца назад +1

    great stuff as always

  • @TheBalkovic
    @TheBalkovic 3 месяца назад +1

    Prvi like!!

  • @julianomoraisbarbosa
    @julianomoraisbarbosa 3 месяца назад +1

    # til

  • @hewhointheearthlydomainsee1272
    @hewhointheearthlydomainsee1272 3 месяца назад +1

    It would be nice if there were a distributed possibly global and sharable operating system to abstract, reuse and resource the various hardware systems, architectures and providers. And some economic model to make it more affordable for everyone. I will try to learn more; try to do that or find something that does already. I want to create a system that carefully applies my focus; then start creating on that.

    • @DevOpsToolkit
      @DevOpsToolkit  3 месяца назад

      That is effectively kubernetes.

    • @hewhointheearthlydomainsee1272
      @hewhointheearthlydomainsee1272 3 месяца назад

      @@DevOpsToolkit Does it have a global provisioning system? Idea: There is a service that tracks and manages interaction with the providers. And then schedules the access to those provisions. Then each of the interfaces of the OS each developer-user is running has an availability service. Then the developers just use some language to denote the microservice and write their code for each one. Then they publish their microservice or application on the OS's web. Maybe it has some kind of address on the OS's web, and then can be reused by others if its very similar or same as used in many other application. The microservice which are in high demand might be subsidised. Some system groups similar microservice and makes suggestion based on performance. Then some kind of application marketplace helps further even out the costs. Then maybe a user-consumer platform to access them.