type
status
date
slug
summary
tags
category
icon
password
想象一下你有一个大型的工厂,里面有很多机器(Node)来生产产品(容器化应用)。K8s 就是这个工厂的管理系统。
K8s 的核心目标是让你的产品(应用)顺利生产出来,而且能根据需要随时调整生产规模(扩容缩容),以及确保机器的正常运作(监控和故障处理)。
工厂的各个部分和 K8s 的组件对应:
  • API Server (工厂调度员): 所有生产指令(部署应用、调整机器等)都要经过调度员,调度员会检查指令是否合法,然后安排相应的机器去执行。
  • Scheduler (生产调度员): 生产调度员负责分配生产任务(运行容器)给哪些机器(Node)。他会根据机器的负载情况,以及产品需要的资源(比如内存、CPU)来决定。
  • Kubelet (机器上的小助手): 每个机器(Node)上都安装一个小助手,它负责执行调度员的指令,比如启动容器、监控容器的运行状况等等。 想象成机器的本地控制系统。
  • Kube-proxy (网络管理员): 网络管理员负责协调机器之间的数据传输。比如产品从一个机器到另一个机器进行传递。
  • Etcd (工厂的订单记录): Etcd 就好比工厂的订单记录本,记录着所有产品(应用)、机器(Node)的信息,确保每个人都能看到最新的情况。
  • Controller Manager (工厂管理中心): 这是一个管理中心的团队,负责协调各种任务,比如:
    • Deployment (批量生产): 确保一定数量的产品(Pod)总是运行着,并且能自动进行更新维护(升级), 就像工厂需要持续生产相同的产品一样。
    • Service (产品出口): 为外部提供一个稳定的产品出口,让客户能够找到产品,即使机器发生变化,产品出口还是固定不变的。
    • 其他控制器: 负责其他方面的事情,比如监控机器是否正常工作,保证资源不被过度使用等。
整个流程 - 部署一个应用:
  1. 订单: 你需要创建一个 YAML 文件,描述你要部署的应用(镜像、数量等等),这个文件就像你的订单。
  1. 提交订单: 将你的订单提交给 API Server (调度员)。
  1. 调度生产: API Server 会把订单传递给 Scheduler (生产调度员)。
  1. 分配机器: Scheduler 选择合适的机器(Node)来运行你的产品,并将这些指令传递给 Kubelet (小助手)。
  1. 启动容器: Kubelet 在指定的机器上启动容器,运行你的应用。
  1. 网络连接: Kube-proxy (网络管理员) 负责保证其他机器能访问到你的应用。
  1. 产品运送: 客户通过 Service (产品出口) 访问你的应用。
  1. 持续生产: Controller Manager (管理中心) 会监控应用运行状况,并进行维护,比如应用崩溃后自动重启。
关键概念:
  • Pod: 是一个容器的集合,你的应用通常运行在一个 Pod 中。
  • Deployment: 保证你的应用运行,并能自动扩展和维护。
  • Service: 给外部提供稳定的访问你的应用的方式。
  • Node: 就是你的生产机器。
总结:K8s 就像一个强大的工厂管理系统,帮你自动部署、管理和扩展你的应用,让你的应用能够顺利运行,并根据需求进行调整。 记住这些组件和它们之间的协作关系,你就能更好地理解 K8s 的运作方式。
Serv00自建邮局K8S与Docker
  • Twikoo