什么是Kubernetes?

Kubernetes 是自动化容器操作平台,包括部署,调度和节点集群间扩展,可以将Docker看成Kubernetes内部使用的低级别组件。

使用Kubernetes可以:

  • 自动化容器部署和复制
  • 随时扩展或收缩容器规模
  • 将容器组织成组,并且提供容器间的负载均衡
  • 很容易地升级应用程序容器的新版本
  • 提供容器弹性,如果容器失效就替换它

集群

集群是一组节点,可以是物理服务器或者虚拟机。

cluster

Pod

Pod包含一组容器和卷。同一个Pod里的容器共享同一个网络命名空间,可以使用localhost互相通信。Pod是短暂的,不是持续性实体。

Lable

一些PodLabel,一个Label是attach到Pod的一对键/值对,用来传递用户定义的属性。

Replication Controller

Replication Controller确保任意时间都有指定数量的Pod副本在运行。如果为某个Pod创建了Replication Controller并且指定3个副本,它会创建3个Pod,并且持续监控它们。如果某个Pod不响应,那么Replication Controller会替换它,保持总数为3。

cluster

当创建Replication Controller时,需要指定:

  1. Pod模板:用来创建Pod副本的模板
  2. Label:Replication Controller需要监控的Pod的标签。

Service

Service是定义一系列Pod以及访问这些Pod的策略的一层抽象。
Service通过Label找到Pod组。因为Service是抽象的,所以在图表里通常看不到它们的存在,这也就让这一概念更难以理解。

cluster

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 :

  1. 十分钟带你理解Kubernetes核心概念