ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

k8s的设计架构

2021-07-19 16:29:51  阅读:124  来源: 互联网

标签:iptables kube 架构 service 集群 proxy 设计 pod k8s


Kubernetes主要由以下几个核心组件组成:
1、etcd是一个分布式键值对存储系统,保存集群所有的网络配置和对象的状态信息,保存了整个集群的状态;
2、apiserver提供了资源操作的唯一入口,无论是集群内部还是外部的组件都必须通过APIServer来访问数据,实现解耦合,并提供认证、授权、访问控制、API注册和发现等机制;
3、controller manager是集群内部的管理控制中心,包括集群内的Node、Pod副本数量、服务端点(Endpoint)、命名空间(NameSpace)、服务账号(ServiceAccount)、资源定额(ResourceQuota)等的管理,并当node以外宕机时执行自动修复流程,确保集群处于预期的工作状态。
4、scheduler负责对资源进行调度,分配某个pod到某个合适的节点上,并将绑定信息写入etcd,调度策略主要分为全局调度与运行时调度2种;
5、Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);
6、kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理,主要完成以下使命: 
监视分配给该Node节点的pods、挂载pod所需要的volumes 、下载pod的secret、通过docker/rkt来运行pod中的容器、周期的执行pod中为容器定义的liveness探针、上报pod的状态给系统的其他组件、上报Node的状态(资源使用情况);
7、kube-proxy负责为Service提供cluster内部的服务发现和负载均衡。在k8s中,提供相同服务的一组pod可以抽象成一个service,由于Pod存在生命周期,有销毁,有重建,无法提供一个固定的访问接口(ip)给客户端,就通过service提供的统一入口对外提供服务,每个service都有一个虚拟IP地址(VIP)和端口号供客户端访问。 
kube-proxy存在于各个node节点上,主要用于Service功能的实现,具体来说,将集群外的主机通过NodePort等方式对Service的访问转发到后端的多个Pod实例上,为pod上的服务提供访问的代理。 (kube-proxy默认使用的是iptables模式,通过node节点上的iptables映射规则来实现service的负载均衡,但是随着service数量的增大,iptables模式由于线性查找匹配、全量更新等特点,其性能会显著下降。从k8s的1.8版本开始,kube-proxy引入了IPVS模式,IPVS模式与iptables同样基于Netfilter,但是采用的hash表,因此当service数量达到一定规模时,hash查表的速度优势就会显现出来,从而提高service的服务性能。);

master包含apiserver、scheduler、controller manager、etcd
node包括kubelet、kube-proxy

标签:iptables,kube,架构,service,集群,proxy,设计,pod,k8s
来源: https://blog.csdn.net/qq_34562093/article/details/118900493

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有