这篇文章我们介绍下kubernetes的节点。在kubernetes里面一共有三种节点,分别是master节点、etcd节点和node节点。
1、master节点
这个在前面已经介绍过了,主要是对整个kubernetes集群的管理平台。
2、etcd节点
这个在前面也已经介绍过了,主要是存储整个kubernetes集群的所有配置信息。
3、node节点
即工作节点,主要是运行pod。
下面我们重点从节点控制器、节点自注册、手动管理节点、节点容量来介绍下节点的信息。
一、节点控制器
节点控制器是一个负责管理节点的Kubernetes master组件。节点控制器的作用有很多,主要分为以下几个:
1、节点控制器在注册节点时为节点分配CIDR地址块 2、节点控制器通过云供应商接口检查节点列表中每个节点对象对应的虚拟机是否可用。在云环境中,只要节点状态异常,节点控制器检查其虚拟机在云供应商的状态,如果虚拟机不可用,自动将节点对象从APIServer中删除。 3、节点控制器监控节点的健康状况。当节点出现宕机或者不健康状态时,节点控制器将节点API对象的NodeStatus Condition取值从NodeReady更新为Unknown,然后在等待pod-eviction-timeout时间后,将节点上的所有pod从节点驱逐。
二、节点自注册
节点自注册主要是指node节点,node节点在启动的时候,会自动向master进行注册。类似于微服务里面的服务注册。在节点进行自注册的时候,kubelet的启动参数应该是:--register-node=true。在节点自注册的时候,还会涉及到如下参数:
--kubeconfig:向 apiserver 进行认证时所用身份信息的路径 --cloud-provider:向云供应商读取节点自身元数据 --register-node:自动向 API Server 注册节点 --register-with-taints:注册节点时,为节点添加污点(逗号分隔,格式为 <key>=<value>:<effect> --node-ip:节点的 IP 地址 --node-labels:注册节点时,为节点添加标签 --node-status-update-frequency:向 master 节点发送心跳信息的时间间隔
三、手动管理节点
集群的管理员可以手动的进行节点的管理,好汉:创建和修改节点的api对象。
如果需要手动创建节点,那么在kubelet启动的时候需设置--register-node 设置为 false
如果需要修改节点信息的话,则可以被修改的内容有:
增加/减少标签 标记节点为不可调度(unschedulable)
节点的标签与pod上的节点选择器进行配合,可以控制调度方式。例如:指定某一个pod在某一组节点上运行。
如果不希望某个节点被调度,那么,可以直接执行:kubectl cordon $NODENAME 这个命令,那么当前节点就会变成不可调度,此节点不再接受新的pod,但是当前节点正在运行的pod不受影响
四、接节点容量
节点容量主要是指kubernetes管理的集群资源信息,例如:cpu数量,内存大小等信息。在节点启动的时候,会就进行自注册,自注册就会自动上报当前节点服务器的容量信息。当然这个容量也可以在手动管理节点的时候进行设置。例如虚拟机上cpu是8个,内存是32G,但是只想给kubernetes节点使用4个CPU,8G内存。所以可以直接进行设置。
还没有评论,来说两句吧...