一、Kubernetes核心组件
下图是Kubernetes架构图
Kubernetes主要由以下几个核心组件组成:
1、etcd 保存了整个集群的状态
2、apiserver 提供了资源操作的唯一入口。并提供认证、授权、访问控制、API注册和发现等机制
3、controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等
4、scheduler 负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上
5、kubelet 负责维护容器的生命周期,同时也负责 Volume(CV)和网络(CNI)的管理
6、Container runtime 负责镜像管理以及Pod和容器的真正运行(CRI)
7、kube-proxy 负责为Service提供cluster内部的服务发现和负载均衡
二、Kubernetes组件通信
Kubernetes多组件之间的通信原理如下
1、apiserver 负责 etcd 存储的所有操作,且只有 apiserver 才能直接操作 etcd 集群
2、apiserver 对内(集群中的其他组件)和对外(用户)提供统一的 REST API,其他组件均通过 apiserver 进行通信
- controller manager、scheduler、kube-proxy 和 kubelet 等均通过 apiserver watch API 监测资源变化