图解 Kubernetes 组件与网络模型

Pika 2026-09-10 11:43 1

前言


一直没有系统的学习过 Kubernetes ,最近抽出了点时间学习 Kubernetes。


Kubernetes 是典型的 Master + Worker 架构,跟 Console + Sidecar 有些相似,Master 节点负责调度、监控、是所有流量的入口,Worker 负责具体的 Pod 运行。


Kubernetes 核心组件


Kubernetes 组件分为两大类:Control Plane(控制层) 和 Worker Node(工作层)


控制层



  • kube-apiserver:提供 RESTful API,集群的唯一入口,所有组件和用户请求都要经过它。

  • etcd:分布式 KV 存储,保存集群所有状态数据(Pod、Service、ConfigMap 等)。

  • kube-scheduler:负责把新创建的、还没绑定节点的 Pod 调度到合适的 Node 上。

  • kube-controller-manager:运行各种控制器(Deployment、ReplicaSet、Service 等控制器)。


工作层



  • kubelet:负责接收 apiserver 下发的 Pod 定义,上报 Pod 状态。

  • kube-proxy:负责 Service 的负载均衡与转发。

  • container:真正跑容器,早期是 Docker



Kubernetes 网络模型


一次网络请求在 Kubernetes 的完整流程:



  1. Ingress 层,Ingress Controller 根据配置规则分发请求。

  2. Service 层,根据服务发现以及负载均衡继续分发请求。

  3. Pod 层,服务实际运行层处理请求。



一次完整流程



  1. 用户执行 kubectl apply -f deploy.yml

  2. kubectl 解析 YAML(Deployment)

  3. kubectl 向 kube-apiserver 发送创建请求

  4. kube-apiserver 做认证鉴权,把 Deployment 资源持久化保存到 etcd

  5. kube-apiserver 返回成功

  6. controller-manager 通过 Watch 机制监听到新 Deployment

  7. 创建 ReplicaSet 并同时创建 Pod (未正式分配资源)存入 etcd

  8. scheduler 选择合适的 Node 并完成 Pod 绑定,将信息存入 etcd


最新回复 (3)
  • 赵公明 09-11 08:53
    1

    感谢。最近正好在学习云原生相关内容。

  • Kill Joy 09-11 09:07
    2

    佬 画草图用的skills是哪个,看着效果不错

  • Pika 楼主 09-11 09:46
    3

    不是 AI 画的,我自己手画的,有需要的话可以看看:https://excalidraw.com/

* 帖子来源Linux.do
返回