浅谈kubernetes:k8s的部署架构以及工作原理-创新互联
对于每个想落地kubernetes应用的工程师来说,熟悉kubernetes的架构和工作原理是必经之路,也是必须知道的知识,只有了解kubernetes的架构和工作原理才能更好的应用kubernetes 。
成都创新互联公司是专业的广昌网站建设公司,广昌接单;提供成都做网站、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行广昌网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!kubernetes 整体架构
Kubernetes最初源于谷歌内部的Borg,提供了面向应用的容器集群部署和管理系统,所以整体的架构和borg很相似,整个架构有api server,control manager,scheduler,etcd,kubelet,kube-proxy,network-plugin等相关组件完成,整体架构如下:
其中:
Api server,Control manager,Scheduler,Etcd属于master节点,相关组件功能如下:
1.Etcd:保存了整个集群的状态;
2.Apiserver:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
3.Controller manager:负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
4.Scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
Kubelet,Container runtine,Kube-proxy属于woker节点,相关组件功能如下:
1.kubelet:负责维护容器的生命周期,同时也负责Volume(CSI)和网络(CNI)的管理;
2.Container runtime:负责镜像管理以及Pod和容器的真正运行(CRI);
3.kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡;
kubernetes 工作原理
如下为kubernetes的整个工作流程图:
下面为一个个pod创建过程:
1.用户提交创建Pod的请求,可以通过API Server的REST API ,也可用Kubectl命令行工具,支持Json和Yaml两种格式;
2.API Server处理用户请求,存储Pod数据到etcd;
3.Schedule通过和API Server的watch机制,查看到新的Pod,尝试为Pod绑定Node;
4.过滤主机:调度器用一组规则过滤掉不符合要求的主机,比如Pod指定了所需要的资源,那么就要过滤掉资源不够的主机;
5.主机打分:对第一步筛选出的符合要求的主机进行打分,在主机打分阶段,调度器会考虑一些整体优化策略,比如把一个Replication Controller的副本分布到不同的主机上,使用最低负载的主机等;
6.选择主机:选择打分高的主机,进行binding操作,结果存储到etcd中;
7.Kubelet根据调度结果执行Pod创建操作: 绑定成功后,会启动container,docker run,scheduler会调用API在数据库etcd中创建一个bound pod对象,描述在一个工作节点上绑定运行的所有pod信息。运行在每个工作节点上的Kubelet也会定期与etcd同步bound pod信息,一旦发现应该在该工作节点上运行的bound pod对象没有更新,则调用Docker API创建并启动pod内的容器;
在这期间,Control Manager同时会根据kubernetes的mainfiles文件执行rc pod的数量来保证指定的pod副本数。而其他的组件,比如scheduler负责pod绑定的调度,从而完成整个pod的创建。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前标题:浅谈kubernetes:k8s的部署架构以及工作原理-创新互联
本文路径:http://ybzwz.com/article/cdhejo.html