Kubernetes Node Selector vs Node Affinity vs Pod Affinity vs Tains & Tolerations

Поділитися
Вставка
  • Опубліковано 19 чер 2024
  • 🔴 - To support my channel, I’d like to offer Mentorship/On-the-Job Support/Consulting - me@antonputra.com
    ▬▬▬▬▬ Experience & Location 💼 ▬▬▬▬▬
    ► I’m a Senior Software Engineer at Juniper Networks (12+ years of experience)
    ► Located in San Francisco Bay Area, CA (US citizen)
    ▬▬▬▬▬▬ Connect with me 👋 ▬▬▬▬▬▬
    ► LinkedIn: / anton-putra
    ► Twitter/X: / antonvputra
    ► GitHub: github.com/antonputra
    ► Email: me@antonputra.com
    ▬▬▬▬▬▬ Related videos 👨‍🏫 ▬▬▬▬▬▬
    👉 [Playlist] Kubernetes Tutorials: • Kubernetes Tutorials
    👉 [Playlist] Terraform Tutorials: • Terraform Tutorials fo...
    👉 [Playlist] Network Tutorials: • Network Tutorials
    👉 [Playlist] Apache Kafka Tutorials: • Apache Kafka Tutorials
    👉 [Playlist] Performance Benchmarks: • Performance Benchmarks
    👉 [Playlist] Database Tutorials: • Database Tutorials
    ▬▬▬▬▬▬▬ Timestamps ⏰ ▬▬▬▬▬▬▬
    0:00 Intro
    2:16 Kubernetes Node Selector
    3:27 Kubernetes Node Affinity
    7:06 Kubernetes Pod Anti-Affinity
    8:57 Kubernetes Pod Affinity
    9:44 Kubernetes Taints and Tolerations
    ▬▬▬▬▬▬▬ Source Code 📚 ▬▬▬▬▬▬▬
    ► GitHub: github.com/antonputra/tutoria...
    #kubernetes #devops #cloud
  • Наука та технологія

