Most Common Kubernetes Deployment Strategies (Examples & Code)

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ก.ย. 2024

ความคิดเห็น • 90

  • @AntonPutra
    @AntonPutra  ปีที่แล้ว +4

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

  • @swa1211
    @swa1211 3 หลายเดือนก่อน +1

    very nice explanation and helpful , thx a lot

    • @AntonPutra
      @AntonPutra  3 หลายเดือนก่อน

      thank you!

  • @asezen77
    @asezen77 9 หลายเดือนก่อน +1

    Thank you very much for all your content.

    • @AntonPutra
      @AntonPutra  9 หลายเดือนก่อน

      my pleasure

  • @cristobalzuluaga3065
    @cristobalzuluaga3065 10 หลายเดือนก่อน

    underrated channel

  • @dimadiachenko1
    @dimadiachenko1 ปีที่แล้ว +1

    awesome structured video, thanks!

  • @softwareasafun
    @softwareasafun ปีที่แล้ว +1

    Thanks!

    • @AntonPutra
      @AntonPutra  ปีที่แล้ว

      Thank you for support!

  • @jeffkirchoff14
    @jeffkirchoff14 หลายเดือนก่อน +1

    You've Explained so well sir 🙏
    I'd like to share this on twitter... May I ?

    • @AntonPutra
      @AntonPutra  หลายเดือนก่อน +1

      sure :)

  • @KapitalKashh
    @KapitalKashh 2 หลายเดือนก่อน +1

    Fortnite!!

  • @LalalL-j4n
    @LalalL-j4n 13 วันที่ผ่านมา +1

    Very good video brother and very nice explanation 🫰

    • @AntonPutra
      @AntonPutra  12 วันที่ผ่านมา

      thank you!

  • @worldsofgalaxy
    @worldsofgalaxy 7 หลายเดือนก่อน +6

    Never seen before such clear explanation..Hatts off 👍👍

    • @AntonPutra
      @AntonPutra  7 หลายเดือนก่อน +1

      thanks a lot!

  • @IuliiaFedotchenko-nu8lm
    @IuliiaFedotchenko-nu8lm 4 หลายเดือนก่อน +1

    very good explained as always. thanks a lot for all your videos

    • @AntonPutra
      @AntonPutra  4 หลายเดือนก่อน

      🫡

  • @maxmarko5949
    @maxmarko5949 28 วันที่ผ่านมา +1

    awesome! visualization is the key

    • @AntonPutra
      @AntonPutra  27 วันที่ผ่านมา

      thank you!

  • @chasim1982
    @chasim1982 ปีที่แล้ว +5

    Great Content, Thanks Sir, best IT teacher, learned a lot from You! ❤

  • @kayoutube690
    @kayoutube690 ปีที่แล้ว +4

    you deserve lots of subscribers, thank you for sharing your knowledge.

  • @agonzalezo
    @agonzalezo หลายเดือนก่อน +1

    Great content, thanks Anton Putra.
    How could you use blue/green strategy in a cluster that have too many deployments interconnected each other? So If you have to change all service to point to the new deployment all your external client will use it too or not?

    • @AntonPutra
      @AntonPutra  หลายเดือนก่อน +1

      I'm not sure if I understood the question, but you can use blue/green deployment. Before providing access to your clients, you can thoroughly test your new "green" deployment. If it looks okay, you can, let's say, change the DNS or Kubernetes (k8s) label.
      You can use other strategies as well. For instance, you might need an additional HTTP header to hit the new version, etc. It's much more difficult for data transformation pipelines that many companies use, such as with Kafka.

    • @agonzalezo
      @agonzalezo หลายเดือนก่อน

      thanks for your reply Anton. suppose you are running an application that has 10 or more micro services in your cluster, if you upgrade one of them and use blue/green is easy to do unit test but if you have to do test more complex like integration or functional it becomes so hard(my point of view). i mean you would have to duplicate all other deployments and make it pointing to the upgraded deployment. again great content 🤜🏼🤛🏼

    • @AntonPutra
      @AntonPutra  หลายเดือนก่อน +1

      @@agonzalezo Agreed. Sometimes you have to test all different applications together, let's say, in a staging environment. Instead of using blue-green deployment, you just release them all at once. Since you tested that in staging, you have a good chance of a successful production push.

  • @NarendraChennamsetty
    @NarendraChennamsetty 3 หลายเดือนก่อน +1

    These tutorials are amazing

    • @AntonPutra
      @AntonPutra  3 หลายเดือนก่อน +1

      thanks you!!

  • @coveraver
    @coveraver ปีที่แล้ว +2

    Thank you! Can we balance traffic between services in the different namespaces by istio with flagger or something?

    • @AntonPutra
      @AntonPutra  ปีที่แล้ว

      It's not common, what's your use case? I'll see if I can test istio with cross namespace virtual service

    • @coveraver
      @coveraver ปีที่แล้ว

      it would be great. There are three services in different namespaces stage, prod and green. I need to balance traffic between them. this can be done using ingress canary, but in this case, if the application crashes, it is not excluded from balancing and the user will receive either 200 or 503.

  • @kunalkatdare9799
    @kunalkatdare9799 6 หลายเดือนก่อน +2

    Thanks! Usually all videos show these deployment strategies conceptually, but you demonstrated how it's actually done! Big thanks!

  • @김도형-g2i
    @김도형-g2i 8 หลายเดือนก่อน +2

    This is so well explained.
    You also added in examples that we can understand and apply in the real world.
    Great thanks for sharing such knowledge. subscribed.

    • @AntonPutra
      @AntonPutra  8 หลายเดือนก่อน

      thanks!

  • @hamidullahmuslih6301
    @hamidullahmuslih6301 10 หลายเดือนก่อน +3

    I love your explanations, very clear, awesome examples, and straight to the point. Thank you for your hard work!!

    • @AntonPutra
      @AntonPutra  10 หลายเดือนก่อน

      Thank you!

  • @GabrielPozo
    @GabrielPozo ปีที่แล้ว +3

    This is always an exciting topic, a fantastic video, thanks for sharing this quality of content!!!

  • @agun21st
    @agun21st ปีที่แล้ว +1

    Wow! this is really very help full K8s Deployment contents for when we call a service api and it show "Service Upstream problem". Sir your content is Unique on the k8s Tutorials. 💝

  • @milindchavan007
    @milindchavan007 2 หลายเดือนก่อน +1

    This is awesome! please make detailed canary setup videos, its really very helpful.

    • @AntonPutra
      @AntonPutra  2 หลายเดือนก่อน

      Thank you! Will do

  • @yogithakakarla1716
    @yogithakakarla1716 ปีที่แล้ว +1

    So, in canary deployment as we can forward 10% of traffic to new version. Can we make sure that only our team users can access this new version 10% . And end-users or customer should access 90% of old version.
    Is it possible

    • @AntonPutra
      @AntonPutra  ปีที่แล้ว

      Sure, if you use native K8s objects, you would add an additional label to the deployment, for example, "deployment: canary". Then, you'd create another service that selects only canary pods, similar to the blue/green example. In Flagger, this is already implemented, and when you run a test, it will target only the canary.

  • @bobbylelapin
    @bobbylelapin ปีที่แล้ว +1

    Love your content! What workstation you have? ARM MacBook laptop?

    • @AntonPutra
      @AntonPutra  ปีที่แล้ว +1

      Thanks, yes Apple M1 Pro

  • @joobis.b4568
    @joobis.b4568 5 หลายเดือนก่อน +1

    great explanation! thankyou for doing this

    • @AntonPutra
      @AntonPutra  5 หลายเดือนก่อน

      thanks!

  • @node_hodler
    @node_hodler ปีที่แล้ว +1

    otlicino, spasibo!

  • @vipuldepolkar1189
    @vipuldepolkar1189 ปีที่แล้ว +1

    Hi, i m fron india, and your teaching style is very good. I'm waiting for more videos for kubernates and terraform with azure

    • @AntonPutra
      @AntonPutra  ปีที่แล้ว

      Thanks, Azure is coming soon =)

  • @asezen77
    @asezen77 9 หลายเดือนก่อน +1

    Thanks

  • @nguyenphu-o5d
    @nguyenphu-o5d หลายเดือนก่อน

    Hi, I successfully deploy some services but having the Nameserver limits were exceeded issue, is it happen due to too many services?

    • @AntonPutra
      @AntonPutra  หลายเดือนก่อน

      it's very unlikely, what's your setup and can you paste exact error message

    • @nguyenphu-o5d
      @nguyenphu-o5d หลายเดือนก่อน

      @@AntonPutra I found a way to fix it, I tried systemctl restart systemd-resolved.service and the issue is gone some how.

  • @kingschermann8161
    @kingschermann8161 ปีที่แล้ว

    'Promo SM'

  • @sonadas7213
    @sonadas7213 ปีที่แล้ว +1

    Thanks for sharing your knowledge, your explanation is up to the mark.

  • @Jaffarnefarious
    @Jaffarnefarious ปีที่แล้ว +2

    Thanks a lot Anton!

  • @Diego_UG
    @Diego_UG ปีที่แล้ว +1

    thanks for the video, question: what is a deployment strategy like when there are database migrations and how do you plan a rollback in this type of situation?

    • @AntonPutra
      @AntonPutra  ปีที่แล้ว

      it's case by case but in general try to make migration backward compatible

    • @Diego_UG
      @Diego_UG ปีที่แล้ว

      Yes, although as the company grows and technology teams are formed, it becomes necessary to implement policies to ensure that these methodologies are followed by everyone on the team. So, in the case of databases, what would the policies be like? One policy could be: modifying a field in the database involves the following steps: 1) Create a new field with a different name, migrate, run a test; 2) Ensure new information is recorded in the new table, keeping new records in both tables, run a test; 3) Migrate data from one table to another, run a test; 4) Ensure new information only enters the row, run a test; 5) Delete the old table; 6) End.?

  • @hermanwahyudi6724
    @hermanwahyudi6724 หลายเดือนก่อน

    what the diff between rolling update and canary?

    • @AntonPutra
      @AntonPutra  หลายเดือนก่อน

      By 'canary,' we mean a controlled rollout of the new application version to a small subset of users, followed by testing that version. If the tests pass, we roll out this version to a wider audience. Kubernetes built in rolling update, gradually replacing the old version with the new one. You can potentially use health checks for testing, but it is not the same.

    • @hermanwahyudi6724
      @hermanwahyudi6724 หลายเดือนก่อน

      @@AntonPutra how to set/config the rollout of canary to a small subset of user? just use small percentage? or use sticky session also?

  • @rahulchowdhury279
    @rahulchowdhury279 ปีที่แล้ว +1

    plz make a DETAILED video on Cortex.

    • @rahulchowdhury279
      @rahulchowdhury279 ปีที่แล้ว +1

      Love your videos. Both prometheus operator videos helped me out a lot

    • @AntonPutra
      @AntonPutra  ปีที่แล้ว +2

      Sure will do!

  • @CloudWithUgur
    @CloudWithUgur ปีที่แล้ว +2

    you should enable "join" so we can support you

    • @AntonPutra
      @AntonPutra  ปีที่แล้ว +1

      Thanks will do =)

  • @ladioladeni
    @ladioladeni ปีที่แล้ว +1

    Anton my man! Quality contents as usual

  • @diegonayalazo
    @diegonayalazo 10 หลายเดือนก่อน +1

    Masterclass. Thanks Teacher!

    • @AntonPutra
      @AntonPutra  10 หลายเดือนก่อน

      Thank you!

  • @victors9585
    @victors9585 ปีที่แล้ว +1

    В нетленку!!!! 🔥🌟🔥🌟🔥🌟🔥Сердечно благодарю, Антон!!! 🙏❤🙏❤🙏❤🙏

  • @wilmarmunoz6212
    @wilmarmunoz6212 7 หลายเดือนก่อน

    this is amazing, well explained!

  • @AhmedAymanElSayed-e1i
    @AhmedAymanElSayed-e1i 11 หลายเดือนก่อน

    I have a question, why are there 2 pods being created in 5:08 minute while the specified maxSurge is 25% from 4 replicas which should be 1

    • @AntonPutra
      @AntonPutra  11 หลายเดือนก่อน

      yes, 25% is 1 pod (4 total), but k8s terminated at the same time 1, so total 5

  • @kayoutube690
    @kayoutube690 ปีที่แล้ว

    sir do you have video about kubernetes pod termination and sig term? how the pod gracefully terminated specially in prod?

    • @AntonPutra
      @AntonPutra  ปีที่แล้ว

      I don't, but there is a hook that you can use and provide a custom command to execute before terminating the pod - kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/

  • @Diego_UG
    @Diego_UG ปีที่แล้ว

    another question: how do we deploy a pod if its task or actions are executed internally and not by a request from a user?

    • @AntonPutra
      @AntonPutra  ปีที่แล้ว

      do you mean like a data pipeline (kafka consumer/producer), you can automate and it's much harder and that's why most examples focused on request based apps :)

  • @domw2391
    @domw2391 ปีที่แล้ว

    I’m using argocd rollout but I don’t know what’s the main difference between native k8s deployment strategy and Argo d rollout

    • @AntonPutra
      @AntonPutra  ปีที่แล้ว +1

      It uses default rolling-update unless you explicitly update it in the yaml

    • @rahulchowdhury279
      @rahulchowdhury279 ปีที่แล้ว +2

      ArgoRollouts can do canary and bluegreen