欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

K8S - Master 和 Node 组件介绍

程序员文章站 2022-06-27 20:32:44
k8s 组件的功能...


Master

  • master 可以在集群中任何节点上运行, 通常会在一台单独虚机上启动, 并且不会在此机器上运行用户容器
  • kubectl 命令只能在 master 上运行, 在其他 node 节点上无法执行

API server

  • 对外提供 restful 的 K8S API 服务
  • 其他 master 组件通过 api server 提供的 rest 接口实现各自的功能
    如: controller 通过 api server 实时监控各个资源的状态

etcd

  • K8S 提供的高可用 kv 数据库, 用于保存所有网络配置和资源对象的状态信息, 也就是保存了整个集群的状态
  • K8S 系统中一共两类服务需要 etcd 来协同和存储配置, 分别是
    • 网络插件: flannel
    • K8S 本身, 存储各种资源对象的状态和元信息

scheduler

  • 调度器, 负责为 pod 寻找合适的 node
  • 监听新的 pod 的信息, 并通过调度算法为该 pod 选择一个最合适的 node 节点, 调度成功后, 会将 pod 的信息绑定到 node 上, 同时将信息写入 etcd, 绑定成功后, 由 node 上的 kubelet 组件接手管理 pod 的生命周期
  • 输入是 pod 和 node 的列表, 输出是 node 和 pod 的绑定
  • K8S 提供调度算法, 同样保留了接口, 可以自定义调度算法

controller manager(创建完成后管理)

  • 维护集群状态, 如故障检测, 自动扩展, 回滚更新等
  • 每个资源一般都对应一个 controller, 而这些 controller 通过 api server 实时监控各个资源的状态, controller manager 负责管理这些 controller
  • 当资源状态因为故障发生改变时, controller 会尝试将系统由"现有状态"恢复到"期待状态", 保证其下每一个 controller 所对应的资源处于"期望状态"
  • 包括 管理控制器(kube-controller-manager) 和 云管理控制器(cloud-controller-manager)

Node

kubelet

  • 监视已经分配完的 pod, 负责 pod 生命周期的管理
  • 与 master 协作, 维护和管理 node 上所有容器, 实现集群管理端基本功能
  • 可以理解为 kubelet 是 K8S 在每个 node 上的 agent, 它负责使 pod 的运行状态和预期的保持一致

kube-proxy

  • 负责请求转发
  • 实现 service 的通信与负载均衡机制的重要组件, 将 service 的请求转发到后端 pod 上

container runtime

  • 容器运行环境
  • 目前 k8s 支持 docker 和 rkt 两种

本文地址:https://blog.csdn.net/yang_kaiyue/article/details/109598213

相关标签: # K8S