基本对象
Pod
pod是最小部署单元,一个pod有一个或多个容器组成,pod中容器共享存储和网络,在同一个Docker主机上运行。
Service
Service一个应用服务抽象,定义了pod逻辑集合和访问这个pod集合的策略。
Service代理pod集合对外表现为一个访问入口,分配一个集群ip地址,来自这个ip的请求将负载转发后端pod中的容器。
Service通过Lable Selector选择一组pod提供服务。
Volume
数据卷,共享pod中容器使用的数据。
Namespace
命名空间将对象逻辑上分配到不通namespace,可以是不同项目,用户等区分管理,并设定控制策略,从而实现多租户,命名空间也称为虚拟集群。
Lable
标签用于区分对象,键/值对存在,每个对象可以有多个标签,通过标签关联对象。
基于基本对象更高层次抽象
ReplicaSet
下一代Replication Controller 确保任何给定时间指定的pod副本数量,并提供声明式更新等功能,RC与RS唯一区别就是lable selector支持不同,RS支持新的基于集合的标签,RC仅支持基于等式的标签。
Deployment(无状态控制器)
Deployment是一个更高层次API对象,它管理RS和pod,并提供声明式更新等功能。
StatefulSet(有状态控制器)
StatefulSet适合持久性的应用,有唯一的网络标识符(IP),持久存储,有序的部署、扩展、删除和滚动更新。
DaemonSet
DaemonSet确保所有或一些节点运行同一个pod,当节点加入kubernetes集群中,pod会被调度到该节点运行,当节点从集群中移除时,DaemonSet的pod会自动被删除,删除DaemonSet会清理所有pod
Job
一次性任务,运行完成后pod销毁,不再重新启动新容器,还可以定时运行任务
CronJob
Cronjob管理基于时间的job
在给定时间只运行一次
周期性地在给定时间点运行
使用前提条件:当时有kubernetes集群,版本>=1.8,对于先前版本的集群,版本<1.8 启动api server时 通过传递选项--runtime-config=batch/v2a1pha1=true可以开启batch/v2alpha1 api
Horizontal Pod Autoscaling(自动扩展)
应用的资源使用率通常都有高峰和低估的时候,即何削峰填谷,提高集群的整体资源利用率,让service中的pod个数自动调整,这就要依赖于Horizontal Pod Autoscaling了 顾名思义,使pod水平自动缩放