Node
除了 Master,Kubernetes 集群中的其他机器被称为 Node 节点。
与 Master 一样,Node 节点可以是一台物理主机,也可以是一台虚拟机。
Node 节点是 Kubernetes 集群中的工作负载节点,每个 Node 都会被Master 分配一些工作负载,当某个 Node 宕机时,其上的工作负载会被 Master 自动转移到其他节点上去。
Node 节点可以在运行期间动态增加到 Kubernetes 集群中,一旦 Node 被纳入集群管理范围,kubelet 进程就会定时向 Master 节点汇报自身的情报,例如操作系统、Docker 版本、机器的 CPU 和内存情况,以及之前有哪些 Pod 在运行等,这样 Master 可以获知每个 Node 的资源使用情况,并实现高效均衡的资源调度策略。而某个 Node 超过指定时间不上报信息时,会被 Master 判定为“失联”,Node 的状态被标记为不可用(Not Ready),随后 Master 会触发“工作负载大转移”的自动流程。
关键进程
每个 Node 节点上都运行着以下一组关键进程:
kubelet
负责 Pod 对应的容器的创建、启停等任务,对容器进行健康检查及监控,同时负责上报节点和节点上面 Pod 的状态。
kube-proxy
负责各 Pod 之间的通信和负载均衡,将指定的流量分发到后端正确的机器上。
Docker Engine(docker)
Docker 引擎,负责本机的容器创建和管理工作。
CoreDNS
用于 Kubernetes 集群内部 Service 的解析,可以让 Pod 把 Service 名称解析成 Service 的 IP,然后通过 Service 的 IP 地址连接到对应的应用上。
Calico
符合 CNI 标准的一个网络插件,它负责给每个 Pod 分配一个不会重复的 IP,并且把每个节点当作一个“路由器”,这样一个节点的 Pod 就可以通过 IP 地址访问其他节点的 Pod。
相关命令
我们可以执行下述命令查看集群中有多少个 Node:
然后,通过 kubectl describe node <node_name> 来查看某个 Node 的详细信息:
最后更新于
这有帮助吗?