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

  Рет қаралды 9,932

DevOps Toolkit

DevOps Toolkit

Күн бұрын

What are canary deployments? How can we combine Weaveworks Flagger and Linkerd service mesh to deploy canary releases in Kubernetes?
#CanaryDeployment #Flagger #Linkerd #Kubernetes
Consider joining the channel: / devopstoolkit
▬▬▬▬▬▬ 🔗 Additional Info 🔗 ▬▬▬▬▬▬
➡ Gist with the commands: gist.github.com/215c6e3126ae9...
🔗 Flagger: flagger.app/
🎬 What Is Linkerd?: • What Is Linkerd Kubern...
🎬 Progressive Delivery: • Progressive Delivery E...
🎬 Service Mesh: • Service Mesh In Kubern...
🎬 Argo Rollouts: • Argo Rollouts - Canary...
🎬 Kustomize: • Kustomize - How to Sim...
▬▬▬▬▬▬ 💰 Sponsoships 💰 ▬▬▬▬▬▬
If you are interested in sponsoring this channel, please use calendly.com/vfarcic/meet to book a timeslot that suits you, and we'll go over the details. Or feel free to contact me over Twitter or LinkedIn (see below).
▬▬▬▬▬▬ 👋 Contact me 👋 ▬▬▬▬▬▬
➡ Twitter: / vfarcic
➡ LinkedIn: / viktorfarcic
▬▬▬▬▬▬ 🚀 Courses, books, and podcasts 🚀 ▬▬▬▬▬▬
📚 Books and courses: www.devopstoolkitseries.com
🎤 Podcast: www.devopsparadox.com/
💬 Live streams: / devopsparadox
▬▬▬▬▬▬ ⏱ Timecodes ⏱ ▬▬▬▬▬▬
00:00 What are canary deployments?
02:13 Canary deployments process and benefits
04:01 Install Flagger
05:06 Define Canary Deployment Resource
11:10 Initializing Canary Deployments
14:39 Deploy A Canary Release
19:16 Canary Deployments Explained
20:37 Canary Releases Rollback
25:23 Flagger Webhooks, Gating, Alerting, And Monitoring
27:22 Flagger Pros And Cons

Пікірлер: 48
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
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), KZbin tends to delete comments that contain links. Please do not use them in your comments.
@squalazzo
@squalazzo 2 жыл бұрын
great as always, direct to the point! Obviously waiting for the compare with argo rollouts :)
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
Will do, hopefully soon.
@taranpreetsingh5351
@taranpreetsingh5351 2 жыл бұрын
Awesome content as always my man.
@soubinan
@soubinan 2 жыл бұрын
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 жыл бұрын
I already added both suggestions to my TODO list. Let me bump them towards the top :)
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
Dapr is now live: kzbin.info/www/bejne/Y2XWeYism9Ble8k :)
@azeemazim3216
@azeemazim3216 2 жыл бұрын
Eagerly waiting video on linkerd with argo rollout
@timam7580
@timam7580 2 жыл бұрын
If you please create similar tutorial for argo that will be great.
@muhammadardivans.n6675
@muhammadardivans.n6675 2 жыл бұрын
Awesome as always sir👍
@semihural3649
@semihural3649 2 жыл бұрын
Waiting for new video with argo rollout
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
It's on my TODO list. The problem is that the he list is growing faster than I can handle...
@victormattosdimen2449
@victormattosdimen2449 2 жыл бұрын
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 жыл бұрын
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.
@fpvclub7256
@fpvclub7256 2 жыл бұрын
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 жыл бұрын
I'll do that. Adding it to my TODO list... :)
@nnutipa
@nnutipa 2 жыл бұрын
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 жыл бұрын
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 жыл бұрын
@@DevOpsToolkit yeah, I meant Flagger, not Linkerd of course. How does Flagger work with HPA?
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
@@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 жыл бұрын
@@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 жыл бұрын
@@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.
@anshuman2121
@anshuman2121 2 жыл бұрын
Great video again. 1 question, without service mesh is it possible to do canary deployment ?
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
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.
@ranjanapulipati
@ranjanapulipati Жыл бұрын
how do i increase the flagger rollout time ?
@DevOpsToolkit
@DevOpsToolkit Жыл бұрын
Each step in the manifest can define the duration.
@saikrishnapalakollu2575
@saikrishnapalakollu2575 Жыл бұрын
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 Жыл бұрын
@@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.
@farzadmf
@farzadmf 2 жыл бұрын
Didn't quite understand what Linkerd's role is in this scenario, seems like everything is done by Flagger
@DevOpsToolkit
@DevOpsToolkit 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 жыл бұрын
Thank you for the detailed answer. Makes sense
@Pranav-mw3jt
@Pranav-mw3jt Жыл бұрын
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 Жыл бұрын
@@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 5 ай бұрын
I have the same problem can you help me ?
@julianomoraisbarbosa
@julianomoraisbarbosa 2 жыл бұрын
#til
@farzanehaghaie6333
@farzanehaghaie6333 2 жыл бұрын
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.
Service Mesh In Kubernetes Explained
13:06
DevOps Toolkit
Рет қаралды 16 М.
10 Must-Have Kubernetes Tools
18:53
DevOps Toolkit
Рет қаралды 38 М.
Became invisible for one day!  #funny #wednesday #memes
00:25
Watch Me
Рет қаралды 59 МЛН
Heartwarming moment as priest rescues ceremony with kindness #shorts
00:33
Fabiosa Best Lifehacks
Рет қаралды 37 МЛН
How to Secure Kubernetes Clusters with Kubescape and Armo
47:48
DevOps Toolkit
Рет қаралды 10 М.
Progressive Delivery Techniques with Flagger - Stefan Prodan, Weaveworks
32:57
CNCF [Cloud Native Computing Foundation]
Рет қаралды 3,5 М.
What Is Mutual TLS (mTLS), Why Do We Need It, And How Do We Get It?
19:05
Running Event-Driven Pub/Sub Microservices In Kubernetes With Dapr
24:25
Foundations of canary deployments in GKE
11:39
Google Cloud Tech
Рет қаралды 4,2 М.
Kubernetes Canary Deployment (Manual vs Automated)
10:59
Anton Putra
Рет қаралды 10 М.
Отдых для геймера? 😮‍💨 Hiper Engine B50
1:00
Вэйми
Рет қаралды 1,3 МЛН
ГОСЗАКУПОЧНЫЙ ПК за 10 тысяч рублей
36:28
Ремонтяш
Рет қаралды 509 М.
Копия iPhone с WildBerries
1:00
Wylsacom
Рет қаралды 612 М.