КОМЕНТАРІ • 58

  • @AntonPutra
    @AntonPutra  9 місяців тому +1

    🔴 - To support my channel, I’d like to offer Mentorship/On-the-Job Support/Consulting - me@antonputra.com

  • @prashlovessamosa
    @prashlovessamosa 10 місяців тому +3

    These k8s videos are awesome let them coming.
    It's so easy understand through animation
    too much effort to make these
    very grateful to you for making these lectures.

    • @AntonPutra
      @AntonPutra  10 місяців тому

      Thank you! Yes, it takes some time :)

  • @user-jy5nh9zh4g
    @user-jy5nh9zh4g 20 днів тому +1

    Your explanation is really PRO !
    would be great if you can create series on App Tracing and Monitoring on K8s like ELK stack for APM for app tracing

    • @AntonPutra
      @AntonPutra  20 днів тому

      thanks, i'll see what i can do

  • @user-ij3od1xs2s
    @user-ij3od1xs2s 10 місяців тому +1

    Very good explanation
    Thank you Anton

  • @ankitrawat721
    @ankitrawat721 10 місяців тому +2

    I am working with Kubernetes for last 4 years. That is a very clean explanation. Nice video!
    I would request you to create a specific video on HPA with request based.

    • @AntonPutra
      @AntonPutra  10 місяців тому +1

      Thank you! Will do

  • @undetermened
    @undetermened 10 місяців тому +1

    Extremely useful topic, thanks for great content again, Anton!

    • @AntonPutra
      @AntonPutra  10 місяців тому

      Thanks!

    • @user-pc1pm1vb7p
      @user-pc1pm1vb7p Місяць тому

      What would be a condition when 2 both with similar configuration should always schedule in 2 diff nodes ?

    • @undetermened
      @undetermened Місяць тому

      @@user-pc1pm1vb7p if you form your question properly, Anton, me or gpt could answer you :)

  • @ajaychaudhari8548
    @ajaychaudhari8548 10 місяців тому +1

    Very good explanation,
    Thank you Anton

  • @nero4581
    @nero4581 10 місяців тому +2

    Hi, Anton, again, really interesting and REALLY well presented. For someone like me, who's only dealt with Minikube locally (so that means only one Node), it is something new, but, nevertheless, great knowledge to have for the future when I will deploy in production. As always, thank you!

    • @AntonPutra
      @AntonPutra  10 місяців тому +1

      Thank you! Sometimes, it's helpful to run multiple nodes even with Minikube. This could be useful, for example, to test how an app behaves if a node goes down (for example if you want to run it on spot).
      minikube start --nodes 2

    • @nero4581
      @nero4581 10 місяців тому

      @@AntonPutra Much thanks for the reply, Anton! Wasn't even aware of the --nodes flag for minikube, will be sure to try it out! And can only agree with you, really useful to test behavior of when a node goes down and even architect for when you will be deploying in production on multiple nodes.

  • @Sid-sl3xk
    @Sid-sl3xk 9 місяців тому +1

    Great Videos

  • @Babbili
    @Babbili 10 місяців тому +2

    i remember some hard days when i started in DevOps, tainting some nodes for ML, then getting not enough nodes error, i fix and then a lead dev manually change from Kubernetes dashboard, until i used ArgoCD with selfHeal then RBAC so he cannot change after that the cluster became stable

    • @AntonPutra
      @AntonPutra  10 місяців тому +1

      It's sometimes hard in large teams to prevent manual changes, but as you said, everyone should be using GitOps as much as possible.

  • @prashanthm5185
    @prashanthm5185 10 місяців тому

    Nicely explained 👏

  • @YordisPrieto
    @YordisPrieto 10 місяців тому +2

    First 😎

  • @bipinkumar-db1ip
    @bipinkumar-db1ip 10 місяців тому +1

    Thanks @AntonPutra for the micro detailed video. We are currently facing some issue related to pod scheduling in eks this video provided some insights . We have a monitoring demonset which took normally ~1min to 1.5 min to spin up and ready. But some of my application pods are in ready state in the same node before the demon set pod is ready because of faster startup time.Our monitoring tool will not inject agent if the pod is ready before the demonset. Could you please suggest taint or pod affinity which one is the best approach. Other than the affinity and taint is there any other helpful suggestions please provide that as well .
    Thanks in advance...

    • @AntonPutra
      @AntonPutra  10 місяців тому

      Can you run your monitoring tool as a sidecar to daemonset?

  • @agun21st
    @agun21st 10 місяців тому +1

    very informative video.

  • @RABWA333
    @RABWA333 7 місяців тому +1

    Thanks 🙏 a lot , great job 👏

    • @AntonPutra
      @AntonPutra  7 місяців тому

      my pleasure!

    • @user-pc1pm1vb7p
      @user-pc1pm1vb7p Місяць тому

      bro, What would be a condition when 2 both with similar configuration should always schedule in 2 diff nodes ?

  • @George-mk7lp
    @George-mk7lp 10 місяців тому +1

    hey Anton are you working with Azure or planning to make any videos in the future ? Thanks for what you doing as always

  • @danclarkeuk
    @danclarkeuk 4 місяці тому +1

    Great video! Can I ask what software you use for the diagrams and animations?

    • @AntonPutra
      @AntonPutra  4 місяці тому +1

      Thanks, adobe stack

    • @danclarkeuk
      @danclarkeuk 4 місяці тому

      @@AntonPutra Ah brilliant - I already have the Adobe all app suite. I probably haven't used more than half the apps though! 😂 Is the animation done with Adobe Animate?

  • @user-pc1pm1vb7p
    @user-pc1pm1vb7p Місяць тому

    What would be a condition when 2 both with similar configuration should always schedule in 2 diff nodes ?

    • @AntonPutra
      @AntonPutra  Місяць тому

      use podantiaffinity - kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#more-practical-use-cases

  • @nishitkumar7650
    @nishitkumar7650 10 місяців тому +1

    Hey anton can you make video on when we deploy pods ko gke cluster where does the container log (/var/logs/) get stored , what happens in backend if we don't mount it with persistence volume.

    • @AntonPutra
      @AntonPutra  10 місяців тому

      In GKE, EKS and even AKS you just need to update your logger to write to stdout or stderr. In GCP you'll get your logs in stackdriver, you don't need to mount anything.

    • @nishitkumar7650
      @nishitkumar7650 10 місяців тому

      @@AntonPutra so it will not write anything on my gke disk.

    • @AntonPutra
      @AntonPutra  10 місяців тому

      @@nishitkumar7650 no just stout

  • @soumyamishra8734
    @soumyamishra8734 10 місяців тому +1

    Thank you so much ,Can you please share kubernetes scenario based questions

    • @AntonPutra
      @AntonPutra  10 місяців тому

      Welcome, you mean interview questions?

    • @soumyamishra8734
      @soumyamishra8734 10 місяців тому

      @@AntonPutra yes Anton

    • @soumyamishra8734
      @soumyamishra8734 10 місяців тому +1

      Please share the entire Pod Life cycle

    • @AntonPutra
      @AntonPutra  10 місяців тому +1

      @@soumyamishra8734 Got it, will do

  • @manishalankala1622
    @manishalankala1622 10 місяців тому

    Which tools do you use for video editing for your channel

  • @nishitkumar7650
    @nishitkumar7650 10 місяців тому +1

    Why don't you make a course to deploy pods on gke with best practices and how to do container logs management , how to do best pods monitoring in gke , advance concepts like how to deploy microservices in gke.

    • @AntonPutra
      @AntonPutra  10 місяців тому

      Thanks, I'll think about it.

  • @xichen2677
    @xichen2677 8 місяців тому

    The diagram at 0:50 is confusing, the pod requests 2 CPU and 4Gi memory, why node-01 which has 6CPU and 16Gi (more than pod's request) be considered not enough memory? Same question also for node-03 which has 8CPUs why it is considered not enough CPU?

    • @AntonPutra
      @AntonPutra  8 місяців тому

      Well, that's the whole point of Kubernetes: to abstract away a data center. In the case of the cloud, we typically use large instance types to reduce wasted resources since we also need to run monitoring and logging agents on each node. So, we use large instances and schedule multiple pods on a single virtual machine.

  • @rahaan365
    @rahaan365 10 місяців тому +1

    I didn't yet watch the video, but kudos to someone dare to bend it.

  • @lukaszgmail
    @lukaszgmail 10 місяців тому +1

    First minute: How does the score is resolved?

    • @AntonPutra
      @AntonPutra  10 місяців тому

      You can read more about scheduler here - kubernetes.io/docs/concepts/scheduling-eviction/scheduler-perf-tuning/