You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/node-termination.md
+37-1
Original file line number
Diff line number
Diff line change
@@ -15,4 +15,40 @@ where we compare the creation timestamps of each node.
15
15
16
16
This method is useful to ensure there are always new nodes in the cluster. If you want to deploy a configuration change
17
17
to your nodes, you can use Escalator to cycle the nodes by terminating the oldest first until all of the nodes are
18
-
using the latest configuration.
18
+
using the latest configuration.
19
+
20
+
### Annotating nodes / Stopping termination of selected nodes
21
+
22
+
For most cases when wanting to exclude a node from termination for maintenance, you should first consider the [**cordon function**](./scale-process).
23
+
Cordoning a node filters it out from calculation **and** scaling processes (tainting and deletion). Additionally, cordoning a node in Kubernetes marks it Unschedule-able, so it won't accept workloads while in this state.
24
+
25
+
In the cases where Cordoning is not acceptable, because you want your node to continue to receive workloads but not be deleted, you can annotate the node to tell escalator to treat it as normal, except for stopping it from being deleted.
26
+
This means the node will still factor into scaling calculations, and get tainted, untainted as the cluster scales, but if it is in a situation where it would be deleted normally, escalator will skip it and leave it active.
27
+
28
+
#### To annotate a node:
29
+
30
+
**Annotation key:**`atlassian.com/no-delete`
31
+
32
+
The annotation value can be any **non empty** string that conforms to the Kubernetes annotation value standards. This can usually indicate the reason for annotation which will appear in logs
33
+
34
+
**Example:**
35
+
36
+
`kubectl edit node <node-name>`
37
+
38
+
**Simple example:**
39
+
```yaml
40
+
apiVersion: v1
41
+
kind: Node
42
+
metadata:
43
+
annotations:
44
+
atlassian.com/no-delete: "true"
45
+
```
46
+
47
+
**An elaborate reason:**
48
+
```yaml
49
+
apiVersion: v1
50
+
kind: Node
51
+
metadata:
52
+
annotations:
53
+
atlassian.com/no-delete: "testing some long running bpf tracing"
0 commit comments