网络架构深度剖析
网络架构深度剖析概述Kubernetes 网络系统涵盖 Pod 网络、Service 网络、Ingress 网络等多个层次,涉及 CNI 插件、kube-proxy、CoreDNS 等多个组件。本文深入剖析 Kubernetes 网络架构的工作原理。 整体架构12345678910111213141516171819202122232425┌──────────────────────────────────────────────────────────────────────────────┐│ Kubernetes 网络分层 ││ ││ ┌─────────────────────────────────────────────────────────────────────┐ ││ │ ...
调度器深度剖析
调度器深度剖析概述Kubernetes Scheduler 负责为新创建的 Pod 选择最优的 Node,是控制平面的核心组件之一。本文档深入剖析调度器的工作原理、调度算法和源码实现。 核心架构123456789101112131415161718192021222324252627282930313233343536373839404142┌──────────────────────────────────────────────────────────────────────────────┐│ kube-scheduler ││ cmd/kube-scheduler/ │└──────────────────────────────────────────────────────────────────────────────┘ ...
Kubelet 深度分析
Kubelet 深度分析本文档深入分析 Kubernetes Kubelet 组件的架构设计、启动流程、核心功能和关键子系统。 目录 架构概览 关键数据结构 启动流程分析 核心功能原理 关键子系统详解 5.1 PodManager 5.2 StatusManager 5.3 ProbeManager 5.4 VolumeManager 5.5 EvictionManager 5.6 PLEG 边界情况与错误处理 性能优化 最佳实践 1. 架构概览1.1 Kubelet 在 Kubernetes 架构中的位置Kubelet 是 Kubernetes 集群中运行在每个节点上的核心代理(Node Agent),是 Kubernetes 控制平面与节点级容器运行时之间的桥梁。它负责维护节点上容器的生命周期,并将节点状态上报给 API Server。 在 Kubernetes 整体架构中,Kubelet 处于如下位置: 12345678910111213141516171819202122+-------------------------+ +----------...
CNI 网络插件流程
CNI 网络插件流程概述CNI (Container Network Interface) 是 Kubernetes 的网络插件标准,负责为 Pod 配置网络接口、IP 地址分配和网络连通性。 核心架构1234567891011121314151617181920212223242526272829303132333435363738394041424344454647┌──────────────────────────────────────────────────────────────────────────────┐│ kubelet ││ pkg/kubelet/kubelet.go ││ ...
CSI 存储卷挂载通信流程
CSI 存储卷挂载通信流程目标这篇文档只回答一个核心问题:kubelet 如何通过 CSI (Container Storage Interface) 完成 Pod 存储卷的挂载? 重点放在 VolumeManager 与 CSI driver 的交互,以及 attach/mount 的完整流程。 一句话摘要kubelet 的 VolumeManager 通过 CSINode 和 CSIDriver 对象发现 CSI driver,然后通过 gRPC 调用 CSI driver 的 NodeStageVolume/NodePublishVolume 完成卷的挂载。 1. 流程总览从通信视角看,这条链路可以拆成 3 个阶段: 卷准备阶段:CSI controller 完成 attach (对于块存储)。 节点挂载阶段:kubelet 通过 CSI driver 完成 stage 和 publish。 容器挂载阶段:kubelet 将卷 bind mount 到容器内。 架构总览图flowchart TB subgraph 控制面["控制面...
DNS 解析流程
DNS 解析流程本文档描述 Kubernetes 集群中 CoreDNS 如何解析 Service 到 Pod IP 的完整流程。 概述Kubernetes DNS 解析涉及以下核心组件: CoreDNS:集群 DNS 服务器 kube-dns Service:指向 CoreDNS Pod 的 Service EndpointSlice:记录 CoreDNS Pod 的 IP 地址 Pod /etc/resolv.conf:Pod 内的 DNS 配置 flowchart TD subgraph Pod["Pod (应用容器)"] A["应用发起 DNS 查询"] B["读取 /etc/resolv.conf"] end subgraph CoreDNS["CoreDNS Pod"] C["CoreDNS 服务"] D["Watch API Server&quo...
Deployment 滚动更新流程
Deployment 滚动更新流程本文档描述 Kubernetes Deployment 如何通过 ReplicaSet Controller 管理滚动更新的完整流程。 概述Deployment 滚动更新涉及以下核心组件: Deployment Controller:管理 Deployment 生命周期 ReplicaSet Controller:管理 Pod 副本数 API Server:存储和分发资源状态 flowchart TD subgraph User["用户操作"] A["kubectl apply -f deployment.yaml"] end subgraph APIServer["API Server"] B["Deployment 资源"] C["ReplicaSet 资源"] D["Pod 资源"] end subgraph ...
HPA 水平自动扩缩流程
HPA 水平自动扩缩流程概述HPA (Horizontal Pod Autoscaler) 根据 Pod 的资源使用率(如 CPU、内存)或自定义指标自动调整 Deployment、ReplicaSet 或 StatefulSet 的副本数。 核心架构1234567891011121314151617181920212223242526272829303132333435363738┌──────────────────────────────────────────────────────────────────────────────┐│ HorizontalController ││ pkg/controller/podautoscaler/horizontal.go ││ ...
EndpointSlice 控制器流程
EndpointSlice 控制器流程本文档描述 Kubernetes EndpointSlice 控制器如何让 Service 感知后端 Pod 变化的完整流程。 概述EndpointSlice 控制器负责: 监听 Service 和 Pod 变化 生成和管理 EndpointSlice 资源 记录 Service 后端 Pod 的 IP 地址和端口 flowchart TD subgraph APIServer["API Server"] A["Service 资源"] B["Pod 资源"] C["EndpointSlice 资源"] D["Node 资源"] end subgraph EndpointSliceController["EndpointSlice Controller"] E["Watch Service"] ...
PVC 供应与绑定流程
PVC 供应与绑定流程本文档描述 Kubernetes 中 PVC(PersistentVolumeClaim)、PV(PersistentVolume)和 StorageClass 的完整交互流程。 概述PVC 供应与绑定涉及以下核心组件: PV Controller:管理 PV 和 PVC 的绑定 StorageClass:定义动态供应参数 Provisioner:实际创建存储卷(in-tree 或 CSI) Scheduler:处理 WaitForFirstConsumer 模式 flowchart TD subgraph User["用户操作"] A["创建 PVC"] end subgraph APIServer["API Server"] B["PVC 资源"] C["PV 资源"] D["StorageClass"] end subgra...
