图解 Kubernetes 组件与网络模型
前言
一直没有系统的学习过 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 的完整流程:
- Ingress 层,Ingress Controller 根据配置规则分发请求。
- Service 层,根据服务发现以及负载均衡继续分发请求。
- Pod 层,服务实际运行层处理请求。

一次完整流程
- 用户执行
kubectl apply -f deploy.yml - kubectl 解析 YAML(Deployment)
- kubectl 向 kube-apiserver 发送创建请求
- kube-apiserver 做认证鉴权,把 Deployment 资源持久化保存到 etcd
- kube-apiserver 返回成功
- controller-manager 通过 Watch 机制监听到新 Deployment
- 创建 ReplicaSet 并同时创建 Pod (未正式分配资源)存入 etcd
- scheduler 选择合适的 Node 并完成 Pod 绑定,将信息存入 etcd

💬 评论区