首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在哪部分代码中,调度程序从kubernetes中的etcd和API服务器获取pod和节点信息?

在Kubernetes中,调度程序从etcd和API服务器获取pod和节点信息的代码部分是kube-scheduler组件。

kube-scheduler是Kubernetes集群中的一个核心组件,负责根据预定义的调度策略,将新创建的pod分配到合适的节点上运行。它通过与etcd和API服务器进行交互,获取集群中的资源信息和调度策略,以便做出最佳的调度决策。

具体来说,kube-scheduler在调度过程中会执行以下步骤:

  1. 从API服务器获取未分配的pod列表和节点列表。
  2. 通过调用API服务器的REST接口,获取集群中所有节点的详细信息,包括节点的资源使用情况、标签、污点等。
  3. 从etcd中获取调度策略的配置信息,例如节点亲和性、互斥性、资源限制等。
  4. 根据获取到的信息和配置,进行调度算法的计算和决策,选择最合适的节点来运行pod。
  5. 将调度结果更新到API服务器,标记相应的pod已经被调度到了哪个节点上。

需要注意的是,kube-scheduler并不直接与etcd和API服务器进行通信,而是通过Kubernetes的控制平面组件kube-apiserver来间接获取这些信息。kube-apiserver作为Kubernetes集群的API入口,负责接收和处理来自各个组件的请求,并将其转发到etcd进行存储和检索。

推荐的腾讯云相关产品是TKE(腾讯云容器服务),它是腾讯云提供的一种托管式Kubernetes服务。TKE提供了高度可扩展的集群管理能力,可以帮助用户轻松部署、管理和扩展Kubernetes集群。您可以通过以下链接了解更多关于腾讯云容器服务的信息:https://cloud.tencent.com/product/tke

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

这样的设计太妙了!K8S 神秘架构终于揭开面纱!

与大多数分布式计算平台架构一样,Kubernetes集群至少包含一个主节点和多个计算节点。主服务器负责公开应用程序接口(API),安排部署并管理整个集群。...它们向应用程序公开计算,网络和存储资源。节点可以是在云中运行的虚拟机(VM)或在数据中心内运行的裸机服务器。...根据定义的需求和资源可用性,master 将 pod 调度到特定节点上。该节点从容器镜像注册表中拉取镜像,并与本地容器运行时协调以启动容器。...master 查询 etcd 以检索节点、pod 和容器状态的各种参数。 核心组件 etcd 分布式的 KV 存储,保存了整个k8s集群的状态和配置。...API Server 发送请求到 etcd 集群,查询与请求相关的元数据和资源信息,然后确定将请求转发到哪个节点 持久化对象编辑。

40440

【重识云原生】第六章容器6.3.1节——K8S核心组件总述

RestFul接口,用于接收外部资源请求,是整个集群的统一入口,请求信息交由etcd进行存储 Scheduler:资源调度器,负责集群资源调度,按照预定的调度策略将Pod调度到相应的node节点上 ControllerManager...:控制管理器,负责维护集群的状态,比如程序部署安排、故障检测、自动扩展、滚动更新等,每个Node节点都会对应一个控制器对其进行管理 etcd:负责存储集群中各种资源对象的信息,用于保存集群相关数据 1.2...注册节点信息,并定时向 API Server 发送节点新消息,API Server 在接收到新消息后,将信息写入 etcd 2.6.2 Pod 管理 2.6.2.1 获取 Pod 清单         ...加 List 的方式监听 "/registry/nodes/$ 当前节点名" 和 “/registry/pods” 目录,将获取的信息同步到本地缓存中。         ...Kubelet 通过 cAdvisor 获取其所在节点及容器的数据。Heapster 通过带着关联标签的 Pod 分组这些信息,这些数据将被推到一个可配置的后端,用于存储和可视化展示。

