Master

Kubernetes集群中的Master节点是集群的控制节点,负责整个集群的管理和控制。针对集群执行的控制命令都是发送给Master节点的。 因为Master节点如此重要,所以Master节点默认是不执行工作负载的。Master节点上运行的主要组件如下:

  • kube-apiserver: kube-apiserver提供HTTP Rest服务,是集群控制的入口
  • kube-controller-manager: 是Kubernetes集群中所有资源对象的自动化控制中心
  • kube-scheduler: 负责Pod的调度

Node

Node节点是Kubernetes集群中的工作负载节点,Node上的工作负载由Master分配,当某个Node宕机时,Master会将上面的工作负载转移到其他节点上去。 Node节点上上运行的主要组件如下:

  • kubelet: 负责Pod的创建、启动、监控、重启、销毁等工作,同时与Master节点协作,实现集群管理的基本功能。kubelet把自己注册到Master节点,当Node节点纳入集群管理的范围后,kubelet进程就定时向Master节点上上报自身的资源情况。Master节点掌握着每个Node节点的资源情况,就可以实施高效的资源调度策略。当某个Node超过指定时间未上报信息,Master会将该Node标记为Not Ready,同时会进行工作负载转移。
  • kube-proxy: 实现Kubernetes Service的通信以及负载均衡。

使用kubeadm向集群中添加node

在Node节点上执行kubeadm join命令,确保Master节点上防火墙开放9898端口(kube-discovery监听端口)。

1kubeadm join --token=10f67a.e80383425484d239 192.168.61.100

如果添加Node节点失败,可以在Node节点上执行以下命令完成清理和重置。

1kubeadm reset
2ifconfig cni0 down
3ip link delete cni0
4ifconfig flannel.1 down
5ip link delete flannel.1
6rm -rf /var/lib/cni/

添加成功后可以在Master节点上使用kubectl get nodes命令查看

1kubectl get nodes
2NAME      STATUS         AGE
3cent0     Ready,master   37m
4cent1     Ready          15m
5cent2     Ready          1m

查看node的详细信息

1kubectl descibe node cent2

在dashboard的Node详细页面可以更直观的查看这些信息,包括:Node的名称、标签、已经分配的系统资源数量和总量(CPU、内存、Pod数量等)。

参考