是什么:
自动化容器操作的开源平台,操作包括:步数,调度,节点集群间扩展
可将Docker看成是Kubernetes内部使用的低级别组件,不仅支持Docker还有Rocket
做什么:
1.自动化容器部署和复制
2.随时扩展或收缩容器规模
3.将容器组织成组,并提供容器间的负载均衡
4.很容易的升级应用程序容器的新版本
5.提供容器弹性,如果容器失效就替换
…
等等
怎么做
实际上,使用Kubernetes只需一个部署文件,使用一条命令就可以部署多层容器(前端,后台等)的完整集群
$ kubectl create -f single-config-file.yaml
典型的Kubernetes架构图
Node
集群中的工作结点,运行真正的应用程序,最小运行单元是pod
Node上运行着Kubernetes的Kubelet、kube-proxy服务进程,这些服务进程负责Pod的创建、启动、监控、重启、销毁、以及实现软件模式的负载均衡。
Pod
Pod是Kubernetes最基本的操作单元,它包含一个或多个紧密相关的容器,一个Pod可以被一个容器化的环境看作应用层的“逻辑宿主机”;一个Pod中的多个容器应用通常是紧密耦合的,Pod在Node上被创建、启动或者销毁;
Service
在Kubernetes的世界里,虽然每个Pod都会被分配一个单独的IP地址,但这个IP地址会随着Pod的销毁而消失,但是如果有一组Pod组成一个集群来提供服务,那么如何来访问它呢?.
一个Service可以看作一组提供相同服务的Pod的对外访问接口,Service作用于哪些Pod是通过Label Selector来定义的。
如果Service要提供外网服务,需指定公共IP和NodePort,或外部负载均衡器;
• NodePort
系统会在Kubernetes集群中的每个Node上打开一个主机的真实端口,这样,能够访问Node的客户端就能通过这个端口访问到内部的Service了
Volume
Volume是Pod中能够被多个容器访问的共享目录。
Label
Label的作用就是用来识别对象,管理关联关系等,如Service和Pod的关联关系。
RC(Replication Controller)
Kubernetes通过RC中定义的Lable筛选出对应的Pod实例,并实时查看它的状态和数量,实际数量少于定义的数量,会根据RC中定义的Pod模板来创建一个新的Pod,然后将新的Pod调度到合适的Node上启动运行,直到Pod实例数量达到预定目标。