学习笔记十九:K8S生成pod过程

K8S生成pod过程

  • 流程图
  • 具体生成过程
    • 用户提交 Pod 定义
    • API Server 处理请求
    • 调度器分配节点(Scheduling)
    • 目标节点上的 Pod 创建
    • 网络配置
    • 状态上报与监控
    • 控制器管理(Controller Manager)
    • 就绪与服务发现
  • 关键错误场景
  • 高级特性

流程图

在这里插入图片描述

具体生成过程

用户提交 Pod 定义

用户通过提交 Pod 的 YAML/JSON 配置文件发送到 kube-apiserver。

kubectl apply -f pod.yaml 

API Server 处理请求

  • 认证与授权:API Server 验证用户身份(如 TLS 证书、Token)并检查权限(RBAC)。
  • 准入控制(Admission Control):
    • Mutating Admission Controllers:可能修改 Pod 配置(例如注入 Sidecar 容器)。
    • Validating Admission Controllers:验证配置的合法性(如资源限制是否合规)。
  • 持久化存储:验证通过后,Pod 的元数据写入 etcd 数据库,此时 Pod 状态为 Pending。

调度器分配节点(Scheduling)

  • kube-scheduler 监听 API Server,发现未绑定的 Pod。
  • 根据调度策略选择合适节点:
    • 资源需求(CPU/内存)。
    • 节点选择器(nodeSelector)、亲和性(affinity)、污点与容忍(tolerations)。
  • 更新 Pod 的 nodeName 字段并写入 etcd,触发事件(如 Scheduled)。

目标节点上的 Pod 创建

  • kubelet 监听 API Server,发现分配到本节点的 Pod。
  • Pod 配置同步:kubelet 从 API Server 获取 Pod 定义。
  • 存储卷挂载:按配置挂载持久卷(PV)、ConfigMap、Secret 等。
  • 容器运行时交互:
    • 拉取镜像:通过容器运行时(如 containerd)拉取镜像,失败时状态为 ImagePullBackOff。
    • 创建容器:
      • 先创建 pause 容器(共享网络命名空间)。
      • 按顺序启动 Init 容器(若有),全部成功后继续。
      • 启动主容器,执行生命周期钩子(如 postStart)。

网络配置

  • CNI 插件调用:kubelet 调用 CNI 插件为 Pod 分配 IP、设置网络(如 Calico、Flannel)。
  • 网络策略(NetworkPolicy)可能由 CNI 插件或其他组件(如 Cilium)实施。

状态上报与监控

  • kubelet 持续监控容器状态,定期向 API Server 上报:
    • 容器启动成功 → Pod 状态变为 Running。
    • 容器崩溃或探针失败 → 状态为 CrashLoopBackOff 或 Unhealthy。
  • 事件流记录:各组件(调度器、kubelet)通过 API Server 记录事件(如 Pulled, Started),可通过 kubectl describe pod 查看。

控制器管理(Controller Manager)

  • 若 Pod 属于高层资源(如 Deployment、ReplicaSet):
    • 控制器确保实际状态与期望状态一致(例如重启失败的 Pod 或维持副本数)。
    • 自愈机制:自动替换不健康的 Pod(如节点故障时重新调度)。

就绪与服务发现

  • 就绪探针(Readiness Probe) 通过后,Pod IP 被加入 Service 的 Endpoints。
  • kube-proxy 更新节点上的 iptables/ipvs 规则,允许流量路由到新 Pod。

关键错误场景

  • 调度失败:无合适节点 → Pod 保持 Pending,需检查资源请求、节点标签或污点。
  • 镜像拉取失败:私有镜像权限问题 → 状态为 ImagePullBackOff。
  • 容器崩溃:应用启动错误 → CrashLoopBackOff,需检查日志(kubectl logs)。

高级特性

  • Init 容器:按顺序运行,全部成功后才启动主容器。
  • Sidecar 注入:通过 Admission Controller(如 Istio 的自动注入)动态修改 Pod 配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/895013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

封装descriptions组件,描述,灵活

效果 1、组件1&#xff0c;dade-descriptions.vue <template><table><tbody><slot></slot></tbody> </table> </template><script> </script><style scoped>table {width: 100%;border-collapse: coll…

21.2.6 字体和边框

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 通过设置Rang.Font对象的几个成员就可以修改字体&#xff0c;设置Range.Borders就可以修改边框样式。 【例 21.6】【项目&#xff…

FPGA VGA timing

概念 VGA(Video Graphics Array)时序是控制VGA接口显示图像的关键参数,它主要包括行时序和场时序两部分。以下是对VGA时序的详细解释: 一、VGA接口简介 VGA接口是IBM公司在1987年推出的一种使用模拟信号的视频传输标准,具有成本低、结构简单、应用灵活等优点,至今仍被广…

中级通信工程师综合教材(5、6章节)

五、现代通信网 1、通信网的构成要素 通信网在硬件设备方面的构成要素是交换设备、传输链路和终设备。 构成要素 功能作用 常见设备举例 终端设备 通信的源点和目的地 电话机、传真机、计算机、视频终端、多媒体终端等 交换设备 通信网的核心设备,主要完成呼叫处理、信令处理…

360手机刷机 360手机解Bootloader 360手机ROOT

360手机刷机 360手机解Bootloader 360手机ROOT 问&#xff1a;360手机已停产&#xff0c;现在和以后&#xff0c;能刷机吗&#xff1f; 答&#xff1a;360手机&#xff0c;是肯定能刷机的 360手机资源下载网站 360手机-360手机刷机RootTwrp 360os.top 360rom.github.io 一、…

.net一些知识点5

