本文为您介绍使用 QKE 过程中遇到的常用名词的基本概念和简要描述,以便于您更好地理解 QKE 产品。

集群(Cluster)

集群指容器运行所需要的云资源组合,关联了若干服务器节点、负载均衡、专有网络等云资源。

QKE 支持自管版集群,用户可完全管控集群,可对集群进行更细粒度监控,需要自行规划、维护、升级服务器集群,需要具备一定 Kubernetes 运维能力。

节点(Node)

节点是组成容器集群的基本元素。节点取决于业务,可以为虚拟机或物理机(QKE 集群目前仅支持虚拟机节点)。每个节点都包含运行 Pod 所需要的基本组件,包括 Kubelet、Kube-proxy 等。

QKE 集群包含以下节点:

  • 主节点(Master):Kubernetes 集群的管理者,运行着的服务包括 kube-apiserver、kube-scheduler、kube-controller-manager、etcd 组件等。

  • 工作节点(Worker):Kubernetes 集群中承担工作负载的节点,可以是虚拟机也可以是物理机。工作节点承担实际的 Pod 调度以及与控制节点的通信等。

容器(Container)

一个通过 Docker 镜像创建的运行实例,一个节点可运行多个容器。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。

容器组(Pod)

Pod 是 Kubernetes 部署应用或服务的最小的基本单位。一个 Pod 封装多个应用容器(也可以只有一个容器),这些容器共享相同的网络。

镜像(Image)

容器镜像是一个模板,是容器应用打包的标准格式,封装了应用程序及其所有软件依赖的二进制数据,用于创建容器应用。

镜像和容器的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

镜像仓库(Image Registry)

镜像仓库是一种存储库,用于存储 Kubernetes 和基于容器应用开发的容器镜像。

命名空间(Namespace)

命名空间是对一组资源和对象的抽象整合,为 Kubernetes 集群提供虚拟的隔离作用。在同一个集群内可创建不同的命名空间,不同命名空间中的数据彼此隔离。使得它们既可以共享同一个集群的服务,也能够互不干扰。

工作负载(Workload)

工作负载是在 Kubernetes 上运行的应用程序。工作负载包括 Deployment、Statefulset、Daemonset、Job、CronJob 等多种类型。

  • 无状态工作负载(Deployment):表示对 Kubernetes 集群的一次更新操作。适用于运行完全独立、功能相同应用的场景。

  • 有状态工作负载(StatefulSet):支持应用部署、扩容、滚动升级时有序进行。支持持久化存储,适用于实例间存在互访的场景。

  • 守护进程(DaemonSet):确保全部(或者某些)节点上运行一个 Pod。DaemonSet 会在指定的节点上都部署定义的 Pod,确保这些节点都运行守护进程 Pod。适用集群的日志、监控等部署场景。

  • 任务(Job):指运行一次性的任务。使用场景为在创建工作负载前,执行任务,将镜像上传至镜像仓库。

  • 定时任务(CronJob):指根据指定时间周期性运行的任务。适用于执行数据备份或者发送邮件的场景。

编排模板

编排模板包含了一组容器服务的定义和其相互关联,是一种保存 Kubernetes YAML 格式编排文件的方式,可以用于多容器应用的部署和管理。

服务(Service)

服务是将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。每一个服务后面都有很多对应的容器来提供支持,对外表现为一个单一访问接口。

路由(Ingress)

Ingress 是允许访问集群内服务的规则集合,通过配置转发规则,实现不同 URL 可以访问到集群内不同的 Service。

标签(Label)

标签实质是一对 key/value,被关联到资源对象上。用于指定对用户有意义的对象的属性,能够标示对象的特殊特点,但是标签对内核系统是没有直接意义的。

选择器(LabelSelector)

通过选择器,客户端/用户能够识别一组有共同特征或属性的资源对象。

注解(Annotation)

注解与标签类似,也使用 key/value 键值对的形式进行定义。

标签定义的是 Kubernetes 对象的元数据(Metadata),用于选择器对资源对象的识别;注解则是用户任意定义的"`附加`"信息,便于外部工具进行查找。

卷(Volume)

卷的核心只是一个目录,其中可能包含一些数据,Pod 中的容器可以访问该目录。存储卷的生命周期与 Pod 相同,并且长于该 Pod 下运行的容器,通常会在容器重启时保留数据。

存储卷(PV)

PV 独立于 Pod 的生命周期,是集群之中的存储资源,可以根据不同的 StorageClass 创建不同类型的 PV。

存储卷声明(PVC)

PVC 是对 PV 的请求。PVC 跟 Pod 类似:Pod 消费节点资源,而 PVC 消费 PV 资源;Pod 能够请求 CPU 和内存资源,而 PVC 请求特定大小和访问模式的数据卷。

存储类(StorageClass)

表示存储类型,是创建 PV 的模板,可以实现动态供应存储卷。