k8s组件交互场景分析

          场景1:kubernetes API server作为集群的核心,负责集群各功能模块之间的通信,集群内的各个功能模块通过API Server将信息存入etcd,当需要获取和操作这些数据的时候,则通过API Server提供的REST接口(用GET,List或者Watch方法)来实现,从而实现各个模块之间的信息交互。

         场景2:kubelet进程与API SERVER进行交互,每个node节点上的kubelet每隔一个时间周期就会调用一次API SERVER的RESTj接口报告自身的状态,API SERVRE接收到这些信息后,将节点的信息更新到etcd种,kubelet也通过API Server的Watch接口监听pod的状态信息,如果监听到pod的副本被绑定到本届点,执行pod的创建和启动逻辑,监听到pod的对象删除,则删除本届点上相应的pod容器,监听到修改,则修改

        场景3:kube-controller-manager进程与APIserver交互,监听node的状态信息,并作出相应的处理

        场景4:kube-scheduler与API Server的交互,当scheduler通过API Server的Watch接口监听到新创建的pod的副本信息后,检索符合改pod的要求的node列表,执行pod逻辑调度,调度成功后将pod绑定到目标节点上

       调度方法:预选策略+最优策略(默认5+3)

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes(简称K8s)是一个用于自动化容器操作的开源平台。它主要由一系列核心组件组成,包括kube-apiserver、kube-scheduler、kube-controller-manager和kubelet,以及用于存储和网络的etcd和kube-proxy。 首先,kube-apiserver是Kubernetes的核心组件之一,它提供了Kubernetes API的接口,用于管理集群的各种操作和资源。 其次,kube-scheduler负责决定将哪个Pod分配到哪个Node上运行。它会根据节点资源的使用情况、健康状况和Pod的约束条件等因素进行调度决策。 kube-controller-manager包含了多个控制器,用于监控并保证集群中的各种资源的状态保持在预期的状态。例如,Replication Controller用于对应用程序进行水平扩展和自动恢复,Namespace Controller用于管理命名空间,Service Account和Endpoint Controller则用于管理Service和Endpoint等资源。 kubelet是运行在每个Node上的代理组件,它负责管理Node上的容器和Pod。它会从kube-apiserver获取Pod的配置信息,并根据这些信息来管理容器的生命周期,同时还会主动上报节点的状态和资源使用情况给kube-apiserver。 etcd是Kubernetes中的分布式键值存储系统,用于存储集群的状态和配置信息。它为整个集群的各种组件提供数据的持久性存储和共享。 kube-proxy是负责在集群的Node节点上实现Kubernetes Service的代理组件。它通过监听kube-apiserver中Service和Endpoint的变化,动态地将访问Service的请求转发到后端的Pod上。 总体来说,Kubernetes的工作原理是基于Master-Slave架构的,Master节点上的核心组件负责管理整个集群的状态和配置,而Node节点上的kubelet和kube-proxy则负责管理容器和服务的运行。通过这些组件之间的协同工作,Kubernetes实现了容器的自动化部署、伸缩、调度和管理,提供了高可用、高效、可靠的容器环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值