🔧 kubectl 命令执行流程图

详细展示 kubectl 典型命令在 k8s 控制面和数据面各组件间的流程流转

📋 快速导航


🏗️ 整体架构图

🔄 典型命令流程

☁️ 控制面 (Master Node)

🖥️ 数据面 (Worker Node)

🤖 kubelet
🔹 Pod 生命周期
🔹 节点状态上报
🔹 容器管理

🌐 kube-proxy
🔹 服务代理
🔹 负载均衡
🔹 网络规则

🐳 容器运行时
🔹 容器操作
🔹 镜像管理
🔹 containerd/Docker

🖥️ 用户层

👤 用户

🔧 kubectl

⚙️ kube-apiserver
🔹 API 网关
🔹 认证授权
🔹 请求验证

💾 etcd
🔹 集群状态存储
🔹 配置数据
🔹 分布式 KV

🎛️ controller-manager
🔹 资源控制器
🔹 状态协调
🔹 生命周期管理

📅 kube-scheduler
🔹 Pod 调度
🔹 节点选择
🔹 资源分配

kubectl get
📋 查询资源

kubectl delete
🗑️ 删除资源

kubectl apply
📦 创建/更新资源

kubectl logs
📜 查看日志

控制面组件交互

命令流程


⏱️ 详细执行时序图

Syntax error in textmermaid version 11.4.0

🔍 关键流程说明

📋 kubectl get 查询流程

  1. 认证授权:kubectl 向 API Server 发送 HTTP GET 请求
  2. 数据查询:API Server 从 etcd 获取资源数据
  3. 结果返回:数据经过格式化后返回给用户

🗑️ kubectl delete 删除流程

  1. 标记删除:API Server 在 etcd 中标记资源为删除状态
  2. 控制面处理:Controller Manager 处理删除逻辑和 finalizers
  3. 数据面执行:kubelet 停止容器,最终从 etcd 中移除记录

📦 kubectl apply 创建流程

  1. 资源存储:API Server 将 Deployment 存储到 etcd
  2. 控制器响应:Controller Manager 创建 ReplicaSet 和 Pod
  3. 调度分配:Scheduler 为 Pod 选择合适的节点
  4. 容器创建:kubelet 通过 CRI 创建实际容器
  5. 网络配置:kube-proxy 更新网络规则

📜 kubectl logs 日志流程

  1. 请求转发:API Server 将日志请求转发到目标节点
  2. 日志获取:kubelet 从容器运行时获取日志数据
  3. 流式返回:日志以流的形式实时返回给用户

🔗 相关资源

核心组件文档

工具链相关

实践指南


说明:本文档基于 Sources/AIGC/∑ k8s 入门到精通 MOC 的知识体系创建,旨在提供 kubectl 命令执行的可视化流程参考。