什么是Kubernetes?
Kubernetes
是自动化容器操作平台,包括部署,调度和节点集群间扩展,可以将Docker
看成Kubernetes内部使用的低级别组件。
使用Kubernetes可以:
- 自动化容器部署和复制
- 随时扩展或收缩容器规模
- 将容器组织成组,并且提供容器间的负载均衡
- 很容易地升级应用程序容器的新版本
- 提供容器弹性,如果容器失效就替换它
集群
集群
是一组节点,可以是物理服务器或者虚拟机。
Pod
Pod包含一组容器和卷。同一个Pod里的容器共享同一个网络命名空间,可以使用localhost互相通信。Pod是短暂的,不是持续性实体。
Lable
一些Pod
有Label
,一个Label
是attach到Pod
的一对键/值对,用来传递用户定义的属性。
Replication Controller
Replication Controller
确保任意时间都有指定数量的Pod副本
在运行。如果为某个Pod
创建了Replication Controller
并且指定3个副本,它会创建3个Pod,并且持续监控它们。如果某个Pod不响应,那么Replication Controller
会替换它,保持总数为3。
当创建Replication Controller
时,需要指定:
- Pod模板:用来创建Pod副本的模板
- Label:Replication Controller需要监控的Pod的标签。
Service
Service
是定义一系列Pod
以及访问这些Pod的策略的一层抽象。Service
通过Label
找到Pod组。因为Service是抽象的,所以在图表里通常看不到它们的存在,这也就让这一概念更难以理解。
Node
节点是物理或者虚拟机器,作为Kubernetes worker
,通常称为Minion。每个节点都运行如下Kubernetes关键组件:
- Kubelet:是主节点代理。
- Kube-proxy:Service使用其将链接路由到Pod,如上文所述。
- Docker或Rocket:Kubernetes使用的容器技术来创建容器。
Kubernetes Master
集群拥有一个Kubernetes Maste
。
Kubernetes Master
提供集群的独特视角,并且拥有一系列组件,比如Kubernetes API Server
。
API Server
提供可以用来和集群交互的REST端点。master节点包括用来创建和复制Pod的Replication Controller
。
Reference :