很久没写博客了,终于把重心找回来了,不过没有以前有斗志、有理想、有目标了、慢慢来。你若问我我最近几年的规划是什么,还真不知道。突然发现摧毁一个人真的很简单。k8s也是一遍一遍的从入门到放弃,还是要好好弄弄了。
本文通过《Kubernetes权威指南》的概念部分学习总结
Kubernetes集群管理的两个角色Master、Node
1、Master
Master:Kubernetes里的Master指的是集群控制节点,每个Kubernetes集群里需要有一个Master节点来负责整个集群的管理和控制,基本上Kubernetes的所有控制命令都发给他,他来负责具体的执行过程,在平时执行的命令基本上都是在master节点上运行的。Master通常为一台单独的服务,集群的话3台。
Master节点上运行着一组关键的进程:
1)Kubernetes API Server(kube-apiserver):提供了HTTP Reset接口的关键服务进程,是Kubernetes里所有资源的增、删、改、查等操作的唯一入口,也是集群控制的入口进程。
2)Kubernetes Controller Manager(kube-controller-manager):Kubernetes里所有资源对象的自动化控制中心,资源对象的大总管。
3)Kubernetes Scheduler(kube-schedule):负责资源调度(Pod调度)的进程,相当于调度室。
4)etcd服务:Kubernetes里所有资源对象的数据全部是保存在etcd中的。
2、Node
除了Master,Kubernetes集群中的其他集群被称为Node节点,Node节点可以是物理机,也可以是虚拟机。Node节点才是Kubernetes集群中的工作负载节点,每个Node都会Master分配一些工作负载(Docker容器),当某个Node宕机时,其上的工作负载会被Master自动转移到其他节点上去。
每个Node节点上都运行着以下一组关键进程:
kubelet:负责Pod对应容器的创建、启停等任务,同时与Master节点密切协作,实现集群管理的基本功能。
kube-proxy:实现Kubernetes Service的通信与负责均衡机制的重要组件。
Docker Engine(docker):Docker引擎,负责本机容器创建和管理工作。
Node节点可以在运行期间动态增加到Kubernetes集群中。在默认情况下kubelet会向master注册自己,这也是Kubernetes推荐的Node管理方式。一旦Node被纳入集群管理范围,kubelet进程就会定时向Master节点汇报自身的状态,如操作系统、Docker版本、机器的CPU和内存情况,以及当前有哪些Pod在运行等,这样Master就可以获知每个Node的资源使用情况,并实现高效均衡的资源调度策略。而当某个Node超过指定时间没有汇报信息时,会被Mater认为失联,此时Node的状态就会被标为不可用(Node Ready)随后Master会触发“工作负载大转移”的自动流程。
原文地址:https://www.cnblogs.com/lemon-le/p/11507162.html