国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 服务器 > Docker学习总结(19)——Google开源的容器集群管理系统Kubernetes介绍

Docker学习总结(19)——Google开源的容器集群管理系统Kubernetes介绍

来源:程序员人生   发布时间:2017-03-06 11:05:47 阅读次数:3041次

Kubernetes是Google开源的容器集群管理系统。它构建Ddocker技术之上,为容器化的利用提供资源调度、部署运行、服务发现、扩容缩容等整1套功能,本质上可看做是基于容器技术的mini-PaaS平台。

Kubernetes is an open-source platform for automating deployment, scaling, and operations of application containers across clusters of hosts, providing container-centric infrastructure.

With Kubernetes, you are able to quickly and efficiently respond to customer demand:

Deploy your applications quickly and predictably.

Scale your applications on the fly.

Seamlessly roll out new features.

Optimize use of your hardware by using only the resources you need.

Our goal is to foster an ecosystem of components and tools that relieve the burden of running applications in public and private clouds.

Kubernetes介绍

Kubernetes是Google开源的容器集群管理系统,其提供利用部署、保护、 扩大机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的利用,其主要功能以下:

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

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

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

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

当前Kubernetes支持GCE、vShpere、CoreOS、OpenShift、Azure等平台,除此以外,也能够直接运行在物理机上。

Kubernetes以RESTFul情势开放接口,用户可操作的REST对象有3个:

pod:是Kubernetes最基本的部署调度单元,可以包括container,逻辑上表示某种利用的1个实例。比如1个web站点利用由前端、后端及数据库构建而成,这3个组件将运行在各自的容器中,那末我们可以创建包括3个container的pod。

service:是pod的路由代理抽象,用于解决pod之间的服务发现问题。由于pod的运行状态可动态变化(比如切换机器了、缩容进程中被终止了等),所以访问端不能以写死IP的方式去访问该pod提供的服务。service的引入旨在保证pod的动态变化对访问端透明,访问端只需要知道service的地址,由service来提供代理。

replicationController:是pod的复制抽象,用于解决pod的扩容缩容问题。通常,散布式利用为了性能或高可用性的斟酌,需要复制多份资源,并且根据负载情况动态伸缩。通过replicationController,我们可以指定1个利用需要几份复制,Kubernetes将为每份复制创建1个pod,并且保证实际运行pod数量总是与该复制数量相等(例如,当前某个pod宕机时,自动创建新的pod来替换)。

master运行3个组件:

apiserver:作为kubernetes系统的入口,封装了核心对象的增删改查操作,以RESTFul接口方式提供给外部客户和内部组件调用。它保护的REST对象将持久化到etcd(1个散布式强1致性的key/value存储)。

scheduler:负责集群的资源调度,为新建的pod分配机器。这部份工作分出来变成1个组件,意味着可以很方便地替换成其他的调度器。

controller-manager:负责履行各种控制器,目前有两类:

endpoint-controller:定期关联service和pod(关联信息由endpoint对象保护),保证service到pod的映照总是最新的。

replication-controller:定期关联replicationController和pod,保证replicationController定义的复制数量与实际运行pod的数量总是1致的。

slave(称作minion)运行两个组件:

kubelet:负责管控docker容器,如启动/停止、监控运行状态等。它会定期从etcd获得分配到本机的pod,并根据pod信息启动或停止相应的容器。同时,它也会接收apiserver的HTTP要求,汇报pod的运行状态。

proxy:负责为pod提供代理。它会定期从etcd获得所有的service,并根据service信息创建代理。当某个客户pod要访问其他pod时,访问要求会经过本机proxy做转发。

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生