一. 资源对象概述
Kubernetes 中的基本概念是围绕资源对象来说的,而资源对象在总体上可分为以下两类:
- 某种资源对象,例如 Node,Pod , Service , Volume.
- 与资源对象相关的事物与动作,例如 Label , Annotation , 命名空间,部署,HPA , PVC.
二. 集群类
集群(Cluster) 表示一个由Master 和 Node 组成的 Kubernetes 集群。
<1> Master
Master 指的是集群的控制节点,在每个Kubernetes集群中都需要有一个或一组被称为Master 的节点,来负责整个集群的管理和控制,Master 通常占据一个独立的服务器(在高可用部署中建议至少使用3台服务器),是整个集群的 “大脑” ,如果它发生宕机或者不可用,那么对集群内容器应用的管理都将无法实施。
在Master 上运行着以下关键进程:
(1) Kubernetes API Server: 提供HTTP RESTFUL API 接口的主要服务,是Kubernetes 里对所有资源进行增删改查等操作的唯一入口,也是集群控制的入口进程。
(2) Kubernetes Controller Manager: Kubernetes 里所有资源对象的自动化控制中心,可以将其理解为资源对象的“大总管”。
(3) Kubernetes Scheduler: 负责资源调度(Pod调度)的进程,相当于公交公司的调度室。
另外,在Master 上通常还需要部署etcd 服务。
<2> Node
Kubernetes 集群中除了Master外的其他服务器被称为Node,Node 在较早的版本中也被称为 Minion,与Master 一样,Node 可以是一台物理主机,也可以是一台虚拟机,Node 是Kubernetes 集群中的工作负载节点,每个Node 都会被Master 自动转移分配一些工作负载(docker容器),当某个Node 宕机时,其上的工作负载会被Master 自动转移到其他Node 上,在每个Node 上都运行着以下关键进程:
(1) kubelet: 负责Pod 对应容器的创建,启停等任务,同时与Master 密切协作,实现集群管理的基本功能。
(2) kube-proxy: 实现Kubernetes Service 的通信与负载均衡机制的服务。
(3) 容器运行时(如docker) : 负责本机的容器创建和管理。