<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Creating A Pod :: Ay Docs</title>
    <link>https://ops.docs.72602.space/using/k8s/create_a_pod/index.html</link>
    <description>描述 Kubernetes 中一个 Pod 的创建过程，可以清晰地展示了 K8s 各个核心组件是如何协同工作的。&#xA;我们可以将整个过程分为两个主要阶段：控制平面的决策阶段 和 工作节点的执行阶段。&#xA;第一阶段：控制平面决策（大脑决策） 用户提交请求&#xA;用户使用 kubectl apply -f pod.yaml 向 kube-apiserver 提交一个 Pod 定义文件。 kubectl 会验证配置并将其转换为 JSON 格式，通过 REST API 调用发送给 kube-apiserver。 API Server 处理与验证&#xA;kube-apiserver 接收到请求后，会进行一系列操作： 身份认证：验证用户身份。 授权：检查用户是否有权限创建 Pod。 准入控制：可能调用一些准入控制器来修改或验证 Pod 对象（例如，注入 Sidecar 容器、设置默认资源限制等）。 所有验证通过后，kube-apiserver 将 Pod 的元数据对象写入 etcd 数据库。此时，Pod 在 etcd 中的状态被标记为 Pending。 至此，Pod 的创建请求已被记录，但还未被调度到任何节点。 调度器决策&#xA;kube-scheduler 作为一个控制器，通过 watch 机制持续监听 kube-apiserver，发现有一个新的 Pod 被创建且其 nodeName 为空。 调度器开始为这个 Pod 选择一个最合适的节点，它执行两阶段操作： 过滤：根据节点资源（CPU、内存）、污点、节点选择器、存储、镜像拉取等因素过滤掉不合适的节点。 评分：对剩下的节点进行打分（例如，考虑资源均衡、亲和性等），选择得分最高的节点。 做出决策后，kube-scheduler 补丁 的方式更新 kube-apiserver 中该 Pod 的定义，将其 nodeName 字段设置为选定的节点名称。 kube-apiserver 再次将这个更新后的信息写入 etcd。 第二阶段：工作节点执行（肢体行动） kubelet 监听到任务</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate></lastBuildDate>
    <atom:link href="https://ops.docs.72602.space/using/k8s/create_a_pod/index.xml" rel="self" type="application/rss+xml" />
  </channel>
</rss>