K8S基本概念和组件

特点

  • 便携性
    无论公有云、私有云、混合云还是多云架构都全面支持
  • 可扩展
    模块化、可插拔、可挂载、可组合,支持各种形式的扩展
  • 自修复
    自保持应用状态、自重启、自复制、自缩放,声明式语法

组件

  • etcd 保存整个集群状态,充当数据库角色,只与API Server通讯
  • api server 提供资源操作的唯一入口,提供认证、授权、访问控制、API注册和发现等机制
  • controller manager 负责维护集群状态,比如故障检测、自动扩容、滚动更新等
  • scheduler 负责资源的调度,按照预定的策略将Pod调度到相应的机器上
  • kubelet 负责维护容器生命周期,同时负责Volume和网络管理
  • Container runtime 负责镜像管理以及Pod和容器运行
  • kube-proxy 负责为Service提供cluster内部的服务发现和负载均衡

scheduler和controller-manager都是通过apiservier从etc中获取各种资源状态进行相应的调度和控制操作

第三方组件

  • kube-dns 负责为整个集群提供DNS服务
  • Ingress Controller 为服务提供外网人口
  • Heapster 提供资源监控
  • Dashboard 提供GUI

组件之间的关系

所有组件均通过API Server进行通信,在生产环境中master部署为多节点

etcd主要存储机器里的信息比如集群状态,集群的各Node信息等,只有API能与其通信,应部署成多节点3-5个节点

Scheduler负责整个集群的调度,通过API Server来检测Node上Pod的状态,然后根据定义的策略来调度pod并绑定Node

Controller manager 负责Pod的控制,常见的比如定义一个Pod的relicaSet,因某些原因当前pod挂掉了,这时Controller manager自动在Node重启该Pod  

kubelet是Node上的组件,检测Node上的Pod,并将状态更新到API Server

kube-proxy负责代理转发,主要控制service,将service状态更新到API Server

kubectl 集群管理组件,主要调用API Server,进行整个集群管理

posted @ 2024-10-23 08:47  lclc  阅读(9)  评论(0编辑  收藏  举报