1.6K21
  • K8s 很难么?带你从头到尾捋一遍,不信你学不会!

    密钥与配置管理 Kubernetes 允许您存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。您可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。...kubelet: 是工作节点执行操作的 agent,负责具体的容器生命周期管理,根据从数据库中获取的信息来管理容器,并上报 pod 运行状态等。...Scheduler 是作为单独的程序运行的,启动之后会一直坚挺 API Server,获取 PodSpec.NodeName 为空的 Pod,对每个 Pod 都会创建一个 binding,表明该 Pod...使用pod反亲和性来确保在不同的节点上调度一个pod的多个副本,从而通过计划中的和计划外的集群节点停机来确保服务可用性。...kube-proxy:运行在每个计算节点上,负责 Pod 网络代理。定时从 etcd 获取到 service 信息来做相应的策略。

    2.3K20

    最详细的 K8S 学习笔记总结(2021最新版)!建议收藏

    密钥与配置管理 Kubernetes 允许您存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。您可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。...kubelet: 是工作节点执行操作的 agent,负责具体的容器生命周期管理,根据从数据库中获取的信息来管理容器,并上报 pod 运行状态等。...Scheduler 是作为单独的程序运行的,启动之后会一直坚挺 API Server,获取 PodSpec.NodeName 为空的 Pod,对每个 Pod 都会创建一个 binding,表明该 Pod...使用pod反亲和性来确保在不同的节点上调度一个pod的多个副本,从而通过计划中的和计划外的集群节点停机来确保服务可用性。...kube-proxy:运行在每个计算节点上,负责 Pod 网络代理。定时从 etcd 获取到 service 信息来做相应的策略。

    9.3K16

    Kubernetes架构原来这么简单

    时光回溯 我们来了解一下为何 Kubernetes 能够裨益四方 传统部署时代:早期,各个组织是在物理服务器上运行应用程序。由于无法限制在物理服务器中运行的应用程序资源使用,因此会导致资源分配问题。...例如,如果在同一台物理服务器上运行多个应用程序, 则可能会出现一个应用程序占用大部分资源的情况,而导致其他应用程序的性能下降。...Kubernetes 组件 K8S 是属于主从架构(Master-Slave 架构),即有 Master 节点负责集群的调度、管理和运维,Slave 节点是集群中的运算工作负载节点。..., Docker run, scheduler会调用API Server的API在etcd中创建一个bound pod对象,描述在一个工作节点上绑定运行的所有pod信息。...运行在每个工作节点上的kubelet也会定期与etcd同步bound pod信息,一旦发现应该在该工作节点上运行的bound pod对象没有更新,则调用Docker API创建并启动pod内的容器 8、

    1.3K41

    新手必须知道的 Kubernetes 架构

    实际上,etcd 是 Kubernetes 存储集群状态和元数据的唯一地方。唯一直接与 etcd 对话的组件是 Kubernetes API Server。...API Server API Server 是 Kubernetes 中唯一与 etcd 直接交互的组件。...Scheduler 调度程序是一个控制平面进程,它将 pod 分配给节点。它监视没有分配节点的新创建的 pod,并且对于调度程序发现的每个 pod,调度程序负责为该 pod 找到运行的最佳节点。...然后它会通知 API Server 有关所选节点的信息,此过程称为绑定。 节点的选择分为两步: 过滤 所有节点的列表以获取 pod 可以调度到的可接受节点列表。...运行容器活性探测,在探测失败时重新启动容器,在容器的 Pod 从 API Server 中删除时终止容器,并通知服务器 Pod 已终止。

    71630

    Kubernetes架构及相关服务详解

    API服务器与其他组件之间的通信基本上是由其他组件发起的, //获取Master节点服务健康状况 #kubectl get componentstatuses 11.1.2.k8s如何使用etcd...资源如何存储在etcd中   flannel操作etcd使用的是v2的API,而kubernetes操作etcd使用的v3的API,所以在下面我们执行etcdctl的时候需要设置ETCDCTL_API环境变量...它做的是,启动控制器,以及一些其他的组件来监控一键部署的资源变更,是得组件可以再集群元数据变化时候执行任何需要做的任务, 11.1.4.了解调度器   调度器指定pod运行在哪个集群节点上。   ...调度器不会命令选中节点取运行pod,调度器做的就是通过api服务器更新pod的定义。然后api服务器再去通知kubelet该pod已经被调用。...第一个任务,在api服务器中创建一个node资源来注册该节点;第二任务,持续监控api服务器是否把该节点分配给pod;第三任务,启动pod;第四任务,持续监控运行的容器,向api服务器报告他们的状态,事件和资源消耗

    1.2K40

    n1-Kubernetes名称概念解释一览

    2.API-Server为k8s中系统组件间提供交流的平台,并且是与etcd 通信的唯一组件,其他组件不会直接和 etcd 通信,而是通过 API 服务器来修改集群状态。...列表中的第一个插件可以提取请求中客户端的用户名、用户 ID 和组信息,并返回给 API 服务器。 API 服务器会停止调用剩余的认证插件并继续进入授权阶段。...我们通常不会去指定 pod 应该运行在哪个集群节点上而是将这项工作交给调度器。...Kubelet 基于 API 服务器/本地文件目录中的 pod 定义运行 pod,当 pod 从 API 服务器删除时,Kubelet 终止容器,并通知服务器 pod 已经被终止了。...2.每个Pod中运行着一个特殊的被称为Pause的容器,其它的则为业务容器; 3.简单的说:Pod 是一组容器(可包含一个或多个应用程序容器),以及共享存储(卷 Volumes)、IP 地址和有关如何运行容器的信息

    77610

    K8S(kubernetes)概述

    ,使得用户无需考虑容器IP问题 5.机密和配置管理 管理机密数据和应用程序配置,而不需要把敏感数据暴露在径向力,提高敏感数据安全性,并可以将一些常用的配置存储在k8s中,方便应用程序调用 6.存储编排...三、kubernetes集群架构与组件 kubernetes集群架构拓补图 注: API server是所有请求的唯一入口 api server管理所有的事务,并把信息记录到etcd数据库中 etcd...有一个自动服务发现的特性机制,etcd会搭建有三个节点的集群,实现三副本 scheduler 调度器用来调度资源,查看业务节点的资源情况,确定在哪个node上创建pod,把指令告知给api server...etcd 分布式键值存储系统,用户保存集群状态数据,比如pod、service等对象信息 2.node组件 kubelet kubelet时master在node节点上的代理agent,管理本node...运行容器的生命周期 比如创建容器、pod挂载数据卷、下载sercet、获取容器和节点状态等工作,kubelet将每个pod转换成一组容器 kube-proxy 在node节点上实现pod的网络代理,维护网络规则和四层的负载均衡工作

    99410

    Kubernetes RUSH

    ** 节点控制器从云提供商获取当前租户中主机的信息。...**节点控制器执行以下功能: 使用从云平台 API 获取的对应服务器的唯一标识符更新 Node 对象; 利用特定云平台的信息为 Node 对象添加注解和标签,例如节点所在的区域 (Region)和所具有的资源...主要作用简单来说就是通过一定的调度算法,将pod调度到更合适的节点上。 etcd 一致且高可用的键值存储,用作 Kubernetes 所有集群数据的后台数据库。...API 服务器负责提供 HTTP API,以供用户、集群中的不同部分和集群外部组件相互通信。...控制面到节点 从控制面(API 服务器)到节点有两种主要的通信路径。 第一种是从 API 服务器到集群中每个节点上运行的 kubelet 进程。

    12110

    新手必须知道的 Kubernetes 架构

    实际上,etcd 是 Kubernetes 存储集群状态和元数据的唯一地方。唯一直接与 etcd 对话的组件是 Kubernetes API Server。...为客户端实现监视机制(类似于 etcd)以监视更改。这允许调度程序和 Controller Manager 等组件以松散耦合的方式与 API Server 交互。...Scheduler 调度程序是一个控制平面进程,它将 pod 分配给节点。它监视没有分配节点的新创建的 pod,并且对于调度程序发现的每个 pod,调度程序负责为该 pod 找到运行的最佳节点。...然后它会通知 API Server 有关所选节点的信息,此过程称为绑定。 节点的选择分为两步: 过滤所有节点的列表以获取 pod 可以调度到的可接受节点列表。...运行容器活性探测,在探测失败时重新启动容器,在容器的 Pod 从 API Server 中删除时终止容器,并通知服务器 Pod 已终止。

    58920

    【K8S专栏】什么是Kubernetes

    (3)一旦 kube-scheduler 返回一个适合调度的目标节点后,kube-apiserver 就把任务的节点信息存入etcd,并创建任务。...在生产级Kubernetes中etcd通常会以集群的方式存在,安全原因,它只能从 API 服务器访问。...例如,如果应用程序需要 1GB 内存和 2 个 CPU 内核,那么该应用程序的 pod 将被安排在至少具有这些资源的节点上。每次需要调度 pod 时,调度程序都会运行。...抽象成CRI、CNI、CSI 负责汇报节点的健康状态以及资源信息 负责Pod的健康检查和状态汇报 Kube-proxy kube-proxy 是集群中每个节点上运行的网络代理, 实现 Kubernetes...它跨集群中的各种隔离网络将请求转发到正确的 pod/容器。kube-proxy 维护节点上的网络规则。这些网络规则允许从集群内部或外部的网络会话与 Pod 进行网络通信。

    39940

    n1-Kubernetes名称概念解释一览

    2.API-Server为k8s中系统组件间提供交流的平台,并且是与etcd 通信的唯一组件,其他组件不会直接和 etcd 通信,而是通过 API 服务器来修改集群状态。...列表中的第一个插件可以提取请求中客户端的用户名、用户 ID 和组信息,并返回给 API 服务器。 API 服务器会停止调用剩余的认证插件并继续进入授权阶段。...我们通常不会去指定 pod 应该运行在哪个集群节点上而是将这项工作交给调度器。...Kubelet 基于 API 服务器/本地文件目录中的 pod 定义运行 pod,当 pod 从 API 服务器删除时,Kubelet 终止容器,并通知服务器 pod 已经被终止了。...2.每个Pod中运行着一个特殊的被称为Pause的容器,其它的则为业务容器; 3.简单的说:Pod 是一组容器(可包含一个或多个应用程序容器),以及共享存储(卷 Volumes)、IP 地址和有关如何运行容器的信息

    45820

    IT运维面试问题总结-LVS、Keepalived、HAProxy、Kubernetes、OpenShift等

    etcd本身分布式架构存储的信息访问支持负载均衡。etcd集群化以后,每个etcd的核心节点都可以处理用户的请求。所以,把数据量小但是访问频繁的消息数据直接存储到etcd中也可以实现负载均衡的效果。...,若监测结果与设定的正常结果不一致,将此服务对应的节点从服务器集群中剔除。...其主要作用有: 资源获取:代替客户端实现从原始服务器的资源获取; 加速访问:代理服务器可能离原始服务器更近,从而起到一定的加速作用; 缓存作用:代理服务器保存从原始服务器所获取的资源,从而实现客户端快速的获取...集群内的各个功能模块通过API Server将信息存入etcd,当需要获取和操作这些数据时,则通过API Server提供的REST接口(用GET、LIST或WATCH方法)来实现,从而实现各模块之间的信息交互...Kubernetes Scheduler通过调度算法调度为待调度Pod列表中的每个Pod从Node列表中选择一个最适合的Node来实现Pod的调度。

    5.3K61

    什么是k8s

    Node作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单元是Pod。...Node是Kubernetes集群操作的单元,用来承载被分配Pod的运行,是Pod运行的宿主机。关联Master管理节点,拥有名称和IP、系统资源信息。...Kubernetes Node运行节点,运行管理业务容器,包含如下组件:   1.Kubelet     负责管控容器,Kubelet会从Kubernetes API Server接收Pod的创建请求,...2.Kubernetes Proxy     负责为Pod创建代理服务,Kubernetes Proxy会从Kubernetes API Server获取所有的Service信息,并根据Service的信息创建代理服务...端点信息 查看集群信息:kubectl cluster-info ? 集群信息 获取集群中的节点状态: kubectl get nodes ?

    1.4K20

    kubernetes 容器编排系统介绍

    它维护的REST对象将持久化到etcd。 Scheduler:负责集群的资源调度,为新建的pod分配机器。这部分工作分出来变成一个组件,意味着可以很方便地替换成其他的调度器。...它会定期从etcd获取分配到本机的pod,并根据pod信息启动或停止相应的容器。同时,它也会接收apiserver的HTTP请求,汇报pod的运行状态。 Kube Proxy:负责为pod提供代理。...它会定期从etcd获取所有的service,并根据service信息创建代理。当某个客户pod要访问其他pod时,访问请求会经过本机proxy做转发。...Kubelet在启动时通过API Server注册节点信息,并定时向API Server发送节点信息。API Server接收到这些信息后,将这些信息写入etcd。...简单地说,就是通过调度算法调度,为待调度pod列表中的每个pod从node列表中选择一个最适合的node。

    14.9K30

    k8s架构与组件详解

    3.一旦 kube-scheduler 返回一个适合调度的目标节点后,kube-apiserver 就把任务的节点信息存入etcd,并创建任务。...etcd etcd 是兼具一致性和高可用性的键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库(例如 Pod 的数量、状态、命名空间等)、API 对象和服务发现细节。...在生产级k8s中etcd通常会以集群的方式存在,安全原因,它只能从 API 服务器访问。 etcd也是k8s生态的关键应用。关于 etcd 可参考 etcd 文档[1]。...例如,如果应用程序需要 1GB 内存和 2 个 CPU 内核,那么该应用程序的 pod 将被安排在至少具有这些资源的节点上。每次需要调度 pod 时,调度程序都会运行。...调度程序必须知道可用的总资源以及分配给每个节点上现有工作负载的资源。

    3.9K30

    k8s之旅-1

    image.png Kubernetes是为生产环境而设计的容器调度管理系统 Kubernetes集群的组成部分 分布式存储etcd:保存集群的状态 服务节点Minion,etcd现在称为Node:...控制节点Master:运行节点的管理控制模块 k8s组件 Cluster : 集群是指由k8s使用一系列的物理机、虚拟机和其他基础资源来运行用户的应用程序。...Node: 一个node就是一个运行着k8s的物理机或虚拟机,并且pod可以在其上面被调度。 Pod : 一个pod对应一个由相关容器和卷组成的容器组。...配置和组织集群, 同时集群中各个节点同etcd存储的交互也是通过Apiserver进行交互。...获取pod运行在哪个节点上的信息 2.显示所有rc kubectl get rc 3.显示所有service kubectl get service 4.删除rc kubectl delete rc

    50410
    领券