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: content/en/docs/concepts/architecture/nodes.md
+47-29Lines changed: 47 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,9 +33,9 @@ There are two main ways to have Nodes added to the {{< glossary_tooltip text="AP
33
33
1. The kubelet on a node self-registers to the control plane
34
34
2. You (or another human user) manually add a Node object
35
35
36
-
After you create a Node {{< glossary_tooltip text="object" term_id="object" >}}, or the kubelet on a node self-registers, the
37
-
control plane checks whether the new Node object is valid. For example, if you
38
-
try to create a Node from the following JSON manifest:
36
+
After you create a Node {{< glossary_tooltip text="object" term_id="object" >}},
37
+
or the kubelet on a node self-registers, the control plane checks whether the new Node object is
38
+
valid. For example, if you try to create a Node from the following JSON manifest:
39
39
40
40
```json
41
41
{
@@ -85,19 +85,23 @@ register itself with the API server. This is the preferred pattern, used by mos
85
85
86
86
For self-registration, the kubelet is started with the following options:
87
87
88
-
-`--kubeconfig` - Path to credentials to authenticate itself to the API server.
89
-
-`--cloud-provider` - How to talk to a {{< glossary_tooltip text="cloud provider" term_id="cloud-provider" >}} to read metadata about itself.
90
-
-`--register-node` - Automatically register with the API server.
91
-
-`--register-with-taints` - Register the node with the given list of {{< glossary_tooltip text="taints" term_id="taint" >}} (comma separated `<key>=<value>:<effect>`).
88
+
-`--kubeconfig` - Path to credentials to authenticate itself to the API server.
89
+
-`--cloud-provider` - How to talk to a {{< glossary_tooltip text="cloud provider" term_id="cloud-provider" >}}
90
+
to read metadata about itself.
91
+
-`--register-node` - Automatically register with the API server.
92
+
-`--register-with-taints` - Register the node with the given list of
-`--node-labels` - {{< glossary_tooltip text="Labels" term_id="label" >}} to add when registering the node in the cluster (see label restrictions enforced by the [NodeRestriction admission plugin](/docs/reference/access-authn-authz/admission-controllers/#noderestriction)).
96
-
-`--node-status-update-frequency` - Specifies how often kubelet posts its node status to the API server.
95
+
No-op if `register-node` is false.
96
+
-`--node-ip` - IP address of the node.
97
+
-`--node-labels` - {{< glossary_tooltip text="Labels" term_id="label" >}} to add when registering the node
98
+
in the cluster (see label restrictions enforced by the
are enabled, kubelets are only authorized to create/modify their own Node resource.
101
105
102
106
{{< note >}}
103
107
As mentioned in the [Node name uniqueness](#node-name-uniqueness) section,
@@ -168,8 +172,10 @@ Each section of the output is described below.
168
172
169
173
The usage of these fields varies depending on your cloud provider or bare metal configuration.
170
174
171
-
* HostName: The hostname as reported by the node's kernel. Can be overridden via the kubelet `--hostname-override` parameter.
172
-
* ExternalIP: Typically the IP address of the node that is externally routable (available from outside the cluster).
175
+
* HostName: The hostname as reported by the node's kernel. Can be overridden via the kubelet
176
+
`--hostname-override` parameter.
177
+
* ExternalIP: Typically the IP address of the node that is externally routable (available from
178
+
outside the cluster).
173
179
* InternalIP: Typically the IP address of the node that is routable only within the cluster.
174
180
175
181
@@ -289,7 +295,6 @@ and for updating their related Leases.
289
295
updates to the Node's `.status`. If the Lease update fails, the kubelet retries,
290
296
using exponential backoff that starts at 200 milliseconds and capped at 7 seconds.
291
297
292
-
293
298
## Node controller
294
299
295
300
The node {{< glossary_tooltip text="controller" term_id="controller" >}} is a
@@ -306,6 +311,7 @@ controller deletes the node from its list of nodes.
306
311
307
312
The third is monitoring the nodes' health. The node controller is
308
313
responsible for:
314
+
309
315
- In the case that a node becomes unreachable, updating the NodeReady condition
310
316
of within the Node's `.status`. In this case the node controller sets the
311
317
NodeReady condition to `ConditionUnknown`.
@@ -327,6 +333,7 @@ The node eviction behavior changes when a node in a given availability zone
327
333
becomes unhealthy. The node controller checks what percentage of nodes in the zone
328
334
are unhealthy (NodeReady condition is `ConditionUnknown` or `ConditionFalse`) at
329
335
the same time:
336
+
330
337
- If the fraction of unhealthy nodes is at least `--unhealthy-zone-threshold`
331
338
(default 0.55), then the eviction rate is reduced.
332
339
- If the cluster is small (i.e. has less than or equal to
@@ -391,7 +398,9 @@ for more information.
391
398
392
399
The kubelet attempts to detect node system shutdown and terminates pods running on the node.
393
400
394
-
Kubelet ensures that pods follow the normal [pod termination process](/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination) during the node shutdown.
Graceful node shutdown feature is configured with two [`KubeletConfiguration`](/docs/tasks/administer-cluster/kubelet-config-file/) options:
415
428
*`shutdownGracePeriod`:
416
-
* Specifies the total duration that the node should delay the shutdown by. This is the total grace period for pod termination for both regular and [critical pods](/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/#marking-pod-as-critical).
429
+
* Specifies the total duration that the node should delay the shutdown by. This is the total
430
+
grace period for pod termination for both regular and
* Specifies the duration used to terminate [critical pods](/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/#marking-pod-as-critical) during a node shutdown. This value should be less than `shutdownGracePeriod`.
0 commit comments