Promote NodeLease feature to GA (#17189)
This commit is contained in:
committed by
Bob Killen
parent
b04abcfb61
commit
1a884b1f97
@@ -172,18 +172,28 @@ to be unreachable. (The default timeouts are 40s to start reporting
|
|||||||
ConditionUnknown and 5m after that to start evicting pods.) The node controller
|
ConditionUnknown and 5m after that to start evicting pods.) The node controller
|
||||||
checks the state of each node every `--node-monitor-period` seconds.
|
checks the state of each node every `--node-monitor-period` seconds.
|
||||||
|
|
||||||
In versions of Kubernetes prior to 1.13, NodeStatus is the heartbeat from the
|
#### Heartbeats
|
||||||
node. Node lease feature is enabled by default since 1.14 as a beta feature
|
|
||||||
(feature gate `NodeLease`, [KEP-0009](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/0009-node-heartbeat.md)).
|
Heartbeats, sent by Kubernetes nodes, help determine the availability of a node.
|
||||||
When node lease feature is enabled, each node has an associated `Lease` object in
|
There are two forms of heartbeats: updates of `NodeStatus` and the
|
||||||
`kube-node-lease` namespace that is renewed by the node periodically, and both
|
[Lease object](/docs/reference/generated/kubernetes-api/{{< latest-version >}}/#lease-v1-coordination-k8s-io).
|
||||||
NodeStatus and node lease are treated as heartbeats from the node. Node leases
|
Each Node has an associated Lease object in the `kube-node-lease`
|
||||||
are renewed frequently while NodeStatus is reported from node to master only
|
{{< glossary_tooltip term_id="namespace" text="namespace">}}.
|
||||||
when there is some change or enough time has passed (default is 1 minute, which
|
Lease is a lightweight resource, which improves the performance
|
||||||
is longer than the default timeout of 40 seconds for unreachable nodes). Since
|
of the node heartbeats as the cluster scales.
|
||||||
node lease is much more lightweight than NodeStatus, this feature makes node
|
|
||||||
heartbeat significantly cheaper from both scalability and performance
|
The kubelet is responsible for creating and updating the `NodeStatus` and
|
||||||
perspectives.
|
a Lease object.
|
||||||
|
|
||||||
|
- The kubelet updates the `NodeStatus` either when there is change in status,
|
||||||
|
or if there has been no update for a configured interval. The default interval
|
||||||
|
for `NodeStatus` updates is 5 minutes (much longer than the 40 second default
|
||||||
|
timeout for unreachable nodes).
|
||||||
|
- The kubelet creates and then updates its Lease object every 10 seconds
|
||||||
|
(the default update interval). Lease updates occur independently from the
|
||||||
|
`NodeStatus` updates.
|
||||||
|
|
||||||
|
#### Reliability
|
||||||
|
|
||||||
In Kubernetes 1.4, we updated the logic of the node controller to better handle
|
In Kubernetes 1.4, we updated the logic of the node controller to better handle
|
||||||
cases when a large number of nodes have problems with reaching the master
|
cases when a large number of nodes have problems with reaching the master
|
||||||
|
|||||||
@@ -108,8 +108,6 @@ different Kubernetes components.
|
|||||||
| `LocalStorageCapacityIsolationFSQuotaMonitoring` | `false` | Alpha | 1.15 | |
|
| `LocalStorageCapacityIsolationFSQuotaMonitoring` | `false` | Alpha | 1.15 | |
|
||||||
| `MountContainers` | `false` | Alpha | 1.9 | |
|
| `MountContainers` | `false` | Alpha | 1.9 | |
|
||||||
| `NodeDisruptionExclusion` | `false` | Alpha | 1.16 | |
|
| `NodeDisruptionExclusion` | `false` | Alpha | 1.16 | |
|
||||||
| `NodeLease` | `false` | Alpha | 1.12 | 1.13 |
|
|
||||||
| `NodeLease` | `true` | Beta | 1.14 | |
|
|
||||||
| `NonPreemptingPriority` | `false` | Alpha | 1.15 | |
|
| `NonPreemptingPriority` | `false` | Alpha | 1.15 | |
|
||||||
| `PodOverhead` | `false` | Alpha | 1.16 | - |
|
| `PodOverhead` | `false` | Alpha | 1.16 | - |
|
||||||
| `PodShareProcessNamespace` | `false` | Alpha | 1.10 | 1.11 |
|
| `PodShareProcessNamespace` | `false` | Alpha | 1.10 | 1.11 |
|
||||||
@@ -221,6 +219,9 @@ different Kubernetes components.
|
|||||||
| `MountPropagation` | `false` | Alpha | 1.8 | 1.9 |
|
| `MountPropagation` | `false` | Alpha | 1.8 | 1.9 |
|
||||||
| `MountPropagation` | `true` | Beta | 1.10 | 1.11 |
|
| `MountPropagation` | `true` | Beta | 1.10 | 1.11 |
|
||||||
| `MountPropagation` | `true` | GA | 1.12 | - |
|
| `MountPropagation` | `true` | GA | 1.12 | - |
|
||||||
|
| `NodeLease` | `false` | Alpha | 1.12 | 1.13 |
|
||||||
|
| `NodeLease` | `true` | Beta | 1.14 | 1.16 |
|
||||||
|
| `NodeLease` | `true` | GA | 1.17 | - |
|
||||||
| `PersistentLocalVolumes` | `false` | Alpha | 1.7 | 1.9 |
|
| `PersistentLocalVolumes` | `false` | Alpha | 1.7 | 1.9 |
|
||||||
| `PersistentLocalVolumes` | `true` | Beta | 1.10 | 1.13 |
|
| `PersistentLocalVolumes` | `true` | Beta | 1.10 | 1.13 |
|
||||||
| `PersistentLocalVolumes` | `true` | GA | 1.14 | - |
|
| `PersistentLocalVolumes` | `true` | GA | 1.14 | - |
|
||||||
|
|||||||
Reference in New Issue
Block a user