Autoscaling资源和自动扩缩控制器,可以自动根据度量指标,如处理器、内存占用率等,来设置Deployment或ReplicaSet的期望状态。当度量指标出现变化时,系统自动按照Autoscaling-Deployment-ReplicaSet-Pod这样的顺序层层变更,最终实现度量指标自动扩容/缩容。04 Kubernetes整体架构Kubernetes是按集群进行管理的,包括一个Master节点和多个工作节点。 1. Kubernetes的Master 节点Kubernetes的 Master 节点包含四个主要的组件:API
Server、Controller、Scheduler 以及 etcd。如下图所示: API
Server:顾名思义是用来处理 API 操作的,Kubernetes 中所有的组件都会和 API Server 进行连接,组件与组件之间一般不进行独立的连接,都依赖于 API
Server 进行消息的传送;Controller:是控制器。它用来完成对集群状态的一些管理。比如刚刚我们提到的三个例子,都是由 Kubernetes 中的 Controller 来进行完成的;Scheduler:是调度器。“调度器”顾名思义就是完成调度的操作。调度是指为新创建的Pod找到一个最恰当的宿主机节点来运行它。从编排系统角度看,Node是资源的提供者,Pod是资源的使用者。调度是对两者的撮合。Node提供三方面资源:计算资源、存储资源和网络资源。调度过程分为两步,第一步是从集群所有节点中找出一批剩余资源可以满足该Pod运行的节点。第二步是从符合运行要求节点中找出一个最符合的节点完成调度。etcd:是一个分布式的一个存储系统,API
Server 中所需要的这些元数据都被放置在 etcd 中,etcd本身是一个高可用系统,通过 etcd 保证整个Kubernetes 的 Master 组件的高可用性。