Kubernetes简介及基本组件

1.Kubernetes简介

KubernetesGoogle开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,如图1.3所示。利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能总结如下:

1) 使用Docker对应用程序包装(package)、实例化(instantiate)、运行(run)

2) 以集群的方式运行、管理跨机器的容器。

3) 解决Docker跨机器容器之间的通讯问题。

4) Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态。

Kubernetes简介及基本组件_第1张图片

 图1.3 Kubernetes的功能结构

2.Kubernetes集群平台组成结构

Kubernetes总体包含两种角色,一个是Master节点,负责集群调度、对外接口、访问控制、对象的生命周期维护等工作;另一个是Node节点,负责维护容器的生命周期,例如创建、删除、停止Docker容器,负责容器的服务抽象和负载均衡等工作。其中Master节点上,运行着三个核心组件:API Server, Scheduler, Controller Mananger。Node节点上运行两个核心组件:Kubelet, Kube-Proxy。API Server提供Kubernetes集群访问的统一接口,Scheduler, Controller Manager, Kubelet, Kube-Proxy等组件都通过API Server进行通信,API Server将Pod, Service, Replication Controller, Daemonset等对象存储在ETCD集群中。ETCD是CoreOS开发的高效、稳定的强一致性Key-Value数据库,ETCD本身可以搭建成集群对外服务,它负责存储Kubernetes所有对象的生命周期,是Kubernetes的最核心的组件。各个组件之间的关系详情如图1-4所示。

下面先大概介绍一下Kubernetes的核心组件的功能:

API Server: 提供了资源对象的唯一操作入口,其他所有的组件都必须通过它提供的API来操作资源对象。它以RESTful风格的API对外提供接口。所有Kubernetes资源对象的生命周期维护都是通过调用API Server的接口来完成,例如,用户通过kubectl创建一个Pod,即是通过调用API Server的接口创建一个Pod对象,并储存在ETCD集群中。

Controller Manager: 集群内部的管理控制中心,主要目的是实现Kubernetes集群的故障检测和自动恢复等工作。它包含两个核心组件:Node Controller和Replication Controller。其中Node Controller负责计算节点的加入和退出,可以通过Node Controller实现计算节点的扩容和缩容。Replication Controller用于Kubernetes资源对象RC的管理,应用的扩容、缩容以及滚动升级都是有Replication Controller来实现。

Scheduler: 集群中的调度器,负责Pod在集群的中的调度和分配。

Kubelet: 负责本Node节点上的Pod的创建、修改、监控、删除等Pod的全生命周期管理,Kubelet实时向API Server发送所在计算节点(Node)的信息。

Kube-Proxy: 实现Service的抽象,为一组Pod抽象的服务(Service)提供统一接口并提供负载均衡功能。

Kubernetes简介及基本组件_第2张图片

 图1.4 kubernetes集群服务各组件关系

你可能感兴趣的:(kubernetes,docker,容器)