架构
控制平面组件
- etcd分布式持久化存储
- API服务器
- 调度器
- 控制管理器
工作节点上运行的组件
- Kublet
- Kublet服务代理(kube-proxy)
- 容器
组件间如何通信
Kubernetes系统组件只能通过API服务器通信,它们之间不会直接通信。
单组件运行多实例
为了保证高可用性,控制平面的美国和组件可以有多个实例。etcd和API服务器的多个实例可以并行工作,但是调度器和控制管理器在给定时间内只能有一个实例起作用
API服务器
API服务器先提供了一种一致的方式将对象存储到etcd,也对这些对象做校验,如果不符合规范,则无法存入。
还提供认证客户端,认定客户端是否可以对请求的资源执行请求操作。
协作
使用kubectl创建控制器,API服务器接收到数据,创建ReplicaSet,由ReplicaSet控制器接收,会根据接收的配置检查是否有满足的pod。然后控制器会根据ReplicaSet的pod模板创建pod资源。调度器会选择合适的节点运行pod。指定到一个或者几个节点,kublet会接收到通知,kublet会根据pod模板创建pod。