kubernetes-handbook/concepts/node.md

39 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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