标准化词汇表
此术语表旨在提供 Kubernetes 术语的完整、标准列表。其中包含特定于 Kubernetes 的技术术语以及能够构造有用的语境的一般性术语。
根据标签过滤术语
点击 [+] 下面的指示符号获取特定术语的更为完整的描述。
- Add-ons
Resources that extend the functionality of Kubernetes.
[+]Installing addons explains more about using add-ons with your cluster, and lists some popular add-ons.
- cgroup (控制组)
一组具有可选资源隔离、审计和限制的 Linux 进程。
[+]Cgroup 是一个 Linux 内核特性,对一组进程的资源使用(CPU、内存、磁盘 I/O 和网络等)进行限制、审计和隔离。
- CIDR
CIDR (Classless Inter-Domain Routing) is a notation for describing blocks of IP addresses and is used heavily in various networking configurations.
[+]In the context of Kubernetes, each NodeA node is a worker machine in Kubernetes. is assigned a range of IP addresses through the start address and a subnet mask using CIDR. This allows Nodes to assign each PodThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. a unique IP address. Although originally a concept for IPv4, CIDR has also been expanded to include IPv6.
- CLA (贡献者许可协议)
贡献者通过贡献代码、文档或者投入时间等方式来帮助 Kubernetes 项目或社区的人。 对他们在开源项目中所贡献的代码的授权许可条款。
[+]CLA 对解决贡献者在开源社区所贡献的资料和智力资产(IP)导致的法律纠纷很有帮助。
- ConfigMap
ConfigMap 是一种 API 对象,用来将非机密性的数据保存到健值对中。使用时可以用作环境变量、命令行参数或者存储卷中的配置文件。
[+]ConfigMap 将您的环境配置信息和 容器镜像容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 解耦,便于应用配置的修改。当您需要储存机密信息时可以使用 Secret 对象。
- containerd
强调简单性、健壮性和可移植性的一种容器运行时
[+]containerd 是一种 容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 运行时,能在 Linux 或者 Windows 后台运行。 containerd 能取回、存储容器镜像,执行容器实例,提供网络访问等。
- CRI-O
该工具可让您通过 Kubernetes CRI 使用 OCI 容器运行环境。
[+]CRI-O 是 容器运行时接口 (CRI)一组与 kubelet 集成的容器运行时 API 的实现,可启用与开放容器倡议 Open Container Initiative(OCI)兼容的 container容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 运行环境运行时规范。
部署 CRI-O 允许 Kubernetes 使用任何符合 OCI 运行环境,作为容器运行环境去运行 PodsPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 ,并从远程注册表获取 OCI 容器镜像。
- CustomResourceDefinition
通过定制化的代码给您的 Kubernetes API 服务器增加资源对象,而无需编译完整的定制 API 服务器。
[+]当 Kubernetes 公开支持的 API 资源不能满足您的需要时,定制资源对象(Custom Resource Definitions)让您可以在您的环境上扩展 Kubernetes API。
- DaemonSet
确保 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 的副本在集群集群由一组被称作节点的机器组成。这些节点上运行 Kubernetes 所管理的容器化应用。集群具有至少一个工作节点和至少一个主节点。 中的一组节点上运行。
[+]用来部署系统守护进程,例如日志搜集和监控代理,这些进程通常必须运行在每个节点Kubernetes 中的工作机器称作节点。 上。
- Deployment
Deployment 是管理应用副本的 API 对象。
[+]应用的每个副本就是一个 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 ,并且这些 Pod 会分散运行在集群的节点上。
- Disruption
Disruptions are events that lead to one or more PodsThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. going out of service. A disruption has consequences for workload resources, such as DeploymentAn API object that manages a replicated application. , that rely on the affected Pods.
[+]If you, as cluster operator, destroy a Pod that belongs to an application, Kubernetes terms that a voluntary disruption. If a Pod goes offline because of a Node failure, or an outage affecting a wider failure zone, Kubernetes terms that an involuntary disruption.
See Disruptions for more information.
- docker
Docker 是一种可以提供操作系统级别虚拟化(也称作容器)的软件技术
[+]Docker 使用了 Linux 内核中的资源隔离特性(如 cgroup 和内核命名空间)以及支持联合文件系统(如 OverlayFS 和其他),允许多个相互独立的“容器”一起运行在同一 Linux 实例上,从而避免启动和维护虚拟机(VMs)的开销。
- FlexVolume
Flexvolume 是创建 out-of-tree 卷插件的一种接口。 容器存储接口(CSI)容器存储接口 (CSI)定义了存储系统暴露给容器的标准接口。 是比 Flexvolume 更新的接口,它解决了 Flexvolume 的一些问题。
[+]Flexvolume 允许用户编写自己的驱动程序,并在 Kubernetes 中加入对用户自己的数据卷的支持。FlexVolume 驱动程序的二进制文件和依赖项必须安装在主机上。这需要 root 权限。如果可能的话,SIG Storage 建议实现 CSI容器存储接口 (CSI)定义了存储系统暴露给容器的标准接口。 驱动程序,因为它解决了 Flexvolumes 的限制。
- Helm Chart
Helm Chart 是一组预先配置的 Kubernetes 资源所构成的包,可以使用 Helm 工具对其进行管理。
[+]Chart 提供了一种可重现的用来创建和共享 Kubernetes 应用的方法。 单个 Chart 可用来部署简单的系统(例如一个 memcached Pod),也可以用来部署复杂的系统(例如包含 HTTP 服务器、数据库、缓存等组件的完整 Web 应用堆栈)。
- HostAliases
A HostAliases is a mapping between the IP address and hostname to be injected into a PodThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. ’s hosts file.
[+]HostAliases is an optional list of hostnames and IP addresses that will be injected into the Pod’s hosts file if specified. This is only valid for non-hostNetwork Pods.
- Istio
Istio 是个开放平台(非 Kubernetes 特有),提供了一种统一的方式来集成微服务、管理流量、实施策略和汇总度量数据。
[+]添加 Istio 时不需要修改应用代码。它是基础设施的一层,介于服务和网络之间。当它和服务的 Deployment 相结合时,就构成了通常所谓的服务网格(Service Mesh)。Istio 的控制面抽象掉了底层的集群管理平台,这一集群管理平台可以是 Kubernetes、Mesosphere 等。
- Job
Job 是需要运行完成的确定性的或批量的任务。
[+]Job 创建一个或多个 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 对象,并确保指定数量的 Pod 成功终止。随着各 Pod 成功结束,Job 会跟踪记录成功完成的个数。
- Kops
kops 是一个命令行工具,可以帮助您创建、销毁、升级和维护生产级,高可用性的 Kubernetes 集群。*注意:官方仅支持 AWS,GCE 和 VMware vSphere 的支持还处于 alpha 阶段*。
[+]kops
为您的集群提供了:- 全自动化安装
- 基于 DNS 的集群标识
- 自愈功能:所有组件都在自动伸缩组(Auto-Scaling Groups)中运行
- 有限的操作系统支持 (推荐使用 Debian,支持 Ubuntu 16.04,试验性支持 CentOS & RHEL)
- 高可用 (HA) 支持
- 直接提供或者生成 Terraform 清单文件的能力
您也可以将自己的集群作为一个构造块,使用 Kubeadm用来快速安装 Kubernetes 并搭建安全稳定的集群的工具。 构造集群。
kops
是建立在 kubeadm 之上的。 - kube-controller-manager
在主节点上运行控制器控制器通过 apiserver 监控集群的公共状态,并致力于将当前状态转变为期望的状态。 的组件。
[+]从逻辑上讲,每个控制器控制器通过 apiserver 监控集群的公共状态,并致力于将当前状态转变为期望的状态。 都是一个单独的进程,但是为了降低复杂性,它们都被编译到同一个可执行文件,并在一个进程中运行。
- kube-proxy
kube-proxy 是集群中每个节点上运行的网络代理,实现 Kubernetes Service将运行在一组 {{< glossary_tooltip text=“Pods” term_id=“pod” >}} 上的应用程序公开为网络服务的抽象方法。 概念的一部分。
[+]kube-proxy 维护节点上的网络规则。这些网络规则允许从集群内部或外部的网络会话与 Pod 进行网络通信。
如果有 kube-proxy 可用,它将使用操作系统数据包过滤层。否则,kube-proxy 会转发流量本身。
- kube-scheduler
主节点上的组件,该组件监视那些新创建的未指定运行节点的 Pod,并选择节点让 Pod 在上面运行。
[+]调度决策考虑的因素包括单个 Pod 和 Pod 集合的资源需求、硬件/软件/策略约束、亲和性和反亲和性规范、数据位置、工作负载间的干扰和最后时限。
- Kubectl
kubectl 是用来和 Kubernetes APIKubernetes API 是通过 RESTful 接口提供 Kubernetes 功能服务并负责集群状态存储的应用程序。 服务器进行通信的命令行工具。
[+]您可以使用 kubectl 创建、检查、更新和删除 Kubernetes 对象。
- Kubelet
一个在集群中每个节点上运行的代理。它保证容器都运行在 Pod 中。
[+]kubelet 接收一组通过各类机制提供给它的 PodSpecs,确保这些 PodSpecs 中描述的容器处于运行状态且健康。kubelet 不会管理不是由 Kubernetes 创建的容器。
- Kubernetes API
Kubernetes API 是通过 RESTful 接口提供 Kubernetes 功能服务并负责集群状态存储的应用程序。
[+]Kubernetes 资源和”意向记录”都是作为 API 对象储存的,并可以通过对 API 的 RESTful 调用进行修改。 API 允许以声明方式管理配置。 用户可以直接和 Kubernetes API 交互,也可以通过
kubectl
这样的工具进行交互。 核心的 Kubernetes API 是很灵活的,可以扩展以支持定制资源。 - LimitRange
提供约束来限制命名空间中每个 容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 或 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 的资源消耗。
[+]LimitRange 按照类型来限制命名空间中对象能够创建的数量,以及单个 容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 或 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 可以请求/使用的计算资源量。
- Manifest
Specification of a Kubernetes API object in JSON or YAML format.
[+]A manifest specifies the desired state of an object that Kubernetes will maintain when you apply the manifest. Each configuration file can contain multiple manifests.
- Operator 模式
operator 模式 是一个系统设计, 将 控制器控制器通过 apiserver 监控集群的公共状态,并致力于将当前状态转变为期望的状态。 关联到一个或多个自定义资源。
[+]除了使用作为 Kubernetes 自身一部分的内置控制器之外,您还可以通过将控制器添加到集群中来扩展 Kubernetes。
如果正在运行的应用程序能够充当控制器并通过 API 访问的方式来执行任务操控那些在控制平面中定义的自定义资源,这就是一个 operator 模式的示例。
- Pod
Pod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 。
[+]通常创建 Pod 是为了运行单个主容器。Pod 还可以运行可选的挂斗(sidecar)容器,以添加诸如日志记录之类的补充特性。通常用 DeploymentDeployment 是管理应用副本的 API 对象。 来管理 Pod。
- Pod Disruption Budget亦称作:PDB
An object that limits the number of PodsPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 of a replicated application, that are down simultaneously from voluntary disruptions. aka: - PDB related: - pod - container tags: - operation --- -- Pod Disruption Budget 使应用所有者能够为多实例应用创建一个对象,来确保一定数量的具有指定标签的 Pod 在任何时候都不会被主动驱逐。 PDB 无法防止非主动的中断,但是会计入预算(budget)。 [+]Pod Disruption Budget 使应用所有者能够为多实例应用创建一个对象,来确保一定数量的具有指定标签的 Pod 在任何时候都不会被主动驱逐。 PDB 无法防止非主动的中断,但是会计入预算(budget)。
- Pod 安全策略
为 Pod 的创建和更新操作启用细粒度的授权。
[+]Pod 安全策略是集群级别的资源,它控制着 Pod 规约中的安全性敏感的内容。
PodSecurityPolicy
对象定义了一组条件以及相关字段的默认值,Pod 运行时必须满足这些条件。Pod 安全策略控制实现上体现为一个可选的准入控制器。 - Pod 水平自动扩缩器
Pod 水平自动扩缩器(Horizontal Pod Autoscaler)是一种 API 资源,它根据目标 CPU 利用率或自定义度量目标扩缩 Pod 副本的数量。
[+]HPA 通常用于 Replication ControllersReplication Controller 是 Kubernetes 的一种服务,用来确保给定个数的 Pod 一直处于运行状态。 、DeploymentsDeployment 是管理应用副本的 API 对象。 或者 Replica Sets 上。HPA 不能用于不支持扩缩的对象,例如 DaemonSets确保 Pod 的副本在集群中的一组节点上运行。 。
- PodPreset
PodPreset 是一种 API 对象,在创建 Pod 时将诸如 Secret、卷挂载和环境变量之类的信息注入到该 Pod 中。
[+]此 API 对象使用标准选择器选择 Pod 并向其中注入信息。这允许 podspec 定义是非特定的,从而将 podspec 与环境特定的配置解耦。
- QoS 类
QoS Class(Quality of Service Class)为 Kubernetes 提供了一种将集群中的 Pod 分为几个类型并做出有关调度和驱逐决策的方法。
[+]Pod 的 QoS 类是基于 Pod 在创建时配置的计算资源请求和限制。QoS 类用于制定有关 Pod 调度和逐出的决策。 Kubernetes 可以为 Pod 分配以下 QoS 类:
Guaranteed
,Burstable
或者BestEffort
。 - RBAC(基于角色的访问控制)
管理授权决策,允许管理员通过 Kubernetes APIKubernetes API 是通过 RESTful 接口提供 Kubernetes 功能服务并负责集群状态存储的应用程序。 动态配置访问策略。
[+]RBAC 使用 角色 (包含权限规则)和 角色绑定 (将角色中定义的权限授予一组用户)。
- ReplicaSet
ReplicaSet 是下一代副本控制器。
[+]ReplicaSet 就像 ReplicationController 那样,确保一次运行指定数量的 Pod 副本。ReplicaSet 支持新的基于集合的选择器需求(在标签的用户指南中有相关描述),而副本控制器只支持基于等值的选择器需求。
- Replication Controller
Replication Controller 是 Kubernetes 的一种服务,用来确保给定个数的 Pod 一直处于运行状态。
[+]Replication Controller 会基于设定值自动增删 Pod 的实例。如果 Pod 被误删除或者启动实例过多,Replication Controller 允许 Pod 的实例个数恢复到设定值。
- rkt
一个安全的、基于标准的容器引擎。
[+]rkt 是一个应用程序 容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 引擎,它具有原生的 {< glossary_tooltip text=“Pod” term_id=“pod” >}} 方法、可插拔的执行环境和定义良好的接口。rkt 允许用户在 Pod 和应用程序级别应用不同的配置。每个 Pod 在一个自包含的、独立的经典 Unix 进程模型中直接执行。
- Secret
Secret 用于存储敏感信息,如密码、OAuth 令牌和 SSH 密钥。
[+]Secret 允许用户对如何使用敏感信息进行更多的控制,并减少信息意外暴露的风险,包括静态加密。 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 通过挂载卷中的文件的方式引用 Secret,或者通过 kubelet 为 pod 拉取镜像时引用。 Secret 非常适合机密数据使用,而 ConfigMaps 适用于非机密数据。
- Service
将运行在一组 PodsPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 上的应用程序公开为网络服务的抽象方法。
[+]服务所针对的Pod集(通常)由 selector选择算符允许用户通过标签对一组资源对象进行筛选过滤。 确定。 如果添加或删除了更多Pod,则与选择器匹配的Pod集将发生变化。 该服务确保可以将网络流量定向到该工作负载的当前Pod集。
- SIG (特别兴趣小组)
共同管理大范畴 Kubernetes 开源项目中某组件或方面的一组社区成员K8s 社区中持续活跃的贡献者。 。
[+]SIG 中的成员对推进某个领域(如体系结构、API 机制构件或者文档)具有相同的兴趣。 SIGs 必须遵从 SIG Governance 的规定, 不过可以有自己的贡献策略以及通信渠道(方式)。
更多的详细信息可参阅 kubernetes/community 仓库以及 SIGs 和工作组(Working Groups)的最新列表。
- StatefulSet
StatefulSet 用来管理 Deployment 和扩展一组 Pod,并且能为这些 Pod 提供*序号和唯一性保证*。
[+]和 DeploymentDeployment 是管理应用副本的 API 对象。 相同的是,StatefulSet 管理了基于相同容器定义的一组 Pod。但和 Deployment 不同的是,StatefulSet 为它们的每个 Pod 维护了一个固定的 ID。这些 Pod 是基于相同的声明来创建的,但是不能相互替换:无论怎么调度,每个 Pod 都有一个永久不变的 ID。
StatefulSet 和其他控制器使用相同的工作模式。你在 StatefulSet 对象 中定义你期望的状态,然后 StatefulSet 的 控制器 就会通过各种更新来达到那种你想要的状态。
- WG (工作组)
工作组是为了方便讨论和(或)推进执行一些短周期、窄范围、或者从委员会和 SIG 分离出来的项目、以及跨 SIG 的活动。
[+]工作组可以将人们组织起来,一起完成一项分散的任务。它组建简单,完成任务即可解散。
更多信息请参考 kubernetes/community 代码库和当前的 SIGs 和工作组 列表。
- 下游(消除歧义)
可以指:Kubernetes 生态系统中依赖于核心 Kubernetes 代码库或分支代码库的代码。
[+]- 在 Kubernetes 社区中:下游(downstream) 在人们交流中常用来表示那些依赖核心 Kubernetes 代码库的生态系统、代码或者第三方工具。例如,Kubernete 的一个新特性可以被下游(downstream) 应用采用,以提升它们的功能性。
- 在 GitHub 或 git 中:约定用下游(downstream) 表示分支代码库,源代码库被认为是*上游(upstream)*。
- 临时容器
您可以在 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 中临时运行的一种 容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 类型
[+]如果想要调查运行中有问题的 Pod,可以向该 Pod 添加一个临时容器并进行诊断。临时容器没有资源或调度保证,因此不应该使用它们来运行任何部分的工作负荷本身。
- 云供应商
云供应商是提供可以用来运行 Kubernetes 集群的云计算平台的公司。
[+]云供应商也叫云服务供应商(CSPs),他们可以为用户提供云计算平台。他们提供的服务可以是基础设施即服务(IaaS)或者平台即服务(PaaS)。云供应商除了运行 Kubernetes 集群,还提供一些集群交互的服务,例如负载均衡(Load Balancers)、存储类别(Storage Classes)等。
- 云控制器管理器
云控制器管理器是 1.8 的 alpha 特性。在未来发布的版本中,这是将 Kubernetes 与任何其他云集成的最佳方式。
[+]Kubernetes v1.6 包含一个新的可执行文件叫做 cloud-controller-manager。cloud-controller-manager 是一个守护进程,其中嵌入了特定于某云环境的控制环。 这些特定于云环境的控制环最初位于 kube-controller-manager 中。 由于云供应商的开发和发布节奏与 Kubernetes 项目不同步,将特定于供应商的代码抽象到 cloud-controller-manager 可执行文件可以允许云供应商独立于核心 Kubernetes 代码进行演进。
- 代理
在计算机领域,代理指的是充当远程服务中介的服务器。
[+]客户端与代理进行交互;代理将客户端的数据复制到实际服务器;实际服务器回复代理;代理将实际服务器的回复发送给客户端。
kube-proxy 是集群中每个节点上运行的网络代理,实现了部分 Kubernetes Service将运行在一组 {{< glossary_tooltip text=“Pods” term_id=“pod” >}} 上的应用程序公开为网络服务的抽象方法。 概念。
你可以将 kube-proxy 作为普通的用户态代理服务运行。 如果你的操作系统支持,则可以在混合模式下运行 kube-proxy;该模式使用较少的系统资源即可达到相同的总体效果。
- 代码贡献者
为 Kubernetes 开源代码库开发并贡献代码的人。
[+]代码贡献者也是加入一个或多个 特别兴趣小组 (SIGs)共同管理大范畴 Kubernetes 开源项目中某组件或方面的一组社区成员。 的活跃的 社区成员K8s 社区中持续活跃的贡献者。 。
- 准入控制器
在对象持久化之前拦截 Kubernetes Api 服务器请求的一段代码
[+]准入控制器可针对 Kubernetes Api 服务器进行配置,可以执行验证,变更或两者都执行。任何准入控制器都可以拒绝访问请求。 变更(mutating)控制器可以修改其允许的对象,验证(validating)控制器则不可以。
- 初始化容器
应用容器运行前必须先运行完成的一个或多个初始化容器。
[+]初始化(init)容器像常规应用容器一样,只有一点不同:初始化(init)容器必须在应用容器启动前运行完成。Init 容器的运行顺序:一个初始化(init)容器必须在下一个初始化(init)容器开始前运行完成。
- 动态卷供应
允许用户请求自动创建存储 卷包含可被 Pod 中容器访问的数据的目录。 。
[+]动态供应让集群管理员无需再预先供应存储。相反,它通过用户请求自动地供应存储。 动态卷供应是基于 API 对象 StorageClassStorageClass 是管理员用来描述不同的可用存储类型的一种方法。 的,StorageClass 可以引用 卷插件(Volume Plugin)卷(Volume)插件可以让 Pod 集成存储。 提供的 卷(Volume)包含可被 Pod 中容器访问的数据的目录。 ,也可以引用传递给卷插件(Volume Plugin)的参数集。
- 卷
包含可被 podPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 中容器访问的数据的目录。
[+]每个 Kubernetes 卷在所处的podPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 存在期间保持存在状态。 因此,卷的生命期会超出 podPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 中运行的容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 , 并且保证容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 重启之后仍保留数据。
- 卷(Volume)插件
卷插件可以让 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 集成存储。
[+]卷插件让您能给 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 附加和挂载存储卷。卷插件既可以是 in tree 也可以是 out of tree 。in tree 插件是 Kubernetes 代码库的一部分,并遵循其发布周期。而 Out of tree 插件则是独立开发的。
- 命名空间
命名空间是 Kubernetes 为了在同一物理集群上支持多个虚拟集群而使用的一种抽象。
[+]命名空间用来组织集群中对象,并为集群资源划分提供了一种方法。同一命名空间内的资源名称必须唯一,但跨命名空间时不作要求。
- 存储类别
StorageClass 是管理员用来描述不同的可用存储类型的一种方法。
[+]StorageClass 可以映射到服务质量等级(QoS)、备份策略、或者管理员随机定义的策略。每个 StorageClass 对象包含的域有
provisioner
、parameters
和reclaimPolicy
,属于该存储类别的 永久卷持久卷是代表集群中一块存储空间的 API 对象。 它是通用的、可插拔的、并且不受单个 Pod 生命周期约束的持久化资源。 需要动态分配时就要用到这些域参数。通过 StorageClass 对象的名称,用户可以请求他们需要的特定存储类别。 - 安全上下文(Security Context)
securityContext 字段定义 Pod 或容器的特权和访问控制设置,包括运行时 UID 和 GID。
[+]PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 或者容器中的 securityContext 字段(应用于所有容器)用于设置容器进程使用的用户(runAsUser)和组 (fsGroup)、权能字、特权设置和安全策略(SELinux/AppArmor/Seccomp)。
- 容器存储接口 (CSI)
容器存储接口 (CSI)定义了存储系统暴露给容器的标准接口。
[+]CSI 允许存储驱动提供商为 Kubernetes 创建定制化的存储插件,而无需将这些插件的代码添加到 Kubernetes 代码仓库(外部插件)。要使用某个存储提供商的 CSI 驱动,你首先要将它部署到你的集群上。然后你才能创建使用该 CSI 驱动的 Storage ClassStorageClass 是管理员用来描述不同的可用存储类型的一种方法。 。
- 容器环境变量
容器环境变量提供了运行容器化应用所必须的一些重要信息。
[+]容器环境变量为运行中的容器化应用提供必要的信息,同时还提供与 容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 重要资源相关的其他信息,例如:文件系统信息、容器自身的信息以及其他像服务端点(Service endpoints)这样的集群资源信息。
- 容器生命周期钩子
生命周期钩子暴露容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 管理生命周期中的事件,允许用户在事件发生时运行代码。
[+]针对容器暴露了两个钩子:PostStart 在容器创建之后立即执行,PreStop 在容器停止之前立即阻塞并被调用。
- 容器运行环境(Container Runtime)
容器运行环境是负责运行容器的软件。
[+]Kubernetes 支持多个容器运行环境: Docker、 containerd、cri-o、 rktlet 以及任何实现 Kubernetes CRI (容器运行环境接口)。
- 容忍度
一个核心对象,由三个必需的属性组成:key、value 和 effect。 容忍度允许将 Pod 调度到具有匹配 污点一个核心对象,由三个必需的属性组成:键,值和效果。污点会阻止在节点或节点组上调度 Pod。 的节点或节点组上。
[+]容忍度 和 污点一个核心对象,由三个必需的属性组成:键,值和效果。污点会阻止在节点或节点组上调度 Pod。 共同作用以确保不会将 Pod 调度在不适合的节点上。在同一 podPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 上可以设置一个或者多个容忍度。容忍度表示在匹配节点或节点组上的 污点一个核心对象,由三个必需的属性组成:键,值和效果。污点会阻止在节点或节点组上调度 Pod。 调度 podPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 是允许的(但不必要)。
- 工作负载
工作负载是在 Kubernetes 上运行的应用程序。
[+]代表不同类型或部分工作负载的各种核心对象包括 DaemonSet, Deployment, Job, ReplicaSet, and StatefulSet。
例如,具有 Web 服务器和数据库的工作负载可能在一个 StatefulSetStatefulSet 用来管理 Deployment 和伸缩一组 Pod,并且能为这些 Pod 提供*序号和唯一性保证*。 中运行数据库,而 Web 服务器运行在 DeploymentDeployment 是管理应用副本的 API 对象。 。
- 平台开发者
定制 Kubernetes 平台以满足自己的项目需求的人。
[+]例如,平台开发人员可以使用定制资源或使用汇聚层扩展 Kubernetes API 来为其 Kubernetes 实例增加功能,特别是为其应用程序添加功能。一些平台开发人员也是 Kubrenetes 贡献者通过贡献代码、文档或者投入时间等方式来帮助 Kubernetes 项目或社区的人。 ,他们会开发贡献给 Kubernetes 社区的扩展;另一些则开发封闭源代码的商业扩展或用于特定功能的扩展。
- 应用The layer where various containerized applications run. aka: tags: - fundamental --- -- 各种容器化应用运行所在的层。 [+]
各种容器化应用运行所在的层。
- 应用程序容器
应用程序容器(或 app 容器)容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 在 podPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 中,在 初始化容器应用容器运行前必须先运行完成的一个或多个初始化容器。 启动完毕后才开始启动。
[+]初始化容器使您可以分离对于 工作负载工作负载是在 Kubernetes 上运行的应用程序。 整体而言很重要的初始化细节,并且一旦应用容器启动,它不需要继续运行。 如果 pod 没有配置任何初始化容器,则该 pod 中的所有容器都是应用程序容器。
- 开发者 (释疑)
指的是: 应用开发者编写可以在 Kubernetes 集群上运行的应用的人。 、 代码贡献者为 Kubernetes 开源代码库开发并贡献代码的人。 、或 平台开发者定制 Kubernetes 平台以满足自己的项目需求的人。 。
[+]根据上下文的不同,“开发者”这个被多处使用的词条会有不同的含义。
- 成员
K8s 社区中持续活跃的贡献者。
[+]可以将问题单(issue)和 PR 指派给成员,成员也可以通过 GitHub 小组加入 特别兴趣小组 (SIGs)共同管理大范畴 Kubernetes 开源项目中某组件或方面的一组社区成员。 。针对成员所提交的 PR,系统自动运行提交前测试。成员应该是持续活跃的社区贡献者。
- 托管服务
由第三方供应商负责维护的一种软件产品。
[+]托管服务的一些例子有 AWS EC2、Azure SQL 数据库和 GCP Pub/Sub 等, 不过它们也可以是可以被某应用使用的任何软件交付件。 服务目录提供了一种方法用来列举、供应和绑定到 服务代理商由第三方提供并维护的一组托管服务的访问端点。 所提供的托管服务。
- 批准者
可以审核并批准 Kubernetes 代码贡献的人。
[+]代码审核的重点是代码质量和正确性,而批准的重点是对贡献的整体接受。 整体接受包括向后/向前兼容性、遵守 API 和参数约定、细微的性能和正确性问题、与系统其他部分的交互等。 批准者状态的作用域是代码库的一部分。 审批者以前被称为维护者。
- 持久卷
持久卷是代表集群中一块存储空间的 API 对象。 它是通用的、可插拔的、并且不受单个 Pod 生命周期约束的持久化资源。
[+]持久卷(PersistentVolumes,PV)提供了一个 API,该 API 对存储的供应方式细节进行抽象,令其与使用方式相分离。 在提前创建存储(静态供应)的场景中,PV 可以直接使用。 在按需提供存储(动态供应)的场景中,需要使用 PersistentVolumeClaims (PVCs)。
- 持久卷申领
申领持久卷中定义的存储资源,以便可以将其挂载为容器中的卷。
[+]指定存储的数量,如何访问存储(只读、读写或独占)以及如何回收存储(保留、回收或删除)。存储本身的详细信息在 PersistentVolume 规范中。
- 控制器
控制器通过 apiserver主节点上负责提供 Kubernetes API 服务的组件;它是 Kubernetes 控制面的前端。 监控集群的公共状态,并致力于将当前状态转变为期望的状态。
[+]Kubernetes 当前提供的部分控制器例子包括:副本控制器(replication controller)、端点控制器(endpoints controller)、命名空间控制器(namespace controller)、服务账号控制器(serviceaccounts controller)。
- 控制平面The container orchestration layer that exposes the API and interfaces to define, deploy, and manage the lifecycle of containers. aka: tags: - fundamental --- -- 容器编排层,它暴露 API 和接口来定义、部署容器和管理容器的生命周期。 [+]
容器编排层,它暴露 API 和接口来定义、部署容器和管理容器的生命周期。
- 数据平面
提供诸如 CPU,内存,网络和存储的能力,以便容器可以运行并连接到网络。
[+] - 数量[+]
数量是使用紧凑的整数表示法的小数或大数的表示,并带有国际计量单位制(SI)后缀。 小数用 milli 单位表示,而大数用 kilo、mega 或 giga 单位表示。
例如,数字
1.5
表示为1500m
, 而数字1000
表示为1k
,1000000
表示为1M
。 您还可以指定二进制表示法后缀; 数字 2048 可以写成2Ki
。公认的十进制(10的幂)单位是
m
(milli)、k
(kilo, 有意小写)、M
(mega),G
(giga)、T
(terra)、P
(peta)、E
(exa)。公认的二进制(2的幂)单位是
Ki
(kibi)、Mi
(mebi)、Gi
(gibi)、Ti
(tebi)、Pi
(pebi)、Ei
(exbi)。 - 日志
日志是 集群集群由一组被称作节点的机器组成。这些节点上运行 Kubernetes 所管理的容器化应用。集群具有至少一个工作节点和至少一个主节点。 或应用程序记录的事件列表。
[+]应用程序和系统日志可以帮助您了解集群内部发生的情况。日志对于调试问题和监视集群活动非常有用。
- 服务代理(Service Broker)
由第三方提供并维护的一组托管服务由第三方供应商负责维护的一种软件产品。 的访问端点。
[+]服务代理由第三方提供并维护的一组托管服务的访问端点。 会实现 开放服务代理 API 规范 并为应用提供使用其托管服务的标准接口。 服务目录(Service Catalog)则提供一种方法,用来列举、供应和绑定服务代理商所提供的托管服务。
- 服务目录
服务目录(Service Catalog)是一种扩展 API,它能让 Kubernetes 集群中运行的应用易于使用外部托管的的软件服务,例如云供应商提供的数据仓库服务。
[+]服务目录可以检索、供应、和绑定由 服务代理人(Service Brokers)由第三方提供并维护的一组托管服务的访问端点。 提供的外部 托管服务由第三方供应商负责维护的一种软件产品。 ,而无需知道那些服务具体是怎样创建和托管的。
- 服务账户
为在 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 中运行的进程提供标识。
[+]当 Pod 中的进程访问集群时,API 服务器将它们作为特定的服务帐户进行身份验证,例如
default
。当您创建 Pod 时,如果您没有指定服务帐户,它将在相同的命名空间 命名空间命名空间是 Kubernetes 为了在同一物理集群上支持多个虚拟集群而使用的一种抽象。 中自动分配 default 服务账户。 - 标签
用来为对象设置可标识的属性标记;这些标记对用户而言是有意义且重要的。
[+]标签是一些关联到 PodsPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 这类对象上的键值对。 它们通常用来组织和选择对象子集。
- 污点
一个核心对象,由三个必需的属性组成:键,值和效果。污点会阻止在节点或节点组上调度 Pod。
[+]污点和 容忍度一个核心对象,由三个必需的属性组成:key、value 和 effect。容忍度允许将 Pod 调度到具有对应污点的节点或节点组上。 一起工作,以确保不会将 Pod 调度到不适合的节点上。一个或多个污点应用于 节点Kubernetes 中的工作机器称作节点。 。节点应该仅能调度那些带着能与污点相匹配容忍度的 pod。
- 注解
注解是以键值对的形式给资源对象附加随机的无法标识的元数据。
[+]注解中的元数据可大可小,可以是结构化的也可以是非结构化的,并且能包含标签不允许使用的字符。像工具和软件库这样的客户端可以检索这些元数据。
- 端点切片
一种将网络端点与 Kubernetes 资源组合在一起的方法。
[+]一种将网络端点组合在一起的可扩缩、可扩展方式。它们将被 kube-proxykube-proxy 是集群中每个节点上运行的网络代理。 用于在每个 节点Kubernetes 中的工作机器称作节点。 上建立网络路由。
- 网络策略
网络策略是一种规范,规定了允许 Pod 组之间、Pod 与其他网络端点之间以怎样的方式进行通信。
[+]网络策略帮助您声明式地配置允许哪些 Pod 之间接、哪些命名空间之间允许进行通信,并具体配置了哪些端口号来执行各个策略。
NetworkPolicy
资源使用标签来选择 Pod,并定义了所选 Pod 可以接受什么样的流量。网络策略由网络提供商提供的并被 Kubernetes 支持的网络插件实现。请注意,当没有控制器实现网络资源时,创建网络资源将不会生效。 - 聚合层
聚合层允许您在自己的集群上安装额外的 Kubernetes 风格的 API。
[+]当您配置了 Kubernetes API Server主节点上负责提供 Kubernetes API 服务的组件;它是 Kubernetes 控制面的前端。 来 支持额外的 API,您就可以在 Kubernetes API 中增加
APIService
对象来 “申领(Claim)” 一个 URL 路径。 - 节点
Kubernetes 中的工作机器称作节点。
[+]工作机器可以是虚拟机也可以是物理机,取决于集群的配置。 其上部署了运行 PodsPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 所必需的服务将运行在一组 {{< glossary_tooltip text=“Pods” term_id=“pod” >}} 上的应用程序公开为网络服务的抽象方法。 , 并由主控组件来管理。 节点上的服务将运行在一组 {{< glossary_tooltip text=“Pods” term_id=“pod” >}} 上的应用程序公开为网络服务的抽象方法。 包括 Docker、kubelet 和 kube-proxy。
- 证书
证书是个安全加密文件,用来确认对 Kubernetes 集群访问的合法性。
[+]证书可以让 Kubernetes 集群中运行的应用程序安全的访问 Kubernetes API。证书可以确认客户端是否被允许访问 API。
- 贡献者
通过贡献代码、文档或者投入时间等方式来帮助 Kubernetes 项目或社区的人。
[+]贡献形式包括提交拉取请求(PRs)、问题报告(Issues)、反馈、参与特别兴趣小组(SIG)共同管理大范畴 Kubernetes 开源项目中某组件或方面的一组社区成员。 或者组织社区活动等等。
- 资源配额
资源配额提供了限制每个 命名空间命名空间是 Kubernetes 为了在同一物理集群上支持多个虚拟集群而使用的一种抽象。 的资源消耗总和的约束。
[+]限制了命名空间中每种对象可以创建的数量,也限制了项目中可被资源对象利用的计算资源总数。
- 镜像
镜像是保存的容器实例,它打包了应用运行所需的一组软件。
[+]镜像是软件打包的一种方式,可以将镜像存储在容器镜像仓库、拉取到本地系统并作为应用来运行。 镜像中包含的元数据指明了运行什么可执行程序、是由谁构建的以及其他信息。
- 集群
集群由一组被称作节点的机器组成。这些节点上运行 Kubernetes 所管理的容器化应用。集群具有至少一个工作节点和至少一个主节点。
[+]工作节点托管作为应用程序组件的 Pod 。主节点管理集群中的工作节点和 Pod 。多个主节点用于为集群提供故障转移和高可用性。
- 集群操作者
配置、控制、监控集群的人。
[+]他们的主要责任是保持集群正常运行,可能需要进行周期性的维护和升级活动。
注意: 集群操作者不同于操作者模式(Operator Pattern),操作者模式是用来扩展 Kubernetes API 的。
- 驱动插件
设备插件是在 Kubernetes 中运行的容器,可用于访问供应商特定资源。
[+]驱动插件 是运行在 Kubernetes 中的容器,它提供对供应商特定资源的访问。驱动插件将这些资源发布到 Kubelet一个在集群中每个节点上运行的代理。它保证容器都运行在 Pod 中。 。并且可以手动部署或做为 DaemonSet确保 Pod 的副本在集群中的一组节点上运行。 ,而不用编写定制的 Kubernetes 代码。
反馈
此页是否对您有帮助?
感谢反馈。如果您有一个关于如何使用 Kubernetes 的特定的、需要答案的问题,可以访问 Stack Overflow. 在 GitHub 仓库上登记新的问题 报告问题 或者 提出改进建议.