k8s手撕架构图+详解


"如果您在解决类似问题时也遇到了困难,希望我的经验分享对您有所帮助。如果您有任何疑问或者想分享您的经历,欢迎在评论区留言,我们可以一起探讨解决方案。祝您在编程路上顺利前行,不断突破技术的难关,感谢您的阅读!"


1.架构图

这个架构图展示了一个典型的Kubernetes集群的结构和各个组件的作用。以下是详细解释

2.架构图整体介绍

  1. Controller Plane(控制平面)
    • 负责管理和控制整个Kubernetes集群。
    • 包含以下组件:
      • etcd: 一个分布式键值存储,存储集群的所有数据。
      • Scheduler(调度器): 负责将Pod分配到合适的工作节点(Worker Node)。
      • Controller Manager(控制器管理器): 运行各种控制器,负责管理不同类型的控制循环,例如节点控制器、复制控制器等。
      • API Server(API服务器): 控制平面的入口,处理集群的所有REST请求,协调各组件的操作。
  2. Worker Nodes(工作节点)
    • 承载应用容器,运行实际的应用工作负载。
    • 每个工作节点包含以下组件:
      • kubelet: 管理节点上Pod的生命周期,确保容器按预期运行。
      • kube-proxy: 负责Pod的网络路由,为服务提供负载均衡。
      • CNI(Container Network Interface): 提供容器网络接口,管理Pod之间的网络连接。

3.流程与作用

  1. 用户(橙色图标): 通过API Server与Kubernetes集群交互,例如提交部署请求。
  2. API Server: 接受用户请求,进行验证和处理,将请求写入etcd存储。
  3. etcd: 保存集群的所有状态和配置数据,例如节点信息、Pod定义等。
  4. Scheduler: 从etcd获取调度任务,将Pod分配到合适的工作节点。
  5. Controller Manager: 监控集群状态,确保系统达到所需的状态,例如确保正确数量的副本运行。
  6. Worker Nodes : 运行实际的应用工作负载。每个工作节点通过kubelet管理Pod,通过kube-proxy处理网络流量。
    • Pod: 最小的部署单元,一个或多个容器的集合,容器(c1, c2)运行在Pod中。
    • kubelet: 监听API Server的指令,启动和停止Pod中的容器。
    • kube-proxy: 维护网络规则,确保服务间的网络通信。
  7. Load Balancer(LB)和VIP: 提供外部流量入口,通过负载均衡器将流量分配到后端的服务。

4.网络流量

  • 外部用户(蓝色图标)通过VIP访问集群,VIP将流量分配给负载均衡器(LB)。
  • 负载均衡器将流量路由到具体的工作节点上运行的Pod。

这张架构图展示了Kubernetes集群的核心组件及其工作流程,体现了如何管理和运行分布式应用。

相关推荐
孔令飞5 小时前
知己知彼,百战不殆:AI SKILL 实现原理剖析
云原生·go·ai编程
姜鱼问生7 小时前
网页一片白?Docker 跑 Nginx 读不到文件,403 Forbidden 排查实录
nginx·docker·容器
\光辉岁月/8 小时前
2.spring5-IOC
java·容器·ioc·注解
分布式存储与RustFS8 小时前
把 LSM 引擎直接架在对象存储上:slatedb 能不能跑在 RustFS 上?
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
java_logo8 小时前
Docker 部署 Excalidraw:轻松搭建手绘风格白板
运维·docker·容器·excalidraw·白板·轩辕镜像
时间售卖铺11 小时前
MySQL 日志管理
运维·数据库·mysql·云原生
老郭a11 小时前
流量一涨 Pod 扩不出来?K8s HPA 弹性伸缩配置避坑指南
云原生
程序员清风11 小时前
LibreChat 实战:用 Docker 搭建可扩展的多模型对话平台
运维·docker·容器
Web3&Basketball12 小时前
从0到1落地AI Agent沙箱隔离Docker实战:踩坑全记录
运维·docker·容器·agent·容器安全·沙箱隔离
xianyuCcCcCCCcc12 小时前
Kubernetes Service 与网络代理
网络·云原生·kubernetes