How To Do Canary Deployments In Kubernetes Using Flagger And Linkerd?

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ต.ค. 2024

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

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

    Are you employing canary releases or any other flavor of progressive delivery? If you are, which tools are you using?
    IMPORTANT: For reasons I do not comprehend (and Google support could not figure out), TH-cam tends to delete comments that contain links. Please do not use them in your comments.

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

    great as always, direct to the point! Obviously waiting for the compare with argo rollouts :)

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

    Many thanks for this new high quality video !!
    Yes a special comparison video will be great !
    And I hope also to see a video from you about Dapr :)

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

      I already added both suggestions to my TODO list. Let me bump them towards the top :)

    • @DevOpsToolkit
      @DevOpsToolkit  2 ปีที่แล้ว

      Dapr is now live: th-cam.com/video/-4sHUvfk2Eg/w-d-xo.html :)

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

    Eagerly waiting video on linkerd with argo rollout

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

    Awesome content as always my man.

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

    Hi Viktor,
    Thanks again for the awesome content!!
    Quick question: Why did you choose flagger instead os argo rollouts?
    I've been noticing that you like a lot the argo umbrella. Your choice made me curios.

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

      I like both, even though I might be using Argo projects more than others in this channel. The main reason I used Flagger in this video is that I wanted to explore canary deployments with Istio. Since I already did a video about Argo Rollouts, I thought that using Flagger in this one would add variety.
      I intentionally avoided any comparison between Argo Rollouts and Flagger in this video since I'm planning to create a separate video that will compare the two.

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

    If you please create similar tutorial for argo that will be great.

  • @muhammadardivans.n6675
    @muhammadardivans.n6675 2 ปีที่แล้ว +1

    Awesome as always sir👍

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

    Thanks for the useful hands-on demo! I think Argo Rollouts should definitely be in your todo list. One question about Flagger: does it work properly with HPA?

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

      I do not think there is any direct relation between linkerd and hpa. Linkerd mostly works with k8s services and containers (proxies) attached to pods.

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

      @@DevOpsToolkit yeah, I meant Flagger, not Linkerd of course. How does Flagger work with HPA?

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

      @@nnutipa It creates a copy of the HPA. That's why it was referenced in the canary manifests. It essentially does the same as for the Deployment. Copies of those are created so that it knows what are the "original" definitions that should be used together with the manifests of the new release.

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

      @@DevOpsToolkit Sadly Linkerd tends to have an issue with HPA as long as you do it by matching resources, because if you do it needs annotations to assing requests/limits to the linkerd pod otherwise the service that it is attached to doesn't scale and the HPA doesn't recognize it (eg. can't get metrics for cpu/memory requests)

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

      @@stormrage8872 Are you referring to `config.linkerd.io/proxy-cpu-limit` and similar annotations that provide the information about memory and CPU requests and limits for the proxy container injected by Linkerd? If that's the case, I tend not to use it in demo environments mostly to avoid potential problems from not having enough resources. I do have them in "real" environments though.

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

    Thanks for this..... Can you do a video on Argo Rollouts vs Flagger? I have had my eye set on Argo Rollouts, but flagger sounds like it may be the better option..

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

      I'll do that. Adding it to my TODO list... :)

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

    Waiting for new video with argo rollout

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

      It's on my TODO list. The problem is that the he list is growing faster than I can handle...

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

    Great video again. 1 question, without service mesh is it possible to do canary deployment ?

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

      Yes, but only for apps accessed through ingress. Flagger can do the "magic" through nginx and a few other ingresses. For internal apps not accessible from outside you need service mesh.

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

    what will happen if we deploy one more image tag while a canary is in progressing state

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

      Not sure... Haven't had that case yet 😔

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

      @@DevOpsToolkit Hey Please could you please help me if you can, in this regard??
      I would like to know whether we can have multiple canary versions at a time using flagger

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

      @@saikrishnapalakollu2575 That should be fairly easy to test. Just appply a third release while the second is still in progress.

  • @Pranav-mw3jt
    @Pranav-mw3jt ปีที่แล้ว +1

    Hi, can you please tell me what exactly happens between canary status initializing and initialized? I have an application stuck in the initializing status and wanted to know why is that. Thanks in advance!

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

      The issue us most likely with the status of the pods of your app.

    • @Pranav-mw3jt
      @Pranav-mw3jt ปีที่แล้ว +1

      @@DevOpsToolkit the pods of the app are in running state, but still the canary status shows as initializing. Hence, I wanted to know what exactly happens between canary status initializing and initialized.

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

      @Pranav-mw3jt the info should be output as events of the CR.

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

      If events do not show anything, I can take a look myself if you can send me a Gist that would allow me to reproduce it.

    • @AhmedBelguith-mm1vv
      @AhmedBelguith-mm1vv 8 หลายเดือนก่อน +1

      I have the same problem can you help me ?

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

    how do i increase the flagger rollout time ?

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

      Each step in the manifest can define the duration.

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

    Didn't quite understand what Linkerd's role is in this scenario, seems like everything is done by Flagger

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

      Linkerd is a service mesh providing advanced networking capabilities. Among it's many features, what matters in that context is that it allows us to set weights to services. We can, for example, configure Linkerd service to send 20% of traffic one way and 80% the other. Flagger, on the other hand, is using that capability to execute canary deployments. It is dynamically changing weights by reconfiguring Linkerd. That is happening in the background and, if that's the only reason for using Linkerd, you can consider it an implementation detail.

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

      Thank you for the detailed answer. Makes sense

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

    #til

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

    Awesome content. I will test flagger and Argo CD, but I didn't find file for silly-demo used to in this scenario , I check link github.com/fluxcd/flagger also , please send deployment ,ingress and.. for silly-demo.

    • @DevOpsToolkit
      @DevOpsToolkit  2 ปีที่แล้ว

      Did you check the commands from the Gist (URL is in the description of the video)? It, among other things, contains the link to the repo with all the manifests, including silly-demo.