容器
容器(Container)是一个视图隔离、资源可限制、独立文件系统的进程集合。它类似于虚拟机,但更轻量,可以在应用程序之间共享操作系统。
“视图隔离”是指能够看到部分进程以及具有独立的主机名等;控制资源使用率则是可以对内存大小以及CPU 使用个数等进行限制。常见的容器引擎包括Docker、Containerd等。
镜像
镜像(Image)是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源等文件外,还包含了一些为运行准备的配置参数(如环境变量)。
镜像是容器的模板,而容器是镜像的实例。镜像是静态的,而容器是动态的。
仓库镜像是指存储在镜像仓库内的镜像,节点镜像是指存储在集群节点上的镜像。
仓库
仓库(Repository)是集中存储和分发容器镜像文件的场所,分为公共仓库和私有仓库。
集群
集群特指容器集群,即Kubernetes(简称k8s)集群或基于Kubernetes衍生的企业定制版(例如Openshift集群),由一套Kubernetes系统管理的多台服务器形成一个集群。
Kubernetes是一个容器的编排和管理系统,提供服务发现、弹性伸缩、负载均衡、故障自愈等功能。
Kubernetes将集群中的服务器划分为Master(控制节点)和Node(计算节点):
- Master节点上运行着集群管理相关的一组进程,例如etcd、kube-apiserver、kube-controller-manager和kube-scheduler,这些进程实现了整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理能力,并且都是全自动完成的。
- Node作为集群中的计算节点,运行上层业务应用程序,在Node上Kubernetes管理的最小运行单元是Pod。Node上运行着Kubernetes的kubelet、kube-proxy服务进程,这些服务进程负责Pod的创建、启动、监控、重启、销毁以及实现软件模式的负载均衡器。
节点
节点是容器集群组成的基本元素。节点取决于业务,既可以是虚拟机,也可以是物理机。
每个节点都包含运行Pod所需要的基本组件,包括Kubelet、Kube-proxy 、Container Runtime等。
命名空间
命名空间(Namespace)是Kubernetes提供的一种机制,可以将同一集群中的资源划分为相互隔离的组。同一命名空间内的资源名称要唯一,但跨命名空间时没有这个要求。在实际使用时可以为不同的用户、租户、环境或项目创建对应的命名空间,例如为test、dev、pro环境分别创建各自的命名空间。
Pod
在Kubernetes中,Pod是能够创建、调度和管理的最小部署单元,是一组容器的集合,而不是单独的应用容器。同一个Pod里的容器共享同一网络命名空间、IP地址及端口空间。和一个个独立的应用容器一样,Pod也被认为是相对临时性(而不是长期存在)的实体。Pod 会被创建、赋予一个唯一的 ID(UID),并被调度到节点,并在终止或删除之前一直运行在该节点。如果一个节点失效,调度到该节点的 Pod 也会在给定超时期限后删除。
工作负载
工作负载是在Kubernetes上运行的应用程序。Kubernetes提供Deployment、StatefulSet、DaemonSet等多种内置的工作负载资源类型。
Service
Service是Kubernetes中的一个重要概念,主要是提供负载均衡和服务自动发现。当一个Service资源被创建后,将会分配一个唯一的IP(集群IP),这个IP地址将存在于Service的整个生命资源,Service一旦被创建,整个IP无法进行修改。
Ingress
Ingress资源对象用于对外暴露服务,实现从外部对Kubernetes集群中服务的访问,该资源对象定义了不同域名及URL和对应后端服务(Kubernetes Service)的绑定。
Endpoint
Endpoint是Kubernetes集群中的一个资源对象,存储在ETCD中,来记录一个Service对应的所有Pod的访问地址。
Secrets
Kubernetes中Secrets用于存储和管理一些敏感数据,比如密码、token、密钥等敏感信息。它把Pod想要访问的加密数据存放到ETCD中,然后用户可通过在Pod的容器里挂载Volume的方式或者环境变量的方式访问Secret里保存的信息。
PV和PVC
Kubernetes为了能更好地支持有状态应用的数据存储问题,还提供了PV、PVC和StorageClass资源对象来对存储进行管理。PV的全称是Persistent Volume(持久化卷),是对底层数据存储的抽象,PV由管理员创建、维护以及配置。PVC的全称是Persistent Volume Claim(持久化卷声明),我们可以将PV比喻为接口,里面封装了我们底层的数据存储,PVC就是调用接口实现数据存储操作,PVC消耗的是PV的资源。
标签
标签Label是用于区分工作负载、Pod、Service、RC等资源对象的key/value键值对,每个资源对象可以有多个Label,但是每个Label的key只能对应一个value。
软件包
软件包(SoftWare Package)是指具有特定功能,用来完成特定任务的一个程序或一组程序,可分为应用软件包和系统软件包两大类。
进程
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
端口
端口是英文port的意译,可以认为是设备与外界通讯交流的出口。这里指的是虚拟的容器端口和节点端口,暴露这些端口以供外部访问,如容器的80端口。
运行应用
运行应用指的是运行在容器上的应用,包括Web服务、数据库、中间件等应用类别。
软件框架
软件框架(software framework),指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。框架的功能类似于基础设施,与具体的软件应用无关,但是提供并实现最为基础的软件架构和体系。
Web站点
Web站点是网站Web服务(Web Service),是基于XML和HTTPS的一种服务,其通信协议主要基于SOAP,服务的描述通过WSDL、通过UDDI来发现和获得服务的元数据。
Web服务
Web服务是一种面向服务的架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。
Routes
Routes是OpenShift中的推荐方式。它使用唯一的URL公开服务,是为了解决从集群外部(就是从除了集群节点以外的其它地方)访问服务的需求。Routes路由匹配客户端的请求规则,匹配成功后分配到Service层。一个路由指向一个Service,一个Service可以被多个不同规则的路由指向。
Service Account
Service Account(服务账号)通常是指在计算机系统、云服务或网络中用于标识和管理服务实体的账户。