1.dot Net带out的参数如何使用 string name;//假设这个参数带out TestMethod(1,out name);//一定要有out 方法体中&#xff0c;一定要有out参数的赋值&#xff0c;并且能输出 2.参数的传递方式有哪些 a.值传递 b.引用传递 ref c.输出传递 out 3.设计模式知道哪些 3.us…

链表专题-02

链表专题 /*** 链表的节点* param <E>*/ public class ListNode<E> {public E element;public ListNode<E> next;public ListNode() {}public ListNode(E element) {this.element element;}public ListNode(E element, ListNode<E> next) {this.eleme…

外部中断实验 #STM32F407

外部中断实验 此实验将外部中断配置为按键输入&#xff0c;通过按键输入触发外部中断&#xff0c;在外部中断里面实施相应的处理&#xff0c;具体功能&#xff1a; 按下KEY0&#xff0c;翻转LED0状态按下KEY1&#xff0c;翻转LED1状态按下KEY2&#xff0c;同时翻转LED0和LED1…

java中如何给内部类的属性赋值

在 Java 中&#xff0c;内部类的属性赋值方式取决于该属性的访问修饰符、内部类的类型&#xff08;非静态或静态&#xff09;&#xff0c;以及赋值的时机。以下是几种常见的方式&#xff1a; 1. 通过构造方法赋值 class Outer {class Inner {private String name;// 构造方法赋…

机器学习8-卷积和卷积核1

机器学习8-卷积和卷积核1 卷积与图像去噪卷积的定义与性质定义性质卷积的原理卷积步骤卷积的示例与应用卷积的优缺点优点缺点 总结 高斯卷积核卷积核尺寸的设置依据任务类型考虑数据特性实验与调优 高斯函数标准差的设置依据平滑需求结合卷积核尺寸实际应用场景 总结 图像噪声与…

SVN 提交与原有文件类型不一样的文件时的操作

SVN 提交与原有文件类型不一样的文件时的操作 背景 SVN 服务器上原本的文件是软链接类型的&#xff0c;但是我将它改成普通文件再上传。出现了以下提示&#xff1a; 解决过程 本来想着通过 svn rm 和 svn add 来解决&#xff0c;但是行不通。 最终解决方案 svn rm --keep-…

阿里云专有云网络架构学习

阿里云专有云网络架构 叶脊&#xff08;spine-leaf&#xff09;网络和传统三层网络拓扑对比 阿里云网络架构V3拓扑角色介绍推荐设备设备组网举例带外管理网络带外网和带内网对比设备介绍 安全网络设备介绍 参考 后续更新流量分析叶脊&#xff08;spine-leaf&#xff09;网络和传…

Deepseek本地部署指南:在linux服务器部署,在mac远程web-ui访问

1. 在Linux服务器上部署DeepSeek模型 要在 Linux 上通过 Ollama 安装和使用模型&#xff0c;您可以按照以下步骤进行操作&#xff1a; 步骤 1&#xff1a;安装 Ollama 安装 Ollama&#xff1a; 使用以下命令安装 Ollama&#xff1a; curl -sSfL https://ollama.com/download.…

3D数字化营销:重塑家居电商新生态

随着电商的蓬勃发展&#xff0c;网上订购家具已成为众多消费者的首选。然而&#xff0c;线上选购家具的诸多挑战&#xff0c;如风格不匹配、尺寸不合适、定制效果不如预期以及退换货不便等&#xff0c;一直困扰着消费者。为解决这些问题&#xff0c;家居行业急需一种全新的展示…

重塑“景区+商业”模式,打造特色文旅新体验

重塑“景区商业”模式&#xff0c;打造特色文旅新体验 近年来&#xff0c;旅游业蓬勃发展&#xff0c;旅游热潮不断升温&#xff0c;游客消费观念也随之升级。为顺应这一趋势&#xff0c;各大景区纷纷探索打造特色文旅项目&#xff0c;以期吸引更多游客。然而&#xff0c;“景…

在亚马逊云科技上云原生部署DeepSeek-R1模型(下)

在本系列的上篇中&#xff0c;我们介绍了如何通过Amazon Bedrock部署并测试使用了DeepSeek模型。在接下来的下篇中小李哥将继续介绍&#xff0c;如何利用亚马逊的AI模型训练平台SageMaker AI中的&#xff0c;Amazon Sagemaker JumpStart通过脚本轻松一键式部署DeepSeek预训练模…

Kubernetes是什么?为什么它是云原生的基石

从“手工时代”到“自动化工厂” 想象一下&#xff0c;你正在经营一家工厂。在传统模式下&#xff0c;每个工人&#xff08;服务器&#xff09;需要手动组装产品&#xff08;应用&#xff09;&#xff0c;效率低下且容易出错。而Kubernetes&#xff08;k8s&#xff09;就像一个…

Transformer 详解:了解 GPT、BERT 和 T5 背后的模型

目录 什么是 Transformer? Transformer如何工作? Transformer 为何有用? 常见问题解答:机器学习中的 Transformer 在技​​术领域,突破通常来自于修复损坏的东西。制造第一架飞机的人研究过鸟类。莱特兄弟观察了秃鹫如何在气流中保持平衡,意识到稳定性比动力更重要。…

图片webp格式动图图片

这是一个webp动图1 这是一个webp动图2 webp 图像由gif 转换 3

Spring(26) spring-security-oauth2 官方表结构解析

目录 一、什么是 spring-security-oauth2&#xff1f;二、spring-security-oauth2 的表结构2.1 oauth_client_details 客户端详细信息表2.2 oauth_access_token 认证授权Token记录表2.3 oauth_refresh_token 刷新授权Token记录表2.4 oauth_code 授权Code记录表 一、什么是 spri…