~阿弥陀佛~

人生能有多少天是按照自己的想法去活着

kubernetes组件说明

1.       Borg架构

                                               

BorgMaster: 负责请求和分发,是整个集群的大脑 ,为了避免单节点故障会有很多副本,并且副本一般以 3  5  7  9个,不能是2 4 6 8,防止出现22平无法决胜的情况、

          访问方式,  web browsers, command-line tools, borgcfg, config file  浏览器命令行以及文件的读取方式,这三种方式会被接入到borgmaster,它去理解请求后作分发

 

Borglet:真正工作的节点。如果有对应的容器要运行的话是该组件提供。

 

Scheduler: 分发任务,这里并非schedulerborglet去进行交互,而是写入至paxos(谷歌的一个数据库,并且borglet会在该数据库中进行监听,如果有对borglet的请求,它会取出进行消费)

 

2.       K8S 架构

C/S结构


Master节点

Scheduler:  调度器,分发任务到合适的node里,但是与borg写入到paxos数据库中不同,K8S中的scheduler会将任务交给APIserver, APIserver在去负责将请求写入到etcd,换言之,scheduler不会与etcd直接进行交互

Replication controller:controllermanager 控制器,维护副本数目或者叫做期望值,比如想要一个容器运行几个副本,一旦副本数不满足期望值,RC要负责将副本数申请到期望创建对应的pod

Apiserver一切服务的访问入口,控制器,调度器,kubectl(命令行管理工具),webetcd都需要跟其进行交互,因此apiserver非常繁忙,为了减轻其压力,每个组件在本地会生成一定的缓存。并不需要每件事情都要到apiserver去申请(比如一个项目组,最忙的是谁,不是你,不是需求不是测试研发,是项目经理,为了减轻项目经理的压力,你们的很多事情需要排一个轻重缓急)

Etcd:  类似于paxos数据库,叫做键值对数据库,采用go语言编写,起到了k8s集群的持久化方案。 官方将它定位成一个可信赖的分布式键值存储服务,它能够为整个分布式集群存储一些关键数据,协助分布式集群的正常运转(保存集群的需要持久化的配置文件配置信息,一旦节点死亡,会借助etcd里的信息进行恢复)。官方为了让etcd能够持久化不会造成单节点故障,所以它天生支持集群化,不需要其他组件参与进来就能实现自己的集群化方案,比如mysql如果要实现读写分离需要借助amiba中间件

     etcd版本: V2 V3

           V2 V2会将所有的数据写入到内存中,kuvernetes v1.11之前版本支持v2

           V3 引入本地的卷的持久化操作,关机后并不会造成数据损坏。V1.11之后版本支持并弃用V2

采用http协议进行一个CS结构的构建服务,K8S也是采用http协议进行CS结构的开发。因为http协议天生支持很多操作方式比如put, get ,change包括授权认证,因此没有必要再采用标准的tcp协议开发一系列的认证流程。 Raft,读写信息的存储,并且为了防止信息出现损坏,会有WAL(预写日志),如果你要对读写信息进行更改,需要先生成一个日志进行存储,并且会定时对这些日志进行完整的备份,raft会实时的将这些日志写入到本地磁盘中

 

Node节点

Kubelet:  直接跟容器引擎交互实现容器的生命周期管理,CRIconrtainer running interface),容器运行接口, kuberlet会与docker进行交互操作docker去创建对应容器,维持pod生命周期

Kube proxy 负责写入规则至iptables,ipvs实现服务映射访问,,换言之,SVC负载的组件是通过proxy去完成的,podpod之间的访问包括负载均衡需要借助kuve proxy,它的默认操作对象是操作firewall去实现pod的映射,并且新版本中支持IPVS

Docker 主流容器引擎

 

其他插件说明

CoreDNS: 可以为集群中的SVC创建一个域名IP的对应关系解析

DashboardB/S结构的访问, K8S集群提供一个B/S结构的访问体系

Ingress controller: 官方集群只能实现四层代理,ingress可以实现七层代理也就是可以根据为我们的主机名根据域名进行负载均衡

Federation: 提供一个可以跨集群中心多K8S统一管理功能

Prometheus:  提供一个K8S集群的监控能力。

ELK提供K8S集群日志统一分析介入平台。

Next Post

Previous Post

Leave a Reply

© 2021 ~阿弥陀佛~

ICP备案号: 京ICP备19038630号

版权所有@ 王力翔

耗时 0.196 秒 | 查询 41 次 | 内存 22.33 MB