19.pod的创建流程
源自:https://cloud.tencent.com/developer/article/2248476
在 Kubernetes 中,Pod 是最小的可部署单元,它可以包含一个或多个容器。Pod 是 Kubernetes 中的基本概念,也是 Kubernetes 中调度和运行应用程序的最小单位。在本文中,我们将介绍 Pod 的创建原理以及流程。
Pod 的创建原理
在 Kubernetes 中,Pod 是由 Kubernetes API Server 创建和管理的。当用户使用 Kubernetes API Server 创建一个 Pod 时,Kubernetes API Server 会将该请求转发给 Kubernetes Controller Manager,Controller Manager 会根据请求的参数创建一个 Pod。
Pod 的创建过程可以分为以下几个步骤:
- 验证请求参数:Kubernetes API Server 首先会验证用户提交的请求参数是否合法。如果请求参数不合法,Kubernetes API Server 会拒绝该请求,并返回错误信息。
- 创建 Pod Spec:如果请求参数合法,Kubernetes API Server 会创建一个 Pod Spec。Pod Spec 包含了 Pod 的元数据信息,如 Pod 名称、命名空间、标签等。Pod Spec 还包含了容器的定义,如容器镜像、容器名称、容器端口等。
- 创建 Pod:根据 Pod Spec,Kubernetes Controller Manager 会创建一个 Pod。在创建 Pod 之前,Kubernetes Controller Manager 会对 Pod Spec 进行验证,确保 Pod 中定义的容器镜像存在,容器端口没有冲突等。
- 分配 IP 地址:在 Pod 创建完成之后,Kubernetes API Server 会为 Pod 分配一个 IP 地址。Kubernetes API Server 会将 Pod 的 IP 地址存储在 etcd 中,供其他组件使用。
- 调度 Pod:在分配 IP 地址之后,Kubernetes Scheduler 会根据 Pod 的资源需求和节点资源状况,将 Pod 调度到一个合适的节点上。Kubernetes Scheduler 会将 Pod 的调度信息存储在 etcd 中,供其他组件使用。
- 创建容器:在 Pod 被调度到节点之后,Kubernetes Kubelet 会根据 Pod Spec 中容器的定义,创建容器。Kubelet 会从容器镜像仓库中拉取容器镜像,并根据容器定义启动容器。
- 管理容器:Kubernetes Kubelet 会定期检查容器的状态,并根据需要重启容器。如果容器失败或被终止,Kubelet 会将容器的状态更新到 Kubernetes API Server 中。
Pod 的创建流程用户通过 Kubernetes API Server 创建一个 Pod。
- Kubernetes API Server 创建 Pod Spec,并将其存储在 etcd 中。
- Kubernetes Controller Manager 根据 Pod Spec 创建 Pod,并将其存储在 etcd 中。
- Kubernetes API Server 为 Pod 分配 IP 地址,并将其存储在 etcd 中。
- Kubernetes Scheduler 根据 Pod 的资源需求和节点资源状况,将 Pod 调度到一个合适的节点上,并将调度信息存储在 etcd 中。
- Kubernetes Kubelet 在节点上创建容器,并将容器状态更新到 Kubernetes API Server 中。
- Kubernetes Kubelet 定期检查容器状态,并根据需要重启容器。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器