Kubernetes-简介(一)

简介

Kubernetes是一个开源、用于管理云平台中多个主机上的容器化的应用,目标是让部署容器化的应用简单而且高效,Kuernetes提供了应用部署、规划、更新、维护的一种机制。node

在Kubernetes中,全部的容器均在Pod中运行,一个Pod能够承载一个或者多个相关的容器户建立的每一个Pod系统会自动选择一个健康而且有足够容量的节点来建立相似容器的容器,当容器建立失败,由node Agent kubelet来自动重启。可是若是是Pod失败或者机器的其余缘由,它并不会自动转移而且启动,除非用户自定义了replication controller。nginx

用户能够本身建立并管理 Pod,Kubernetes将这些操做简化为两个操做:基于相同的Pod配置文件部署多个Pod复制品;建立可替代的Pod当一个Pod挂了或者机器挂了的时候。Kubernetes API中负责来从新启动、迁移等行为的部分叫作“replication controller”,一个应用的多个Pod能够共享一个机器。后端

Kubernetes支持一种特殊的网络模型,Kubernetes建立一个地址空间,而且不动态的分配端口,它能够容许用户选择任何想使用的端口,为了实现这个功能,它为每一个Pod分配IP地址。Kubernetes提供了服务的抽象,并提供了固定的IP地址和DNS名称,而这些与一系列Pod进行动态关联,这些都经过以前提到的标签进行关联,因此咱们能够关联任何咱们想去关联的Pod,当一个Pod中的容器访问这个地址的时候,这个请求会被转发到本地代理(kube proxy),每台机器上均有一个本地代理,而后被转发到相应的后端容器。网络

Kubernetes经过一种轮询的机制选择相应的后端容器,这些动态Pod被替换的时候,Kube proxy时刻追踪着,因此,服务的IP地址(dns名称)历来不变。架构

Kubernetes中的资源,好比Pod都经过一个叫URI的东西来区分,这个URI有一个UID,URI的重要组成部分:对象的类型(好比Pod),对象的名称,对象的命名空间,对于特殊的对象类型,在同一个命名空间内,全部的名字都是不一样的,在对象只提供名称,不提供命名空间的状况下,这种状况是假定为默认的命名空间。UID是时间和空间的惟一。负载均衡

起源

大规模容器集群管理工具,从Brog到Kubernetes微服务

虽然Google推出Kubernetes的目的之一是推广其周边的计算引擎(Google Computer Engine)和谷歌应用引擎(Google App Enginx)。但Kubernetes的出现能让更多的互联网企业能够享受链接众多计算机成为集群资源池的好处。Kubernetes在模型创建之初就考虑了容器跨主机链接的要求,支持多种网络解决方案,同时在Servie层次构建集群范围内的SDN网络。其目的是将服务发现和负载均衡放置到容器可达的范围,这种透明的方式便利了各个服务间通讯,并为微服务架构的实践提供了平台基础。而在Pod层次,做为Kubernetes可操做的最小对象,其特征更是对微服务架构的原生支持。工具

2015年7月22日迭代到v1.0并正式对外公布,这意味着这个开源容器编排系统能够正式的在生产环境使用。与此同时,谷歌联合Linux基金会及其它合做伙伴共同成立CNCF基金会(Cloud Native Computing Foundation),并将Kubernetes做为首个编入CNCF管理体系的开源项目。代理

相关文章
相关标签/搜索