0%

K8s架构及组件

介绍

kubernetes是具有中心节点的分布式架构,存在master节点、node节点

截图11

各个组件的基本功能:

  • API Server:作为K8s通讯的核心组件,K8s内部交互以及接收发送指令的组件。
  • controller-manager:作为K8s的核心组件,主要做资源调度,根据集群情况分配资源
  • etcd:一个key-value的数据库,存储存储集群的状态信息
  • scheduler:负责调度每个工作节点
  • cloud-controller-manager:负责调度其他云服务产品
  • kubelet:管理Pods上面的容器。
  • kube-proxy:负责处理其他Slave或客户端的请求。
  • Pod:可以理解为就是运行的容器

master是集群管理中心,它的组件可以集群内任意节点上运行,但是为了方便管理,一般是在某一台主机上运行所有的master组件,并且不在该主机是上运行用户容器

组件

master组件

  • kube-apiserver:用于暴露kubernests API,任何的资源请求/调用都是通过kube-apiserver提供的接口进行
  • kube-controller-manager:控制器管理器,用于对控制器进行管理,是集群中处理常规任务的后台线程
  • kube-scheduler:监视新创建没有分配到node的pod,为pod选择一个node运行
  • etcd:是k8s提供的默认存储系统,保存所有集群数据

node组件

用于运行以及维护pod,管理volume(CVI)和网络(CNI),维护pod及service等信息

  • kubelet:负责维护容器的生命周期(创建pod,销毁pod),同时也负责volume(CVI)和网络(CNI)管理
  • kube-proxy
    • 通过在主机上维护网络规则并执行连续转发来实现service(iptables/ipvs)
    • 随时与apiserver通信,把service或pod改变提交给apiserver,保存至etcd中,负责service实现从内部pod到service、从外部node到service的访问
  • container-runtime
    • 容器运行时(container runtime)
    • 负责镜像管理以及pod和容器的真正运行
    • 支持docker、container、Rkt、pouch、kata等多种运行时

Add-ons附件

Add-ons(附件)使功能更加丰富,没有它也不影响实际使用,可以与主体程序很好结合起来使用

  • coredns/kube-dns:负责为整个集群提供DNS服务
  • Ingress Controller:为服务提供集群外部访问
  • Heapster/Metries-server:提供集群资源监控(监控容器可以使用prometheus)
  • Dashboard:提供集群GUI
  • Federation:提供跨可用区的集群
  • Fluentd-elastisearch:提供集群日志采集、存储与查询