Kubernetes基本对象概念
pod:是最小部署单元,一个pod有一个或多个容器组成,pod中容器共享存储和网络,在同一台docker主机上运行。
Service:一个应用服务抽象,定义了pod逻辑集合和访问这个pod集合的策略。service代理pod集合对外表现是为一个访问入口,分配一个集群IP地址,来自这个ip的请求将负载均衡转发后端pod中的容器。Service通过Lable Selector选择一组pod提供服务。
Volume:数据卷,共享pod中容器使用的数据。
Namespace:命名空间将对象逻辑上分配到不同Namespace,可以是不同的项目、用户等区分
管理,并设定控制策略,从而实现多租户。
Lable:标签用于区分对象(比如pod、service),键/值对存在,每个对象可以有多个标签,通过标签关联对象。
Replicaset:下一代Replication Controller。确保任何给定时间指定的pod副本数量。并提供声明式更新功能。RC与RS唯一区别就是lable selector支持不同,RS支持新的基于机会的标签,RC仅支持基于等式的标签。
Deployment:是一个更高层次的API对象,它管理ReplicaSets和Pod,并提供声明式更新等功能。官方建议使用Deployment管理ReplicaSets,而不是直接使用ReplicaSets,意味着永远不需要直接操作ReplicaSet对象。
StatefulSet:适合持久性的应用程序,有唯一的网络标识符(IP),持久存储,有序的部署、扩展、删除和滚动更新。
DaemonSet:确保所有(或一些)节点运行同一个Pod,当节点加入Kebernetes集群中,Pod会被调度到该节点上运行,当节点从集群中移除时,DaemonSet的Pod会被删除,删除DaemonSet会清理它所有创建的Pod.
Job:一次性任务,运行完成后Pod销毁,不再重新启动新容器,还可以任务定时运行。