Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support native blue/green deployments #33462

Closed
F21 opened this issue Sep 26, 2016 · 10 comments
Closed

Support native blue/green deployments #33462

F21 opened this issue Sep 26, 2016 · 10 comments
Labels
area/app-lifecycle area/workload-api/deployment lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. sig/apps Categorizes an issue or PR as relevant to SIG Apps.

Comments

@F21
Copy link

F21 commented Sep 26, 2016

It would be really cool if kubernetes can have blue/green deployments built-in in addition to the rolling updates currently available.

This would allow for the ability to atomically update an app without the risk of clients connecting to the app seeing different versions.

@adohe-zz
Copy link

@F21 would you mind give a more deep explanation? how would you expect this?

@F21
Copy link
Author

F21 commented Sep 26, 2016

Let's say we have an app deployed as version 1. If we ask kubernetes to perform a rolling update to version 2, my understanding is that v2 would be able to serve traffic before all of v1 is removed. That means that we will have a small window where v1 and v2 are both serving traffic.

With blue/green deployments, let's say we initially deployed v1 (blue). We then ask kubernetes to deploy v2 (green). However, v2 does not serve any traffic yet and kubernetes does not perform a rolling update. Instead, it leaves v1 alone and lets it continue serving, and deploys all instances of v2. It then uses health checks to check if all of v2 is healthy, and when it is ready, it cuts over all traffic to v2. At this point, it then deletes all instances of v1.

@luxas
Copy link
Member

luxas commented Sep 26, 2016

That would be a nice feature indeed. cc @kubernetes/deployment

@0xmichalis
Copy link
Contributor

It would be easier to add another strategy natively once we have custom strategies and people cannot come up with custom BG easily on their own. #14510

@Haybu
Copy link

Haybu commented Feb 2, 2017

@Kargakis does this suggest that BG is a strategy now is supported ? or it is still underway feature ?

@0xmichalis
Copy link
Contributor

@Haybu no, BG is not supported natively and I am not sure this is going to happen anytime soon if at all in the core. We have a couple of issues for implementing custom strategies: #39337 #14510
You can also join Monday meetings of sig-apps if you want to discuss this.

@woopstar
Copy link
Member

woopstar commented Feb 2, 2017

For inspiration, we started to build our own BG deployment setup which is integrated into our bamboo deployment process.

Feel free to have a look at https://github.com/pasientskyhosting/kubernetes-blue-green-deploy

Please be aware this is still in beta.

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

Prevent issues from auto-closing with an /lifecycle frozen comment.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or @fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 20, 2017
@fejta-bot
Copy link

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or @fejta.
/lifecycle rotten
/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Jan 19, 2018
@bgrant0607
Copy link
Member

This is the domain of higher-level deployment pipelines and service meshes. It's not a deployment strategy that can be implemented in our workload APIs alone.

We're aware of the use case, but I'm going to close this as being out of scope here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/app-lifecycle area/workload-api/deployment lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. sig/apps Categorizes an issue or PR as relevant to SIG Apps.
Projects
None yet
Development

No branches or pull requests