首页 > 其他分享 >在K8S中,创建pod过程?

在K8S中,创建pod过程?

时间:2024-01-31 09:22:59浏览次数:23  
标签:Node kube 创建 kubelet API pod K8S Pod

在Kubernetes(简称K8s)中创建Pod的过程涉及多个组件的交互,以下是简化版的Pod创建流程:

  1. 客户端请求

    • 用户通过kubectl apply命令、控制台界面或者API调用提交一个Pod的定义文件(YAML或JSON格式),向集群中的kube-apiserver发送创建Pod的请求。
  2. 验证与准入控制

    • kube-apiserver接收到请求后,会对Pod的规格进行验证,并且可能经过一系列准入控制器(Admission Controllers),这些控制器可以对资源对象进行额外的检查和修改,例如权限验证、限制范围等。
  3. 持久化存储状态

    • 验证通过后,kube-apiserver将Pod的定义写入到etcd键值存储中,这是集群的状态数据库,用于存储整个集群的配置信息和当前状态。
  4. 调度决策

    • 写入etcd后,kube-scheduler会通过监听API服务器事件来发现新创建但未被调度的Pod。
    • 调度器根据节点资源情况、亲和性/反亲和性规则以及污点与容忍度等因素执行调度算法,确定Pod应该运行在哪个Node上。
  5. 绑定Pod到Node

    • kube-scheduler做出调度决策后,会将该Pod绑定到合适的Node,并将这一绑定信息更新到etcd中。
  6. kubelet执行

    • 每个Node上的kubelet组件周期性地从API服务器拉取其负责节点的Pod清单。
    • 当kubelet检测到新的待创建Pod时,它开始执行Pod创建过程,包括:
      • 为Pod分配网络资源,如IP地址。
      • 创建并启动Pod内的各个容器,这通常涉及到与container runtime(如Docker或containerd)的交互。
      • 设置必要的环境变量、挂载卷、健康检查探针等。
  7. 监控与报告状态

    • 在Pod的生命周期内,kubelet持续监控Pod及其容器的状态,并将状态变化汇报给kube-apiserver。
    • 当所有容器都成功运行并且达到就绪状态时,kubelet会通知API服务器Pod已准备好服务请求。

综上所述,以上是Pod创建的主要步骤概述。这个过程中还涉及到许多复杂的细节和容错机制以确保系统的稳定性和可靠性。

标签:Node,kube,创建,kubelet,API,pod,K8S,Pod
From: https://www.cnblogs.com/huangjiabobk/p/17998515

相关文章

  • 在K8S中,flannel能固定节点IP和Pod的IP地址吗?
    Flannel作为一个Kubernetes集群的网络插件,其设计目标之一是为Pod分配固定的IP地址,并确保不同节点上的PodIP地址不会冲突。具体来说:PodIP固定:Flannel在每个节点上预分配一个子网供Pod使用,当创建新Pod时,Flannel会从该节点的子网中分配一个唯一的IP地址给Pod,从而确保Pod在整个生......
  • 在K8S中,Pod亲和性概念是什么?
    在Kubernetes(简称K8S)中,Pod亲和性和反亲和性(AffinityandAnti-Affinity)是集群调度策略的重要组成部分,它们用于控制Pod如何与节点或其他Pod相对应地放置或避免放置在一起。Pod亲和性(Affinity):Pod亲和性允许用户指定某种规则,使得Pod更倾向于被调度到满足特定条件的节点上运行,或者与......
  • AnyDesk远程桌面创建快捷方式
    前言全局说明AnyDesk远程桌面创建快捷方式一、创建桌面快捷方式之前连接过的远程桌面,会在"最近会话"中显示,右键-置于桌面,就能在桌面获取一个,快速打开对应远程桌面的快捷方式,访问很方便右键-属性,可以修改参数,连接不同机器手动创建lnk文件:https://www.cnblogs.com/wutou......
  • Vulkan学习苦旅04:创建设备(逻辑设备VkDevice)
    设备是对物理设备的一种抽象,使我们更加方便地使用它。更准确地说,应该称其为“逻辑设备”,但由于逻辑设备在Vulkan中极为常用,后面几乎所有的API都需要它作为第一个参数,因此在Vulkan中直接简称为设备。1.实例、物理设备与设备的关系在之前的几篇文章中,我们依次创建了实例和物理设......
  • three学习-vscode-创建项目01
    安装node之后,使用vscode打开自己创建的一个文件夹1、创建我们的项目目录存放的文件夹study01再vscode中打开创建的文件夹2、创建vite支持环境npminitvite@latest输入y输入项目名称:studyapp01框架选择 3、进入项目,安装依赖,运行项目cdstudyapp01npminstallnpm......
  • Windows 批量创建.lnk快捷方式(不是软连接、硬链接)
    前言全局说明Windows批量创建.lnk快捷方式(不是软连接、硬链接)快捷方式、软连接、硬链接,介绍:https://www.cnblogs.com/wutou/p/17996851一、介绍在使用Anydesk时发现,可以使用快捷方式指定ID,接收参数,来远程连接某台机器,而不用打开界面,再输入ID来远程机器,很方便。但因......
  • DevExpress WinForms中文教程 - 如何创建可访问的WinForms应用?(一)
    为用户创建易访问的WindowsForms应用程序不仅是最佳实践的体现,还是对包容性和以用户为中心的设计承诺。在应用程序开发生命周期的早期考虑与可访问性相关的需求可以节省长期运行的时间(因为它将决定设计决策和代码实现)。一个可访问的WinForms应用程序提供了各种好处,包括:扩大......
  • 在K8S中,PV生命周期状态有哪些?
    在Kubernetes中,PersistentVolume(PV)对象具有以下几种生命周期状态:Available(可用):PV在被创建并设置为可供绑定的状态时处于Available状态。在此状态下,PV尚未与任何PersistentVolumeClaim(PVC)关联或绑定。Bound(已绑定):当管理员或Kubernetes自动将PV与一个匹配的Persis......
  • 在K8S中,DaemonSet类型资源特性?
    在Kubernetes(简称K8S)中,DaemonSet是一种控制器资源对象,它的主要特性包括:每个节点运行一个实例:DaemonSet确保集群中的每个工作节点上都运行着一个指定的Pod副本。这意味着当DaemonSet被创建时,系统会自动调度Pod到所有符合条件的节点上,确保每个节点上都有且仅有一个该Pod的实例......
  • 在K8S中,flannel有几种模式?
    在Kubernetes(简称K8S)中,Flannel作为常用的网络插件之一,为集群提供覆盖网络(OverlayNetwork)支持,帮助Pod间实现跨主机通信。Flannel支持多种后端网络模式来实现这一功能,主要包括:VXLAN模式:VXLAN是一种Layer2虚拟化技术,它通过在IP包内封装二层以太网帧来创建一个跨越三层网络的虚......