在K8S中,创建pod过程?

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 在K8S中,创建pod过程?

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

  1. 客户端请求
  • 用户通过kubectl apply命令、控制台界面或者API调用提交一个Pod的定义文件(YAML或JSON格式),向集群中的kube-apiserver发送创建Pod的请求。
  1. 验证与准入控制
  • kube-apiserver接收到请求后,会对Pod的规格进行验证,并且可能经过一系列准入控制器(Admission Controllers),这些控制器可以对资源对象进行额外的检查和修改,例如权限验证、限制范围等。
  1. 持久化存储状态
  • 验证通过后,kube-apiserver将Pod的定义写入到etcd键值存储中,这是集群的状态数据库,用于存储整个集群的配置信息和当前状态。
  1. 调度决策
  • 写入etcd后,kube-scheduler会通过监听API服务器事件来发现新创建但未被调度的Pod。
  • 调度器根据节点资源情况、亲和性/反亲和性规则以及污点与容忍度等因素执行调度算法,确定Pod应该运行在哪个Node上。
  1. 绑定Pod到Node
  • kube-scheduler做出调度决策后,会将该Pod绑定到合适的Node,并将这一绑定信息更新到etcd中。
  1. kubelet执行
  • 每个Node上的kubelet组件周期性地从API服务器拉取其负责节点的Pod清单。
  • 当kubelet检测到新的待创建Pod时,它开始执行Pod创建过程,包括:
  • 为Pod分配网络资源,如IP地址。
  • 创建并启动Pod内的各个容器,这通常涉及到与container runtime(如Docker或containerd)的交互。
  • 设置必要的环境变量、挂载卷、健康检查探针等。
  1. 监控与报告状态
  • 在Pod的生命周期内,kubelet持续监控Pod及其容器的状态,并将状态变化汇报给kube-apiserver。
  • 当所有容器都成功运行并且达到就绪状态时,kubelet会通知API服务器Pod已准备好服务请求。

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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
17天前
|
JSON Kubernetes Shell
【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小
【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小
|
17天前
|
Kubernetes Shell Perl
【Azure K8S|AKS】进入AKS的POD中查看文件,例如PVC Volume Mounts使用情况
【Azure K8S|AKS】进入AKS的POD中查看文件,例如PVC Volume Mounts使用情况
|
19天前
|
Kubernetes Docker Perl
在K8S中,如果是因为开发写的镜像问题导致pod起不来该怎么排查?
在K8S中,如果是因为开发写的镜像问题导致pod起不来该怎么排查?
|
19天前
|
Kubernetes 安全 Docker
在K8S中,在服务上线的时候Pod起不来怎么进行排查?
在K8S中,在服务上线的时候Pod起不来怎么进行排查?
|
19天前
|
存储 Kubernetes 调度
在K8S中,⼀个pod的不同container能够分开被调动到不同的节点上吗?
在K8S中,⼀个pod的不同container能够分开被调动到不同的节点上吗?
|
19天前
|
消息中间件 Kubernetes 容器
在K8S中,同⼀个Pod的不同容器互相可以访问是怎么做到的?
在K8S中,同⼀个Pod的不同容器互相可以访问是怎么做到的?
|
19天前
|
存储 Kubernetes 数据中心
在K8S中,同⼀个Pod内不同容器哪些资源是共用的,哪些资源是隔离的?
在K8S中,同⼀个Pod内不同容器哪些资源是共用的,哪些资源是隔离的?
|
19天前
|
Kubernetes 负载均衡 网络协议
在K8S中,Pod的探针有哪些及用途?
在K8S中,Pod的探针有哪些及用途?
|
19天前
|
Kubernetes 监控 Perl
在K8S中,Pod⼀直处于Init状态,如何排查?
在K8S中,Pod⼀直处于Init状态,如何排查?
|
19天前
|
Prometheus Kubernetes 监控
在K8S中,Pod处于OOM状态如何排查?
在K8S中,Pod处于OOM状态如何排查?