sync en content/zh/docs/concepts/architecture/nodes.md (#18316)
This commit is contained in:
committed by
Kubernetes Prow Robot
parent
ce21061ba1
commit
dd97b09cbf
@@ -150,26 +150,13 @@ Kubernetes causes all the Pod objects running on the node to be deleted from the
|
|||||||
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
In version 1.12, `TaintNodesByCondition` feature is promoted to beta, so node lifecycle controller automatically creates
|
The node lifecycle controller automatically creates
|
||||||
[taints](/docs/concepts/configuration/taint-and-toleration/) that represent conditions.
|
[taints](/docs/concepts/configuration/taint-and-toleration/) that represent conditions.
|
||||||
Similarly the scheduler ignores conditions when considering a Node; instead
|
When the scheduler is assigning a Pod to a Node, the scheduler takes the Node's taints
|
||||||
it looks at the Node's taints and a Pod's tolerations.
|
into account, except for any taints that the Pod tolerates.
|
||||||
-->
|
-->
|
||||||
在版本 1.12 中,`TaintNodesByCondition` 功能已升级为 Beta 功能,因此节点生命周期控制器会自动创建代表条件的 [污点](/docs/concepts/configuration/taint-and-toleration/)。同样,scheduler 在考虑节点时会忽略条件,而是查看节点的污点和 Pod 的容忍度。
|
节点生命周期控制器会自动创建代表条件的[污点](/docs/concepts/configuration/taint-and-toleration/)。
|
||||||
|
当 scheduler 将 Pod 分配给节点时,scheduler 会考虑节点上的污点,但是 Pod 可以容忍的污点除外。
|
||||||
<!--
|
|
||||||
Now users can choose between the old scheduling model and a new, more flexible scheduling model.
|
|
||||||
A Pod that does not have any tolerations gets scheduled according to the old model. But a Pod that
|
|
||||||
tolerates the taints of a particular Node can be scheduled on that Node.
|
|
||||||
-->
|
|
||||||
现在用户可以在旧的调度模型和新的、更灵活的调度模型之间进行选择,一个没有任何容忍度的 Pod 会根据旧模型进行调度。但是能够容忍特定节点的污点的 Pod 则可以在该节点上调度执行。
|
|
||||||
|
|
||||||
{{< caution >}}
|
|
||||||
<!--
|
|
||||||
Enabling this feature creates a small delay between the
|
|
||||||
time when a condition is observed and when a taint is created. This delay is usually less than one second, but it can increase the number of Pods that are successfully scheduled but rejected by the kubelet.
|
|
||||||
-->启用此功能会在观察条件与到产生污点之间产生较小的延迟。此延迟通常少于一秒,但会增加成功调度但被 kubelet 拒绝的 Pod 数量。
|
|
||||||
{{< /caution >}}
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
### Capacity and Allocatable {#capacity}
|
### Capacity and Allocatable {#capacity}
|
||||||
@@ -295,24 +282,47 @@ checks the state of each node every `--node-monitor-period` seconds.
|
|||||||
第三个是监控节点的健康情况。节点控制器负责在节点不能访问时(也即是节点控制器因为某些原因没有收到心跳,例如节点宕机)将它的 NodeStatus 的 NodeReady 状态更新为 ConditionUnknown。后续如果节点持续不可访问,节点控制器将删除节点上的所有 pods(使用优雅终止)。(默认情况下 40s 开始报告 ConditionUnknown,在那之后 5m 开始删除 pods。)节点控制器每隔 `--node-monitor-period` 秒检查每个节点的状态。
|
第三个是监控节点的健康情况。节点控制器负责在节点不能访问时(也即是节点控制器因为某些原因没有收到心跳,例如节点宕机)将它的 NodeStatus 的 NodeReady 状态更新为 ConditionUnknown。后续如果节点持续不可访问,节点控制器将删除节点上的所有 pods(使用优雅终止)。(默认情况下 40s 开始报告 ConditionUnknown,在那之后 5m 开始删除 pods。)节点控制器每隔 `--node-monitor-period` 秒检查每个节点的状态。
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
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)).
|
|
||||||
-->
|
-->
|
||||||
在 1.13 之前的 Kubernetes 版本中,NodeStatus 是来自节点的心跳信号。从 1.14 开始,默认情况下已启用节点租赁功能作为 beta 功能(功能特性开关 `NodeLease`、[KEP-0009](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/0009-node-heartbeat.md))。
|
#### 心跳机制
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
When node lease feature is enabled, each node has an associated `Lease` object in
|
Heartbeats, sent by Kubernetes nodes, help determine the availability of a node.
|
||||||
`kube-node-lease` namespace that is renewed by the node periodically, and both
|
There are two forms of heartbeats: updates of `NodeStatus` and the
|
||||||
NodeStatus and node lease are treated as heartbeats from the node. Node leases
|
[Lease object](/docs/reference/generated/kubernetes-api/{{< latest-version >}}/#lease-v1-coordination-k8s-io).
|
||||||
are renewed frequently while NodeStatus is reported from node to master only
|
Each Node has an associated Lease object in the `kube-node-lease`
|
||||||
when there is some change or enough time has passed (default is 1 minute, which
|
{{< glossary_tooltip term_id="namespace" text="namespace">}}.
|
||||||
is longer than the default timeout of 40 seconds for unreachable nodes). Since
|
Lease is a lightweight resource, which improves the performance
|
||||||
node lease is much more lightweight than NodeStatus, this feature makes node
|
of the node heartbeats as the cluster scales.
|
||||||
heartbeat significantly cheaper from both scalability and performance
|
|
||||||
perspectives.
|
|
||||||
-->
|
-->
|
||||||
启用节点租赁功能后,每个节点在 `kube-node-lease` 命名空间中都有一个关联的 `Lease` 租赁对象,该对象由节点定期更新,并且 NodeStatus 和节点租赁都被视为来自节点的心跳信号。仅当发生某些更改或经过了足够的时间(默认值为 1 分钟,比无法访问的节点的默认超时 40 秒)时,才会频繁更新节点租约,同时将 NodeStatus 从节点报告给主节点。由于节点租赁比 NodeStatus 轻得多,因此从可伸缩性和性能的角度来看,此功能使节点心跳明显便利。
|
Kubernetes 节点发送的心跳有助于确定节点的可用性。
|
||||||
|
心跳有两种形式:`NodeStatus` 和 [`Lease` 对象](/docs/reference/generated/kubernetes-api/{{< latest-version >}}/#lease-v1-coordination-k8s-io)。
|
||||||
|
每个节点在 `kube-node-lease`{{< glossary_tooltip term_id="namespace" text="namespace">}} 中都有一个关联的 `Lease` 对象。
|
||||||
|
`Lease` 是一种轻量级的资源,可在集群扩展时提高节点心跳机制的性能。
|
||||||
|
|
||||||
|
<!--
|
||||||
|
The kubelet is responsible for creating and updating the `NodeStatus` and
|
||||||
|
a Lease object.
|
||||||
|
-->
|
||||||
|
kubelet 负责创建和更新 `NodeStatus` 和 `Lease` 对象。
|
||||||
|
|
||||||
|
<!--
|
||||||
|
- 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.
|
||||||
|
-->
|
||||||
|
- 当状态发生变化时,或者在配置的时间间隔内没有更新时,kubelet 会更新 `NodeStatus`。
|
||||||
|
`NodeStatus` 更新的默认间隔为 5 分钟(比无法访问的节点的 40 秒默认超时时间长点)。
|
||||||
|
- kubelet 会每 10 秒(默认更新间隔时间)创建并更新其 `Lease` 对象。`Lease` 更新独立于 `NodeStatus` 更新而发生。
|
||||||
|
|
||||||
|
<!--
|
||||||
|
#### 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
|
||||||
|
|||||||
Reference in New Issue
Block a user