StatefulSet eviction
This commit is contained in:
parent
5f386f8807
commit
5fd5155c3a
@ -744,12 +744,12 @@ spec:
|
||||
* https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
|
||||
* [NFS dynamic volume provisioning deployed](#pv-nfs)
|
||||
|
||||
**Be careful:** *StatefulSets* are designed for stateful applications (like databases). To avoid split-brain scenarios StatefulSets behave as static as possible. If a node goes down, the StatefulSet controller will not reschedule the pods to another functioning nodes! This only happens to stateless *Deployments*! In this case you need to force the rescheduling by hand like this:
|
||||
**Be careful:** *StatefulSets* are designed for stateful applications (like databases). To avoid split-brain scenarios StatefulSets behave as static as possible. If a node goes down, the StatefulSet controller will reschedule the pods to another nodes, which can meet the requirements! If you want to force a re-scheduling:
|
||||
`kubectl delete pod web-1 --grace-period=0 --force`
|
||||
|
||||
More details on this can be found [here](https://kubernetes.io/docs/tasks/run-application/force-delete-stateful-set-pod/)
|
||||
|
||||
If you want DaemonSet-like Node-affinity on StatefulSets then read [this](https://medium.com/@johnjjung/building-a-kubernetes-daemonstatefulset-30ad0592d8cb)
|
||||
If you want DaemonSet-like Node-affinity with StatefulSets then read [this](https://medium.com/@johnjjung/building-a-kubernetes-daemonstatefulset-30ad0592d8cb)
|
||||
```
|
||||
---
|
||||
apiVersion: v1
|
||||
@ -851,7 +851,7 @@ web-2 1/1 Running 0 26
|
||||
ds-test-c6xx8 1/1 Running 0 18m
|
||||
ds-test-w45dv 1/1 Running 5 28h
|
||||
```
|
||||
Kubernetes knows something like a `--pod-eviction-timeout`, which is a grace period (**default: 5 minutes**) for deleting pods on failed nodes. This timeout is useful to keep pods on nodes, which are rebooted in term of maintenance reasons. So, first of all, nothing happens to the pods on failed nodes until *pod eviction timeout* exceeded. If the *pod eviction period* times out, Kubernetes reschedules *stateless Deployments* to working nodes. *DaemonSets* as well as *StatefulSets* will not be rescheduled on other nodes at all.
|
||||
Kubernetes knows something like a `--pod-eviction-timeout`, which is a grace period (**default: 5 minutes**) for deleting pods on failed nodes. This timeout is useful to keep pods on nodes, which are rebooted in term of maintenance reasons. So, first of all, nothing happens to the pods on failed nodes until *pod eviction timeout* exceeded. If the *pod eviction period* times out, Kubernetes re-schedules *workloads* (Deployments, StatefulSets) to working nodes. *DaemonSets* will not be re-scheduled on other nodes at all.
|
||||
|
||||
Docs: https://kubernetes.io/docs/concepts/scheduling-eviction/eviction-policy/
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user