k8s简介
是一个集群组合多台主机的资源,整合成一个大的资源池并统一对外提供计算存储等能力的集群(说白了就是我们找许多的主机,前提是每台主机都安装上kubernetes的应用程序,并通过应用程序协同工作,把多个主机当一个主机来使用);
主机是分角色的,集群中有两种的模型,一种是P2P(类似redis的集群,没有中心节点,每一个节点都可以单独接受请求),第二种就是中心节点的请求(如:mysql的主从复制);k8s属于有中心节点架构的集群系统(master-nodes(worker)模型)
kubernetes的架构,一般有3个masters(彼此之间做高可用),主节点是唯一的入口,各nodes节点每一个都是来贡献一部分计算、存储能力等相关资源的节点,简单点就是运行容器的节点
k8s集群内部是如何运行的呢?
首先一个客户端请求先发送给masters,把创建容器的请求交给masters,masters之上利用调度器去分析各nodes现有资源的状态,找一个最佳适配运行用户所请求容器的节点并把他调度上去,nodes本地docker或其他容器引擎负责把容器启动。
APIServer : 类似mysql数据库的3306端口,访问3306端口是通过mysql的客户端或者php、python去链接3306端口;这样就叫做APIServer; kubernetes的masters之上的一个组件就叫做APIServer,只负责接受请求或者解析请求、处理请求
调度器:负责每一个nodes之上的计算,CPU、内存、存储资源,并根据用户所创建容器所需的资源大小进行评估和分配;kubernetes设计了一个两级的调度,第一步先做预选(评估)ÿ