侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

4-kubernetes-总体架构

2023-11-05 星期日 / 0 评论 / 0 点赞 / 25 阅读 / 4199 字

1.kubernetes集群有两类节点组成:Master和Node,在Master上运行etcd,apiserver,controller Manager和scheduler四个组件,其中后三个组件构

    1.kubernetes集群有两类节点组成:Master和Node,在Master上运行etcd,apiserver,controller Manager和scheduler四个组件,其中后三个组件构成了kubernetes的总控中心,负责对集群中所有资源进行管控和调度,在每个Node运行kubelet,proxy,docker daemon三个组件负责对本节点上的Pod的生命周记进行管理,以及实现服务代理功能另外在所有节点上都可以运行kubectl命令行工具,它提供了kubernetes集群管理工具集        2.etcd是高可用的key/value存储系统,用于持久化存储集群中所有的资源对象,例如集群中的Node,Service,Pod,RC,Namespace等,apiserver则提供操作etcd的封装接口API,以REST方式提供服务,这些API基本上都是集群中资源对象的增删改查记忆监听资源变化的接口,比如创建Pod,RC,监听Pod变化等接口,apiserver是连接其他素有服务组件的枢纽,下面以RC与相关Service创建的完整流程为例,来说明kubernetes里面各个服务的的作用以及他们之间的交互关系    3.我们通过kubectl提交一个创建RC的请求假设Pod副本数为1,该请求通过apiserver被写入到etcd中,此时controller Manager通过apiserver的监听资源变化的接口监听到这个RC时间,分析之后,发现当前集群中还没有它所对应的Pod实例,于是根据RC里面Pod模版定义生成一个Pod对象,通过apiserver写入到etcd中,接下来此时间被scheduler发现,它立即执行一个复杂的调度流程,为这个Pod选定一个落户的Node,可称这个过程为绑定Pod building,然后又通过apiserver将这一结果写入到etcd中,然后Node上运行的kubelet通过apiserver检测到这个新生的Pod并且按照他的定义启动该Pod并进行负责生命周期,随后通过kubectl提交一个映射到该Pod的Service的创建请求,controller Manager会通过Label标签查询到相关联的Pod实例,然后生成Service的Endpoint信息并通过apiserver写入到etcd中,接下来所有Node上运行的proxy进程通过apiserver查询并监听到Service对想与其对应的Endpoint信息,建立一个负载均衡器来实现Service访问到后端Pod的流量转发功能。    4.从上面分析来看kubernetes各个组件功能:           apiserver:提供资源对象的唯一操作入口,其他所有组件都必须通过它提供的api来操作资源数据,通过对相关资源数据的全量查询+编号监听,这些组件可以实时的完成相关的业务功能,比如某个新Pod一旦提交到apiserver中controller manager就会立即发现并开是调度。           controller manager:集群内部的管理控制中心,主要目的实现kubernetes集群的故障检测和恢复的自动化工作,比如根据RC的定义完成Pod的复制和移除,以确保Pod实例数量符合RC副本的定义,根据Service与Pod的管理关系,完成服务的Endpoints对象的创建和更新,其他注入Node的发现,管理和状态监控,死亡容器所占磁盘空间以及本地缓存的镜像文件的清理等工作也是controller manager完成的           scheduler:集群中的调度器,负责Pod在集群节点中的调度分配           kubelet:负责本Node节点上的Pod创建,修改,监控,删除等生命周期管理,同时kubelet定时上报本Node的状态信息到apiserver里           proxy:实现Service的代理及软件模式的负载均衡器           客户端通过kubectl命令行工具或kubectl proxy来访问kubernetes系统,在kubernetes集群内部的客户端都可以直接使用kubectl命令管理集群,kubectl proxy是apiserver的一个反向代理,在kubernetes集群外部的客户端可以通过kubectl proxy来访问apiserver。    5.apiserver内部有一套完整的安全机制包括认证授权,以及准入控制等相关模块,apiserver收到一个rest请求后会首先执行认证授权准入控制等相关逻辑,过滤非法请求然后将请求发送给apiserver的rest服务模块去执行           

 

广告 广告

评论区