Kubernetes的核心组件主要包括:

  • etcd 保存整个集群的状态

  • apiserver 提供资源操作的唯一入口,提供认证、授权、访问控制、API注册和发现等机制

  • controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等

  • scheduler 负责资源调度,按照预定的调度策略将Pod调度到相应的机器

  • kubelet 负责维护容器的生命周期,同时负责Volume(CVI)和网络(CNI)管理

  • Container runtime 负责镜像管理及Pod和容器的运行(CRI)

  • kube-proxy 负责为Service提供cluster内部的服务发现和负载均衡

组件通信

apiserver负责etcd存储的所有操作,并且只有apiserver才能直接操作etcd集群

apiserver对内(集群中的其他组件)和对外(用户)提供统一的REST API,其他组件均通过apiserver进行通信。

controller manager、scheduler、kube-proxy和kubelet等通过apiserver watch api监测资源变化情况,并对资源作出相应的操作。

apiserver也可以调用kubelet API(如logs、exec、attatch等),默认是不检验kubelet证书的,这也可以通过--kubelet-certificate-authority 开启。

results matching ""

    No results matching ""