kubernetes 介绍
Kubernetes 核心概念
1.Pod
pod是若干相关容器的组合,pod包含的容器运行在同一台宿主机上,这些容器使用相同的网络命名空间、IP地址和端口,相互之间能通过localhost来发现和通信。另外,这引起容器还可共享一块存储卷空间。在Kubernetes中创建、调度和管理的最小单位是pod,而不是容器,pod通过提供更高层次的抽象,提供了更加灵活的部署各管理模式。
2.Replication Controller
Replication Controller 用来控制管理Pod副本(replica,或者称为实例),replication controller确保任何时候Kubernetes集群中有指定数量的pod副本在运行。如果少于指定数量的pod副本,replication controller会启动新的pod副本,反之会杀死多余的副本以保证数量不变。另外,replication controller是弹性伸缩、滚动升级的实现核心。
3.Service
service 是真实应用服务的抽象,定义了pod的逻辑集合和访问这个pod集合的策略。service将代理pod对外表现为一个单一访问接口,外部不需要了解后端pod如何运行,这给扩展和维护带来很多好处,提供了一套简化的服务代理和发现机制。
4.Label
Label是用于区分pod、service、replication controller 的Key/Value对,实际上,Kubernetes中的任意API对象都可以通过Label进行标识。每个API对象可以有多个Label,但是每个Label的Key只能对应一个Value。Label是Service各Replication Controller 运行的基础,它们都通过Label来关联Pod,相比于强绑定模型,这是一种非常好的松耦合关系。
5.Node
Kubernetes属于主从分布式集群架构,Kubernetes Node(简称为Node,早期版本叫作Minion)运行并管理容器。Node作为Kubernetes的操作单元,用来分配给pod(或者说容器)进行绑定,pod最终运行在node上,Node可以认为是pod的宿主机。