kubernetes-handbook/concepts/node.md

38 lines
1.3 KiB
Markdown
Raw Normal View History

2017-06-01 20:45:57 +08:00
# Node
2020-07-12 12:44:39 +08:00
Node 是 Kubernetes 集群的工作节点,可以是物理机也可以是虚拟机。
2017-06-01 20:45:57 +08:00
2020-07-12 12:44:39 +08:00
## Node 的状态
2017-06-01 20:45:57 +08:00
2020-07-12 12:44:39 +08:00
Node 包括如下状态信息:
2017-06-01 20:45:57 +08:00
- Address
2020-07-12 12:44:39 +08:00
- HostName可以被 kubelet 中的 `--hostname-override` 参数替代。
- ExternalIP可以被集群外部路由到的 IP 地址。
- InternalIP集群内部使用的 IP集群外部无法访问。
2017-06-01 20:45:57 +08:00
- Condition
2020-07-12 12:44:39 +08:00
- OutOfDisk磁盘空间不足时为 `True`
- ReadyNode controller 40 秒内没有收到 node 的状态报告为 `Unknown`,健康为 `True`,否则为 `False`
- MemoryPressure当 node 有内存压力时为 `True`,否则为 `False`
- DiskPressure当 node 有磁盘压力时为 `True`,否则为 `False`
2017-06-01 20:45:57 +08:00
- Capacity
- CPU
- 内存
2020-07-12 12:44:39 +08:00
- 可运行的最大 Pod 个数
- Info节点的一些版本信息如 OS、kubernetes、docker 等
2017-06-01 20:45:57 +08:00
2020-07-12 12:44:39 +08:00
## Node 管理
2017-06-01 20:45:57 +08:00
2020-07-12 12:44:39 +08:00
禁止 Pod 调度到该节点上。
2017-06-01 20:45:57 +08:00
```bash
2017-06-01 20:45:57 +08:00
kubectl cordon <node>
```
2020-07-12 12:44:39 +08:00
驱逐该节点上的所有 Pod。
2017-06-01 20:45:57 +08:00
```bash
2017-06-01 20:45:57 +08:00
kubectl drain <node>
```
2020-07-12 12:44:39 +08:00
该命令会删除该节点上的所有 PodDaemonSet 除外),在其他 node 上重新启动它们,通常该节点需要维护时使用该命令。直接使用该命令会自动调用`kubectl cordon <node>`命令。当该节点维护完成,启动了 kubelet 后,再使用`kubectl uncordon <node>` 即可将该节点添加到 kubernetes 集群中。