Production-Grade Container Scheduling and Management
Go to file
Kubernetes Submit Queue 6a28658ca1 Merge pull request #44058 from caesarxuchao/background-cascading
Automatic merge from submit-queue (batch tested with PRs 44058, 48085, 48077, 48076, 47823)

Make background garbage collection cascading

Fix #44046, fix #47843 where user reported that the garbage collector didn't delete pods when a deployment was deleted with PropagationPolicy=Background.

The cause is that when propagating background garbage collection request, the garbage collector deletes dependents with DeleteOptions.PropagationPolicy=nil, which means the default GC policy of a resource (defined by its REST strategy) and the existing GC-related finalizers will decide how the delete request is propagated further. Unfortunately, the default GC policy for RS is orphaning, so the pods are behind when a deployment is deleted.

This PR changes the garbage collector to delete dependents with DeleteOptions.PropagationPolicy=Background when the owner is deleted in background. This means the dependent's existing GC finalizers will be overridden, making orphaning less flexible (see this made-up [case](https://github.com/kubernetes/kubeadm/issues/149#issuecomment-278942012)). I think sacrificing the flexibility of orphaning is worthwhile, because making the behavior of background garbage collection matching users' expectation is more important.

cc @lavalamp @kargakis @krmayankk @enisoc 

```release-note
The garbage collector now cascades deletion properly when deleting an object with propagationPolicy="background". This resolves issue [#44046](https://github.com/kubernetes/kubernetes/issues/44046), so that when a deployment is deleted with propagationPolicy="background", the garbage collector ensures dependent pods are deleted as well.
```
2017-06-26 15:29:25 -07:00
.github
api
build Move the workload e2e tests to it's own package 2017-06-26 09:56:20 +08:00
cluster Merge pull request #47170 from ktsakalozos/bug/restart 2017-06-26 14:03:06 -07:00
cmd Merge pull request #47514 from jsafrane/move-savepodtofile 2017-06-26 11:40:58 -07:00
docs Merge pull request #46151 from verb/kubectl-featuregate 2017-06-23 05:00:35 -07:00
examples Merge pull request #46878 from cdrage/update-cockroach 2017-06-24 04:15:52 -07:00
federation Merge pull request #48014 from FengyunPan/Remove-duplicate-constants 2017-06-25 03:30:09 -07:00
Godeps Merge pull request #47940 from Random-Liu/update-cadvisor 2017-06-23 19:01:35 -07:00
hack Merge pull request #47936 from caesarxuchao/test-api-dependency 2017-06-24 05:15:40 -07:00
logo
pkg Merge pull request #44058 from caesarxuchao/background-cascading 2017-06-26 15:29:25 -07:00
plugin Merge pull request #47225 from NickrenREN/fix-operation 2017-06-25 19:00:25 -07:00
staging Merge pull request #48036 from hongchaodeng/master 2017-06-26 12:52:39 -07:00
test Merge pull request #47971 from yujuhong/bump-usage-limit 2017-06-26 11:40:51 -07:00
third_party
translations
vendor Merge pull request #47940 from Random-Liu/update-cadvisor 2017-06-23 19:01:35 -07:00
.bazelrc
.gazelcfg.json
.generated_files
.gitattributes
.gitignore
BUILD.bazel
CHANGELOG.md Update CHANGELOG.md for v1.7.0-rc.1. 2017-06-25 00:12:57 +02:00
code-of-conduct.md
CONTRIBUTING.md
labels.yaml
LICENSE
Makefile
Makefile.generated_files
OWNERS
OWNERS_ALIASES
README.md
Vagrantfile
WORKSPACE

Kubernetes

Submit Queue Widget GoDoc Widget


Kubernetes is an open source system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications.

Kubernetes builds upon a decade and a half of experience at Google running production workloads at scale using a system called Borg, combined with best-of-breed ideas and practices from the community.

Kubernetes is hosted by the Cloud Native Computing Foundation (CNCF). If you are a company that wants to help shape the evolution of technologies that are container-packaged, dynamically-scheduled and microservices-oriented, consider joining the CNCF. For details about who's involved and how Kubernetes plays a role, read the CNCF announcement.


To start using Kubernetes

See our documentation on kubernetes.io.

Try our interactive tutorial.

Take a free course on Scalable Microservices with Kubernetes.

To start developing Kubernetes

The community repository hosts all information about building Kubernetes from source, how to contribute code and documentation, who to contact about what, etc.

If you want to build Kubernetes right away there are two options:

You have a working Go environment.
$ go get -d k8s.io/kubernetes
$ cd $GOPATH/src/k8s.io/kubernetes
$ make
You have a working Docker environment.
$ git clone https://github.com/kubernetes/kubernetes
$ cd kubernetes
$ make quick-release

If you are less impatient, head over to the developer's documentation.

Support

If you need support, start with the troubleshooting guide and work your way through the process that we've outlined.

That said, if you have questions, reach out to us one way or another.

Analytics