词汇表

此词汇表旨在提供一个全面、标准化的 Kubernetes 术语列表。它包括 Kubernetes 特有的技术术语,以及提供有用上下文的更通用术语。

根据标签过滤术语

Kubernetes 的内部组件。
与 Kubernetes 开源开发相关。
Kubernetes 默认支持的资源类型。
Kubernetes 支持的自定义功能。
与 Kubernetes 初次使用者相关。
Kubernetes 组件如何相互通信(以及与集群外部程序通信)。
启动和维护 Kubernetes。
确保 Kubernetes 应用程序安全无虞。
Kubernetes 应用程序如何处理持久数据。
使 Kubernetes 更易于使用或性能更佳的软件。
代表一种常见的 Kubernetes 用户类型。
在 Kubernetes 上运行的应用程序。
架构 社区 核心对象 扩展 基础 网络 操作 安全 存储 工具 用户类型 工作负载 全选 取消全选

单击下面的 [+] 指示符以获取任何特定术语的更长解释。

  • 附加组件

    扩展 Kubernetes 功能的资源。

    [+]

    安装附加组件 解释了更多关于如何使用附加组件以及一些流行的附加组件。

  • 准入控制器

    在对象持久化之前拦截对 Kubernetes API 服务器请求的一段代码。

    [+]

    准入控制器可为 Kubernetes API 服务器配置,可为“验证型”、“变更型”或两者兼有。任何准入控制器都可以拒绝请求。变更型控制器可以修改它们准入的对象;验证型控制器则不能。

  • 亲和性

    在 Kubernetes 中,**亲和性**是一组规则,向调度器提供放置 Pod 的提示。

    [+]

    亲和性有两种类型:

    这些规则是使用 Kubernetes 标签选择器Pod 中指定的,可以是必需的或首选的,具体取决于你希望调度器强制执行的严格程度。

  • 聚合层

    聚合层允许你在集群中安装额外的 Kubernetes 风格的 API。

    [+]

    当你配置 Kubernetes API 服务器支持额外的 API 时,你可以添加 `APIService` 对象以“声明”Kubernetes API 中的 URL 路径。

  • 注解

    用于将任意非标识元数据附加到对象的键值对。

    [+]

    注解中的元数据可以是小的或大的,结构化的或非结构化的,并且可以包含 标签 不允许的字符。工具和库等客户端可以检索此元数据。

  • API 组

    Kubernetes API 中一组相关的路径。

    [+]

    你可以通过更改 API 服务器的配置来启用或禁用每个 API 组。你还可以禁用或启用特定 资源 的路径。API 组使扩展 Kubernetes API 变得更容易。API 组在 REST 路径和序列化 对象 的 `apiVersion` 字段中指定。

    • 阅读 API 组 以获取更多信息。
  • API 资源
    也称为:资源

    Kubernetes 类型系统中的实体,对应于 Kubernetes API 上的一个端点。资源通常表示一个 对象。某些资源表示对其他对象的操作,例如权限检查。

    [+]

    每个资源表示 Kubernetes API 服务器上的一个 HTTP 端点(URI),定义了该资源上对象或操作的模式。

  • API 服务器
    也称为:kube-apiserver

    API 服务器是 Kubernetes 控制平面 的一个组件,它暴露 Kubernetes API。API 服务器是 Kubernetes 控制平面的前端。

    [+]

    Kubernetes API 服务器的主要实现是 kube-apiserver。kube-apiserver 设计为水平扩展——也就是说,它通过部署更多实例来扩展。你可以运行多个 kube-apiserver 实例并在这些实例之间平衡流量。

  • API 发起的驱逐

    API 发起的驱逐是你使用 驱逐 API 创建一个 `Eviction` 对象以触发优雅的 Pod 终止的过程。

    [+]

    你可以通过使用 kube-apiserver 的客户端(例如 `kubectl drain` 命令)直接调用驱逐 API 来请求驱逐。当 `Eviction` 对象创建时,API 服务器终止 Pod。

    API 发起的驱逐遵循你配置的 `PodDisruptionBudgets``terminationGracePeriodSeconds`

    API 发起的驱逐与 节点压力驱逐 不同。

  • 应用程序容器

    应用程序容器(或应用容器)是 容器 中的 Pod,在任何 初始化容器 完成后启动。

    [+]

    初始化容器允许你分离对整个 工作负载 很重要,并且在应用程序容器启动后不需要继续运行的初始化细节。如果 Pod 没有配置任何初始化容器,则该 Pod 中的所有容器都是应用程序容器。

  • 应用程序架构师

    负责应用程序高级设计的人员。

    [+]

    架构师确保应用程序的实现允许它以可伸缩、可维护的方式与其周围的组件交互。周围的组件包括数据库、日志基础设施和其他微服务。

  • 应用程序开发人员

    编写在 Kubernetes 集群中运行的应用程序的人员。

    [+]

    应用程序开发人员专注于应用程序的一部分。他们关注的范围大小可能差异很大。

  • 应用程序
    运行各种容器化应用程序的层。 [+]

    运行各种容器化应用程序的层。

  • 批准者

    可以审阅和批准 Kubernetes 代码贡献的人员。

    [+]

    虽然代码审阅侧重于代码质量和正确性,但批准侧重于对贡献的整体接受。整体接受包括向后/向前兼容性、遵守 API 和标志约定、微妙的性能和正确性问题、与系统其他部分的交互等等。批准者状态限定在代码库的一部分。批准者以前被称为维护者。

  • cAdvisor

    cAdvisor (Container Advisor) 为容器用户提供对其运行 资源 使用情况和性能特征的了解。

    [+]

    它是一个运行的守护进程,用于收集、聚合、处理和导出有关运行容器的信息。具体来说,对于每个容器,它保留资源隔离参数、历史资源使用情况、完整历史资源使用情况直方图和网络统计信息。此数据按容器和机器范围导出。

  • 证书

    用于验证对 Kubernetes 集群访问的加密安全文件。

    [+]

    证书使 Kubernetes 集群内的应用程序能够安全地访问 Kubernetes API。证书验证客户端是否被允许访问 API。

  • cgroup(控制组)

    一组可选的 资源 隔离、记账和限制的 Linux 进程组。

    [+]

    cgroup 是一个 Linux 内核特性,它限制、记账并隔离一组进程的资源使用(CPU、内存、磁盘 I/O、网络)。

  • CIDR

    CIDR(无类别域间路由)是描述 IP 地址块的表示法,在各种网络配置中大量使用。

    [+]

    在 Kubernetes 的上下文中,每个 节点 都通过起始地址和使用 CIDR 的子网掩码分配一个 IP 地址范围。这允许节点为每个 Pod 分配一个唯一的 IP 地址。尽管最初是 IPv4 的概念,但 CIDR 也已扩展到包括 IPv6。

  • CLA(贡献者许可协议)

    贡献者 根据其贡献授予开源项目的许可条款。

    [+]

    CLA 有助于解决涉及贡献材料和知识产权 (IP) 的法律纠纷。

  • 云控制器管理器

    一个 Kubernetes 控制平面 组件,它嵌入了云特定的控制逻辑。云控制器管理器允许你将集群链接到云提供商的 API,并将与该云平台交互的组件与仅与集群交互的组件分离。

    [+]

    通过解耦 Kubernetes 与底层云基础设施之间的互操作性逻辑,云控制器管理器组件使云提供商能够以与主 Kubernetes 项目不同的速度发布功能。

  • 云原生计算基金会 (CNCF)

    云原生计算基金会 (CNCF) 围绕将容器编排作为微服务架构一部分的 项目 构建可持续的生态系统并培养社区。

    Kubernetes 是一个 CNCF 项目。

    [+]

    CNCF 是 Linux 基金会 的一个子基金会。其使命是使云原生计算无处不在。

  • 云提供商
    也称为:云服务提供商

    提供云计算平台的公司或其他组织。

    [+]

    云提供商,有时称为云服务提供商 (CSP),提供云计算平台或服务。

    许多云提供商提供托管基础设施(也称为基础设施即服务或 IaaS)。通过托管基础设施,云提供商负责服务器、存储和网络,而你则管理其上的层,例如运行 Kubernetes 集群。

    你还可以找到作为托管服务的 Kubernetes;有时称为平台即服务或 PaaS。通过托管 Kubernetes,你的云提供商负责 Kubernetes 控制平面以及 节点 和它们所依赖的基础设施:网络、存储,以及可能其他元素,如负载均衡器。

  • 集群

    一组运行容器化应用程序的工作机器,称为 节点。每个集群至少有一个工作节点。

    [+]

    工作节点托管作为应用程序工作负载组件的 Pod控制平面 管理工作节点和集群中的 Pod。在生产环境中,控制平面通常运行在多台计算机上,集群通常运行多个节点,提供容错和高可用性。

  • 集群架构师

    设计涉及一个或多个 Kubernetes 集群的基础设施的人员。

    [+]

    集群架构师关注分布式系统的最佳实践,例如:高可用性和安全性。

  • 集群基础设施
    基础设施层提供并维护虚拟机、网络、安全组等。 [+]

    基础设施层提供并维护虚拟机、网络、安全组等。

  • 集群操作

    管理 Kubernetes 集群所需的工作:管理日常操作,以及协调升级。

    [+]

    集群操作工作示例包括:部署新节点以扩缩集群;执行软件升级;实施安全控制;添加或移除存储;配置集群网络;管理集群范围的可观测性;以及响应事件。

  • 集群运维人员

    配置、控制和监控集群的人员。

    [+]

    他们的主要职责是保持集群正常运行,这可能涉及定期维护活动或升级。

  • 代码贡献者

    开发代码并将其贡献给 Kubernetes 开源代码库的人员。

    [+]

    他们也是积极的 社区成员,参与一个或多个 特别兴趣小组 (SIG)

  • 通用表达式语言
    也称为:CEL

    一种通用表达式语言,设计用于快速、便携和安全地执行。

    [+]

    在 Kubernetes 中,CEL 可用于运行查询和执行细粒度过滤。例如,你可以将 CEL 表达式与 动态准入控制 一起使用以过滤请求中的特定字段,并与 动态资源分配 (DRA) 一起使用以根据特定属性选择资源。

  • ConfigMap

    一个 API 对象,用于以键值对形式存储非机密数据。Pod 可以将 ConfigMap 作为环境变量、命令行参数或 中的配置文件使用。

    [+]

    ConfigMap 允许你将特定于环境的配置与你的 容器镜像 解耦,从而使你的应用程序易于移植。

  • 容器

    一种轻量级、可移植的可执行镜像,包含软件及其所有依赖项。

    [+]

    容器将应用程序与底层主机基础设施解耦,以便更容易地部署到不同的云或操作系统环境中,并更容易地进行扩展。在容器内部运行的应用程序称为容器化应用程序。将这些应用程序及其依赖项打包成容器镜像的过程称为容器化。

  • 容器环境变量

    容器环境变量是 `name=value` 对,为在 Pod 中运行的容器提供有用信息。

    [+]

    容器环境变量提供运行容器化应用程序所需的信息,以及关于 容器 的重要相关细节以及其他集群资源(如服务终点)的信息。

  • 容器生命周期钩子

    生命周期钩子暴露了 容器 管理生命周期中的事件,并允许用户在事件发生时运行代码。

    [+]

    容器暴露了两个钩子:PostStart 在容器创建后立即执行,PreStop 是阻塞的,在容器终止前立即调用。

  • 容器网络接口 (CNI)

    容器网络接口 (CNI) 插件是一种遵循 appc/CNI 规范的网络插件。

    [+]
    • 有关 Kubernetes 和 CNI 的信息,请参阅 网络插件
  • 容器运行时

    使 Kubernetes 能够有效运行容器的基本组件。它负责管理 Kubernetes 环境中容器的执行和生命周期。

    [+]

    Kubernetes 支持的容器运行时包括 containerdCRI-O 以及 Kubernetes CRI(容器运行时接口) 的任何其他实现。

  • 容器运行时接口 (CRI)

    kubelet 和容器运行时之间通信的主要协议。

    [+]

    Kubernetes 容器运行时接口 (CRI) 定义了 gRPC 协议,用于 节点组件 kubelet容器运行时 之间的主要通信。

  • 容器存储接口 (CSI)

    容器存储接口 (CSI) 定义了一个标准接口,用于将存储系统暴露给容器。

    [+]

    CSI 允许供应商为 Kubernetes 创建自定义存储插件,而无需将其添加到 Kubernetes 仓库(out-of-tree 插件)。要使用存储提供商的 CSI 驱动程序,你必须首先 将其部署到集群。然后,你将能够创建使用该 CSI 驱动程序的 Storage Class

  • containerd

    一种容器运行时,强调简洁性、健壮性和可移植性

    [+]

    containerd 是一个 容器 运行时,在 Linux 或 Windows 上作为守护进程运行。containerd 负责获取和存储容器镜像、执行容器、提供网络访问等。

  • 贡献者

    为 Kubernetes 项目或社区捐赠代码、文档或时间的人员。

    [+]

    贡献包括拉取请求 (PRs)、问题、反馈、特别兴趣小组 (SIG) 参与或组织社区活动。

  • 控制平面

    容器编排层,它暴露 API 和接口来定义、部署和管理容器的生命周期。

    [+]

    该层由许多不同的组件组成,例如(但不限于):

    这些组件可以作为传统的操作系统服务(守护进程)或作为容器运行。运行这些组件的主机在历史上被称为 master

  • 控制器

    在 Kubernetes 中,控制器是控制循环,它们监视 集群 的状态,然后在需要时进行或请求更改。每个控制器都试图使当前集群状态更接近所需状态。

    [+]

    控制器通过 apiserver控制平面的一部分)监视集群的共享状态。

    一些控制器也在控制平面内部运行,提供作为 Kubernetes 核心操作的控制循环。例如:Deployment 控制器、DaemonSet 控制器、Namespace 控制器和 Persistent Volume 控制器(以及其他控制器)都运行在 kube-controller-manager 中。

  • CRI-O

    一个工具,允许你将 OCI 容器运行时与 Kubernetes CRI 结合使用。

    [+]

    CRI-O 是 容器运行时接口 (CRI) 的实现,它使得能够使用与开放容器倡议 (OCI) 运行时规范兼容的容器运行时。

    部署 CRI-O 允许 Kubernetes 使用任何符合 OCI 的运行时作为运行 Pod 的容器运行时,并从远程仓库拉取 OCI 容器镜像。

  • CronJob

    管理按周期性调度运行的 Job

    [+]

    类似于 crontab 文件中的一行,CronJob 对象使用 cron 格式指定调度。

  • CustomResourceDefinition

    一种 API 对象,它定义了一个新的自定义 API,可添加到 Kubernetes API 服务器,而无需构建一个完整的自定义服务器。

    [+]

    如果内置的 API 资源无法满足你的需求,CustomResourceDefinitions 允许你为你的环境扩展 Kubernetes API。

  • DaemonSet

    确保 Pod 的一个副本在集群中的一组节点上运行。

    [+]

    用于部署系统守护进程,例如日志收集器和监控代理,它们通常必须在每个节点上运行。

  • 数据平面
    提供 CPU、内存、网络和存储等容量的层,以便容器可以运行并连接到网络。[+]

    提供 CPU、内存、网络和存储等容量的层,以便容器可以运行并连接到网络。

  • Deployment

    一个 API 对象,用于管理复制的应用程序,通常通过运行没有本地状态的 Pod 来实现。

    [+]

    每个副本由一个 Pod 表示,并且 Pod 分布在集群的 节点之间。对于确实需要本地状态的工作负载,请考虑使用 StatefulSet

  • 开发者(消歧)

    可能指:应用程序开发者代码贡献者,或平台开发者

    [+]

    这个重载的术语根据上下文可能具有不同的含义。

  • 设备

    一个或多个直接或间接连接到节点基础设施资源

    [+]

    设备可能是 GPU 等商业产品,也可能是 ASIC 板等定制硬件。连接的设备通常需要设备驱动程序,以允许 Kubernetes Pod 访问这些设备。

  • 设备插件

    设备插件在工作节点上运行,为Pod 提供对基础设施资源(例如本地硬件)的访问,这些资源需要供应商特定的初始化或设置步骤。

    [+]

    设备插件将资源广告给 kubelet,以便工作负载 Pod 可以访问与该 Pod 运行的节点相关的硬件功能。你可以将设备插件部署为 DaemonSet,或者直接在每个目标节点上安装设备插件软件。

    有关更多信息,请参阅设备插件

  • DeviceClass

    集群中可用于动态资源分配 (DRA) 的设备类别。

    [+]

    管理员或设备所有者使用 DeviceClass 来定义一组可在工作负载中声明和使用的设备。通过创建 ResourceClaim 来声明设备,这些 ResourceClaim 会筛选 DeviceClass 中特定的设备参数。

    有关更多信息,请参阅动态资源分配

  • 中断

    中断是导致一个或多个 Pod 停止服务的事件。中断对依赖受影响 Pod 的工作负载管理资源(例如 Deployment)有影响。

    [+]

    如果你作为集群操作员,销毁属于某个应用程序的 Pod,Kubernetes 将其称为 自愿中断。如果 Pod 因节点故障或影响更广泛故障区域的停机而离线,Kubernetes 将其称为 非自愿中断

    有关更多信息,请参阅中断

  • Docker

    Docker(特指 Docker Engine)是一种提供操作系统级虚拟化(也称为容器)的软件技术。

    [+]

    Docker 利用 Linux 内核的资源隔离特性(如 cgroups 和内核命名空间)以及支持联合文件系统(如 OverlayFS 和其他文件系统),允许独立容器在单个 Linux 实例中运行,避免了启动和维护虚拟机 (VM) 的开销。

  • Dockershim

    Dockershim 是 Kubernetes 1.23 及更早版本的一个组件。它允许 kubeletDocker Engine 通信。

    [+]

    从 1.24 版本开始,dockershim 已从 Kubernetes 中移除。有关更多信息,请参阅 Dockershim 常见问题

  • 下游(消歧)

    可能指:Kubernetes 生态系统中依赖核心 Kubernetes 代码库或分支代码库的代码。

    [+]
    • 在 **Kubernetes 社区**:对话中经常使用 *下游* 指代依赖核心 Kubernetes 代码库的生态系统、代码或第三方工具。例如,Kubernetes 中的新功能可能会被*下游*应用程序采用以改善其功能。
    • 在 **GitHub** 或 **git**:惯例是将分支仓库称为 *下游*,而源仓库则被视为 *上游*。
  • Downward API

    Kubernetes 暴露 Pod 和容器字段值给容器中运行的代码的机制。

    [+]

    有时,容器需要了解自身信息,而无需修改容器代码使其直接与 Kubernetes 耦合。

    Kubernetes downward API 允许容器使用关于自身或其在 Kubernetes 集群中上下文的信息。容器中的应用程序可以访问这些信息,而无需应用程序充当 Kubernetes API 的客户端。

    有两种方法可以向运行中的容器暴露 Pod 和容器字段:

    这两种暴露 Pod 和容器字段的方式统称为 *downward API*。

  • 排空

    安全驱逐Pod 的过程,使其脱离 节点,以便为维护或从集群中移除做好准备。

    [+]

    kubectl drain 命令用于将节点标记为停止服务。执行后,它会从节点驱逐所有Pod。如果驱逐请求暂时被拒绝,kubectl drain 会重试直到所有Pod 都终止或达到可配置的超时。

  • 持续时间

    表示时间量的一个字符串值。

    [+]

    (Kubernetes)持续时间的格式基于 Go 编程语言中的 time.Duration 类型。

    在 Kubernetes API 中使用持续时间时,值表示为一系列非负整数与时间单位后缀的组合。你可以有多个时间量,持续时间是这些时间量的总和。有效的时间单位是“ns”、“µs”(或“us”)、“ms”、“s”、“m”和“h”。

    例如:5s 表示五秒的持续时间,1m30s 表示一分三十秒的持续时间。

  • 动态资源分配
    亦称:DRA

    Kubernetes 功能,允许你在 Pod 之间请求和共享资源。这些资源通常是连接的设备,如硬件加速器。

    [+]

    通过 DRA,设备驱动程序和集群管理员定义可在工作负载中**声明**的设备**类**。Kubernetes 将匹配的设备分配给特定的声明,并将相应的 Pod 放置在可以访问分配设备的节点上。

  • 动态卷供给

    允许用户请求自动创建存储

    [+]

    动态供给消除了集群管理员预先供给存储的需要。相反,它根据用户请求自动供给存储。动态卷供给基于一个 API 对象 StorageClass,它引用一个用于供给卷插件以及要传递给该卷插件的一组参数。

  • 端点

    Service 的一个端点是实现该 Service 的 Pod(或外部服务器)之一。

    [+]

    对于带有选择器的 Service,EndpointSlice 控制器将自动创建一个或多个 EndpointSlice,给出选定端点 Pod 的 IP 地址。

    EndpointSlice 也可以手动创建,以指示未指定选择器的 Service 的端点。

  • EndpointSlice

    EndpointSlice 跟踪匹配选择器的 Pod 的 IP 地址。

    [+]

    EndpointSlice 可以为未指定选择器的服务手动配置。

  • 临时容器

    一种容器类型,你可以暂时在Pod 内部运行。

    [+]

    如果你想调查一个运行有问题的 Pod,你可以向该 Pod 添加一个临时容器并进行诊断。临时容器没有资源或调度保证,你不应该使用它们来运行工作负载的任何部分。

    临时容器不受静态 Pod 的支持。

  • etcd

    一致且高可用的键值存储,用作 Kubernetes 所有集群数据的后端存储。

    [+]

    如果你的 Kubernetes 集群使用 etcd 作为其后端存储,请确保你有一个数据备份计划。

    你可以在官方文档中找到有关 etcd 的深入信息。

  • 事件

    一个 Kubernetes 对象,描述集群中的状态变化或值得注意的事件。

    [+]

    事件的保留时间有限,触发器和消息可能会随时间演变。事件消费者不应依赖于具有给定原因的事件的时间反映一致的底层触发器,或具有该原因的事件的持续存在。

    事件应被视为信息性的、尽力而为的补充数据。

    在 Kubernetes 中,审计生成一种不同类型的事件记录(API 组 audit.k8s.io)。

  • 驱逐

    驱逐是终止节点上一个或多个 Pod 的过程。

    [+]
  • 扩展

    扩展是软件组件,它们扩展并深度集成到 Kubernetes 中,以支持新型硬件。

    [+]

    许多集群管理员使用 Kubernetes 的托管或发行实例。这些集群预装了扩展。因此,大多数 Kubernetes 用户不需要安装扩展,更少的用户需要编写新的扩展。

  • 功能开关

    功能开关是一组键(不透明字符串值),你可以使用它们来控制集群中启用的 Kubernetes 功能。

    [+]

    你可以在每个 Kubernetes 组件上使用 --feature-gates 命令行标志来打开或关闭这些功能。每个 Kubernetes 组件都允许你启用或禁用一组与该组件相关的功能开关。Kubernetes 文档列出了所有当前功能开关以及它们控制的内容。

  • 终结器

    终结器是命名空间键,它告诉 Kubernetes 在完全删除标记为待删除的资源之前等待特定条件满足。终结器提醒控制器清理被删除对象拥有的资源。

    [+]

    当你告诉 Kubernetes 删除一个已为其指定终结器的对象时,Kubernetes API 会通过填充 .metadata.deletionTimestamp 来标记该对象待删除,并返回 202 状态码(HTTP "Accepted")。目标对象在终止状态下保持,而控制平面或其他组件执行由终结器定义的操作。这些操作完成后,控制器会从目标对象中删除相关的终结器。当 metadata.finalizers 字段为空时,Kubernetes 认为删除完成并删除该对象。

    你可以使用终结器来控制资源的垃圾回收。例如,你可以定义一个终结器来清理相关的API 资源或基础设施,然后控制器再删除被终结的对象。

  • FlexVolume

    FlexVolume 是一个已弃用的接口,用于创建树外卷插件。容器存储接口是一个较新的接口,解决了 FlexVolume 的一些问题。

    [+]

    FlexVolume 允许用户编写自己的驱动程序并在 Kubernetes 中添加对其卷的支持。FlexVolume 驱动程序二进制文件和依赖项必须安装在主机上。这需要 root 访问权限。存储 SIG 建议尽可能实现 CSI 驱动程序,因为它解决了 FlexVolume 的限制。

  • 垃圾回收

    垃圾回收是 Kubernetes 用于清理集群资源的各种机制的统称。

    [+]

    Kubernetes 使用垃圾回收来清理资源,例如未使用的容器和镜像失败的 Pod目标资源拥有的对象已完成的 Job 以及已过期或失败的资源。

  • Gateway API

    用于在 Kubernetes 中建模服务网络的 API 种类系列。

    [+]

    Gateway API 提供了一系列可扩展、面向角色、协议感知的 API 种类,用于在 Kubernetes 中建模服务网络。

  • 组版本资源
    亦称:GVR

    用于唯一表示特定 Kubernetes API 的方法。

    [+]

    组版本资源 (GVR) 指定与访问 Kubernetes 中特定对象 ID 相关的 API 组、API 版本和**资源**(在 URI 中显示的对象类型名称)。GVR 允许你定义和区分不同的 Kubernetes 对象,并指定一种访问对象的方式,即使 API 发生变化也能保持稳定。

    在此用法中,**资源**指 HTTP 资源。因为某些 API 是命名空间化的,所以 GVR 可能不指特定的API 资源

  • Helm Chart

    一个预配置的 Kubernetes 配置包,可以使用 Helm 工具进行管理。

    [+]

    Chart 提供了一种可重复创建和共享 Kubernetes 应用程序的方式。单个 Chart 可以用于部署简单的东西,例如 memcached Pod,也可以部署复杂的东西,例如带有 HTTP 服务器、数据库、缓存等完整 Web 应用程序栈。

  • Horizontal Pod Autoscaler
    亦称:HPA

    一个根据目标资源利用率或自定义指标目标自动扩缩 Pod 副本数量的对象

    [+]

    HorizontalPodAutoscaler (HPA) 通常与DeploymentReplicaSet 一起使用。它不能应用于无法扩缩的对象,例如 DaemonSet

  • HostAliases

    HostAliases 是要注入到Pod 的 hosts 文件中的 IP 地址和主机名之间的映射。

    [+]

    HostAliases 是一个可选的主机名和 IP 地址列表,如果指定,它们将被注入到 Pod 的 hosts 文件中。这仅适用于非 hostNetwork Pod。

  • 镜像

    容器的存储实例,包含运行应用程序所需的一组软件。

    [+]

    一种打包软件的方式,允许将其存储在容器仓库中,拉取到本地系统,并作为应用程序运行。镜像中包含元数据,可以指示要运行哪个可执行文件、构建者以及其他信息。

  • 不可变基础设施

    不可变基础设施是指一旦部署后就不能更改的计算机基础设施(虚拟机、容器、网络设备)。

    [+]

    不变性可以通过自动化过程来强制执行,该过程会覆盖未经授权的更改,或者通过一个系统来强制执行,该系统根本不允许更改。容器是不可变基础设施的一个很好的例子,因为对容器的持久更改只能通过创建容器的新版本或从其镜像重新创建现有容器来实现。

    通过防止或识别未经授权的更改,不可变基础设施使识别和缓解安全风险变得更加容易。操作系统变得更加简单,因为管理员可以对其进行假设。毕竟,他们知道没有人犯错或忘记沟通更改。不可变基础设施与基础设施即代码携手并进,所有创建基础设施所需的自动化都存储在版本控制(例如 Git)中。不变性和版本控制的结合意味着系统所有授权更改都有一个持久的审计日志。

  • Ingress

    一个 API 对象,用于管理对集群中服务的外部访问,通常是 HTTP。

    [+]

    Ingress 可以提供负载均衡、SSL 终止和基于名称的虚拟主机。

  • Init 容器

    一个或多个初始化容器,它们必须在任何应用程序容器运行之前完成。

    [+]

    初始化 (init) 容器与普通应用程序容器类似,但有一个区别:init 容器必须在任何应用程序容器启动之前完成运行。init 容器按顺序运行:每个 init 容器必须在下一个 init 容器开始之前完成运行。

    边车容器不同,init 容器在 Pod 启动后不会继续运行。

    有关更多信息,请阅读初始化容器

  • Istio

    一个开放平台(非 Kubernetes 特有),提供统一的方式来集成微服务、管理流量、强制执行策略和聚合遥测数据。

    [+]

    添加 Istio 不需要更改应用程序代码。它是服务和网络之间的一层基础设施,与服务部署结合使用时,通常被称为服务网格。Istio 的控制平面抽象了底层集群管理平台,该平台可以是 Kubernetes、Mesosphere 等。

  • Job

    一个有限或批处理任务,运行至完成。

    [+]

    创建一个或多个 Pod 对象,并确保指定数量的 Pod 成功终止。当 Pod 成功完成时,Job 会跟踪成功的完成情况。

  • JSON Web Token (JWT)

    一种表示在双方之间传输声明的方式。

    [+]

    JWT 可以进行数字签名和加密。Kubernetes 使用 JWT 作为身份验证令牌,以验证希望在集群中执行操作的实体的身份。

  • kOps (Kubernetes Operations)

    kOps 不仅可以帮助你创建、销毁、升级和维护生产级、高可用的 Kubernetes 集群,它还将提供必要的云基础设施。

    [+]

    kOps 是一个自动化部署系统

    • 全自动安装
    • 使用 DNS 识别集群
    • 自修复:一切都在 Auto-Scaling Group 中运行
    • 支持多种操作系统(Amazon Linux、Debian、Flatcar、RHEL、Rocky 和 Ubuntu)
    • 高可用性支持
    • 可以直接部署,或生成 Terraform 清单
  • kube-controller-manager

    运行控制器进程的控制平面组件。

    [+]

    从逻辑上讲,每个控制器都是一个独立的进程,但为了降低复杂性,它们都被编译成一个单一二进制文件并在一个单一进程中运行。

  • kube-proxy

    kube-proxy 是一个网络代理,运行在集群中的每个节点上,实现了 Kubernetes Service 概念的一部分。

    [+]

    kube-proxy 维护节点上的网络规则。这些网络规则允许集群内部或外部的网络会话与你的 Pod 进行网络通信。

    kube-proxy 如果操作系统有数据包过滤层并且可用,就会使用它。否则,kube-proxy 会自己转发流量。

  • kube-scheduler

    控制平面组件,监视新创建的但未分配节点Pod,并为它们选择一个运行节点。

    [+]

    调度决策中考虑的因素包括:单独和集体的资源需求、硬件/软件/策略限制、亲和性和反亲和性规范、数据局部性、工作负载间干扰以及截止日期。

  • Kubeadm

    一个用于快速安装 Kubernetes 并设置安全集群的工具。

    [+]

    你可以使用 kubeadm 安装控制平面和工作节点组件。

  • Kubectl
    亦称:kubectl

    命令行工具,用于使用 Kubernetes API 与 Kubernetes 集群的控制平面通信。

    [+]

    你可以使用 kubectl 创建、检查、更新和删除 Kubernetes 对象。

    在英语中,kubectl(官方)发音为 /kjuːb/ /kənˈtɹəʊl/(就像“cube control”)。

  • Kubelet

    一个代理,运行在集群中的每个节点上。它确保容器Pod 中运行。

    [+]

    kubelet 接收通过各种机制提供的 PodSpec,并确保这些 PodSpec 中描述的容器正在运行且健康。kubelet 不管理非 Kubernetes 创建的容器。

  • Kubernetes API

    通过 RESTful 接口提供 Kubernetes 功能并存储集群状态的应用程序。

    [+]

    Kubernetes 资源和“意图记录”都作为 API 对象存储,并通过对 API 的 RESTful 调用进行修改。API 允许以声明式方式管理配置。用户可以直接与 Kubernetes API 交互,也可以通过 kubectl 等工具进行交互。核心 Kubernetes API 灵活且可以扩展以支持自定义资源。

  • 标签

    用对用户有意义和相关的识别属性标记对象。

    [+]

    标签是附加到对象(如Pod)的键/值对。它们用于组织和选择对象的子集。

  • LimitRange

    限制每个容器Pod 的资源消耗,为特定命名空间指定。

    [+]

    一个 LimitRange 限制了可以创建的 API 资源的数量(针对特定资源类型),或者限制了命名空间内单个容器或 Pod 可以请求/消耗的基础设施资源的数量。

  • 日志

    日志是集群或应用程序记录的事件列表。

    [+]

    应用程序和系统日志可以帮助你了解集群内部发生的情况。这些日志对于调试问题和监控集群活动特别有用。

  • 托管服务

    由第三方提供商维护的软件产品。

    [+]

    托管服务的一些示例包括 AWS EC2、Azure SQL Database 和 GCP Pub/Sub,但它们可以是任何可供应用程序使用的软件产品。

  • 清单

    采用 JSONYAML 格式的 Kubernetes API 对象规范。

    [+]

    清单指定了 Kubernetes 在应用清单时将维护的对象期望状态。对于 YAML 格式,每个文件可以包含多个清单。

  • 主节点

    旧术语,用作托管控制平面节点的同义词。

    [+]

    该术语仍被某些部署工具(如 kubeadm)和托管服务使用,以标记带有 kubernetes.io/role节点,并控制控制平面 Pod 的放置。

  • 成员

    K8s 社区中持续活跃的贡献者

    [+]

    成员可以分配到问题和 PR,并通过 GitHub 团队参与特别兴趣小组 (SIG)。预提交测试会自动为成员的 PR 运行。成员应保持对社区的积极贡献。

  • Minikube

    一个用于在本地运行 Kubernetes 的工具。

    [+]

    Minikube 在你计算机上的虚拟机中运行一个一体化或多节点本地 Kubernetes 集群。你可以使用 Minikube 在学习环境中尝试 Kubernetes。

  • 镜像 Pod

    一个Pod 对象,kubelet 用它来表示一个静态 Pod

    [+]

    当 kubelet 在其配置中发现一个静态 Pod 时,它会自动尝试在 Kubernetes API 服务器上为其创建一个 Pod 对象。这意味着该 Pod 将在 API 服务器上可见,但无法从那里进行控制。

    (例如,删除镜像 Pod 不会阻止 kubelet 守护进程运行它)。

  • 混合版本代理 (MVP)
    亦称:MVP

    一项功能,允许 kube-apiserver 将资源请求代理到不同的对等 API 服务器。

    [+]

    当一个集群有多个运行不同版本 Kubernetes 的 API 服务器时,此功能使资源请求由正确的 API 服务器提供服务。

    MVP 默认禁用,可以通过在启动 API 服务器时启用名为 UnknownVersionInteroperabilityProxy功能开关来激活。

  • 名称

    客户端提供的字符串,指代 资源 URL 中的对象,例如 /api/v1/pods/some-name

    [+]

    在给定时间,给定类型只有一个对象可以具有给定名称。但是,如果你删除该对象,则可以创建一个具有相同名称的新对象。

  • 命名空间

    Kubernetes 使用的一种抽象,用于支持单个集群API 资源组的隔离。

    [+]

    命名空间用于组织集群中的对象并提供一种划分集群资源的方法。资源名称在命名空间内必须是唯一的,但在命名空间之间不必唯一。基于命名空间的作用域仅适用于命名空间资源(例如:Pod、Deployment、Service),而不适用于集群范围资源(例如:StorageClass、Node、PersistentVolume)。

  • 网络策略

    一组 Pod 如何相互通信以及与其他网络端点通信的规范。

    [+]

    NetworkPolicy 帮助你声明性地配置哪些 Pod 允许相互连接,哪些命名空间允许通信,以及更具体地在哪个端口号上强制执行每个策略。NetworkPolicy 对象使用标签来选择 Pod,并定义规则以指定允许哪些流量流向选定的 Pod。

    NetworkPolicy 由网络提供商提供的支持的网络插件实现。请注意,创建一个 NetworkPolicy 对象而没有控制器来实现它将不起作用。

  • 节点

    节点是 Kubernetes 中的一台工作机器。

    [+]

    工作节点可以是虚拟机或物理机,具体取决于集群。它具有运行Pod 所需的本地守护进程或服务,并由控制平面管理。节点上的守护进程包括 kubeletkube-proxy,以及实现 CRI 的容器运行时(例如 Docker)。

    在早期的 Kubernetes 版本中,节点被称为“Minions”。

  • 节点压力驱逐
    亦称:kubelet 驱逐

    节点压力驱逐是 kubelet 主动终止 Pod 以回收节点上的资源的过程。

    [+]

    kubelet 监视集群节点上的 CPU、内存、磁盘空间和文件系统 inode 等资源。当一个或多个这些资源达到特定消耗水平时,kubelet 可以主动使节点上的一个或多个 Pod 失败,以回收资源并防止资源耗尽。

    节点压力驱逐与API 启动的驱逐不同。

  • 对象

    Kubernetes 系统中的一个实体。对象是一个 API 资源,Kubernetes API 用它来表示集群的状态。

    [+]

    Kubernetes 对象通常是“意图记录”——一旦你创建了对象,Kubernetes 控制平面就会不断工作以确保它所代表的项目实际存在。通过创建对象,你实际上是在告诉 Kubernetes 系统你希望集群的该部分工作负载是什么样子;这就是你的集群的期望状态。

  • Operator 模式

    Operator 模式是一种系统设计,它将控制器链接到一个或多个自定义资源。

    [+]

    你可以通过向集群添加控制器来扩展 Kubernetes,这些控制器超出了 Kubernetes 本身作为一部分提供的内置控制器。

    如果一个运行中的应用程序充当控制器,并且具有 API 访问权限,可以针对在控制平面中定义的自定义资源执行任务,这就是 Operator 模式的一个例子。

  • 持久卷

    一个 API 对象,表示集群中的一块存储。它作为一种通用的、可插拔的存储资源,其生命周期可以超越任何单个Pod

    [+]

    持久卷 (PV) 提供了一个 API,它将存储的提供方式与消费方式的细节抽象化。PV 直接用于可以提前创建存储的场景(静态供应)。对于需要按需存储的场景(动态供应),则使用持久卷声明 (PVC)。

  • 持久卷声明

    声明在持久卷中定义的存储资源,以便存储可以作为卷挂载到容器中。

    [+]

    指定存储量、存储的访问方式(只读、读写和/或独占)以及回收方式(保留、回收或删除)。存储本身的详细信息在 PersistentVolume 对象中描述。

  • 平台开发者

    根据项目需求定制 Kubernetes 平台的人。

    [+]

    例如,平台开发者可以使用自定义资源使用聚合层扩展 Kubernetes API,为其 Kubernetes 实例添加专门针对其应用程序的功能。一些平台开发者也是贡献者,他们开发的扩展会贡献给 Kubernetes 社区。其他人则开发闭源的商业或特定站点扩展。

  • Pod

    最小、最简单的 Kubernetes 对象。Pod 代表集群中一组运行中的容器

    [+]

    Pod 通常配置为运行单个主容器。它还可以运行可选的边车容器,这些容器添加了日志记录等辅助功能。Pod 通常由Deployment管理。

  • Pod 中断

    Pod 中断是指节点上的 Pod 被自愿或非自愿终止的过程。

    [+]

    自愿中断是由应用程序所有者或集群管理员有意启动的。非自愿中断是无意的,可能由不可避免的问题触发,例如节点资源不足,或意外删除。

  • Pod 中断预算
    也称为:PDB

    Pod 中断预算允许应用程序所有者为复制的应用程序创建一个对象,该对象确保在任何时间点都不会自愿驱逐一定数量或百分比的具有指定标签的Pod

    [+]

    PDB 无法阻止非自愿中断;但是,它们会计入预算。

  • Pod 生命周期

    Pod 在其生命周期中经历的状态序列。

    [+]

    Pod 生命周期由 Pod 的状态或阶段定义。Pod 有五种可能的阶段:Pending(待处理)、Running(运行中)、Succeeded(成功)、Failed(失败)和 Unknown(未知)。Pod 状态的高级描述在 PodStatusphase 字段中进行了总结。

  • Pod 优先级

    Pod 优先级表示一个Pod相对于其他 Pod 的重要性。

    [+]

    Pod 优先级允许设置 Pod 的调度优先级高于或低于其他 Pod——这是生产集群工作负载的重要功能。

  • Pod 安全策略

    一个旧的 Kubernetes API,用于在Pod创建和更新期间强制执行安全限制。

    [+]

    PodSecurityPolicy 在 Kubernetes v1.21 中已弃用,并于 v1.25 中移除。作为替代方案,请使用Pod 安全准入或第三方准入插件。

  • PodTemplate
    也称为:pod 模板

    一个 API 对象,它定义了创建Pod的模板。PodTemplate API 也嵌入在工作负载管理的 API 定义中,例如DeploymentStatefulSets

    [+]

    Pod 模板允许你定义公共元数据(例如标签,或新 Pod 名称的模板)以及指定 Pod 的所需状态。工作负载管理控制器使用 Pod 模板(嵌入在另一个对象中,例如 Deployment 或 StatefulSet)来定义和管理一个或多个Pod。当存在基于相同模板的多个 Pod 时,这些 Pod 称为副本。尽管你可以直接创建 PodTemplate 对象,但很少需要这样做。

  • 抢占

    Kubernetes 中的抢占逻辑有助于待处理的Pod通过驱逐该节点上现有的低优先级 Pod 来找到合适的节点

    [+]

    如果 Pod 无法调度,调度器会尝试抢占低优先级的 Pod,以便待处理的 Pod 能够被调度。

  • 优先级类

    优先级类是为此类 Pod 分配的调度优先级的命名类。

    [+]

    PriorityClass 是一个非命名空间对象,将名称映射到整数优先级,用于 Pod。名称在 metadata.name 字段中指定,优先级值在 value 字段中。优先级范围从 -2147483648 到 1000000000(包含)。值越高表示优先级越高。

  • 探测

    kubelet 对 Pod 中运行的容器周期性执行的检查,该检查将定义容器的状态和健康状况,并告知容器的生命周期。

    [+]

    要了解更多信息,请阅读容器探针

  • 代理

    在计算领域,代理是充当远程服务中间人的服务器。

    [+]

    客户端与代理交互;代理将客户端的数据复制到实际服务器;实际服务器回复代理;代理将实际服务器的回复发送给客户端。

    kube-proxy 是在集群中每个节点上运行的网络代理,它实现了 Kubernetes Service 概念的一部分。

    你可以将 kube-proxy 作为普通的宿主空间代理服务运行。如果你的操作系统支持,你可以选择以混合模式运行 kube-proxy,以更少的系统资源实现相同的整体效果。

  • QoS 等级

    QoS 等级 (Quality of Service Class) 提供了一种方式,让 Kubernetes 将集群中的 Pod 分类为几个等级,并对调度和驱逐做出决策。

    [+]

    Pod 的 QoS 等级在创建时根据其基础设施资源请求和限制设置。QoS 等级用于对 Pod 的调度和驱逐做出决策。Kubernetes 可以为 Pod 分配以下 QoS 等级之一:Guaranteed(保障型)、Burstable(爆发型)或 BestEffort(尽力而为型)。

  • 数量

    使用SI后缀表示大或小的整数。

    [+]

    数量是使用紧凑的整数表示法和 SI 后缀来表示大或小数字。小数使用毫单位表示,而大数可以使用千、兆或吉单位表示。

    例如,数字 1.5 表示为 1500m,而数字 1000 可以表示为 1k1000000 表示为 1M。你还可以指定二进制表示法后缀;数字 2048 可以写为 2Ki

    接受的十进制(10 的幂)单位是 m(毫)、k(千,特意小写)、M(兆)、G(吉)、T(太)、P(拍)、E(艾)。

    接受的二进制(2 的幂)单位是 Ki(kibi)、Mi(mebi)、Gi(gibi)、Ti(tebi)、Pi(pebi)、Ei(exbi)。

  • RBAC (基于角色的访问控制)

    管理授权决策,允许管理员通过 Kubernetes API 动态配置访问策略。

    [+]

    RBAC 利用四种 Kubernetes 对象

    角色
    在特定命名空间中定义权限规则。
    ClusterRole
    在集群范围内定义权限规则。
    RoleBinding
    在特定命名空间中向一组用户授予角色中定义的权限。
    ClusterRoleBinding
    在集群范围内向一组用户授予角色中定义的权限。

    更多信息请参见 RBAC

  • 副本

    一个Pod或一组 Pod 的副本或复制品。副本通过维护多个相同的 Pod 实例来确保高可用性、可伸缩性和容错性。

    [+]

    副本通常在 Kubernetes 中用于实现所需的应用程序状态和可靠性。它们可以在集群中的多个节点上进行工作负载扩缩和分发。

    通过在 Deployment 或 ReplicaSet 中定义副本数量,Kubernetes 确保指定数量的实例正在运行,并根据需要自动调整数量。

    副本管理允许在 Kubernetes 集群中实现高效的负载均衡、滚动更新和自愈能力。

  • 副本集

    一个副本集(旨在)在任何给定时间保持一组副本 Pod 运行。

    [+]

    Deployment 等工作负载对象利用 ReplicaSet 来确保根据该 ReplicaSet 的规范,集群中运行着配置数量的Pod

  • ReplicationController

    一个工作负载管理对象,管理一个复制的应用程序,确保指定数量的Pod实例正在运行。

    [+]

    控制平面确保定义数量的 Pod 正在运行,即使有些 Pod 失败,手动删除 Pod,或者意外启动过多 Pod。

  • 资源(基础设施)

    提供给一个或多个节点的能力(CPU、内存、GPU 等),并可供运行在这些节点上的Pod使用。

    Kubernetes 也使用“资源”一词来描述API 资源

    [+]

    计算机提供基本的硬件设施:处理能力、存储内存、网络等。这些资源具有有限的容量,以适用于该资源的单位(CPU 数量、内存字节等)进行衡量。Kubernetes 抽象了常见的资源,用于分配给工作负载,并利用操作系统原语(例如,Linux cgroups)来管理工作负载的消耗。

    你还可以使用动态资源分配来自动管理复杂的资源分配。

  • 资源声明

    描述工作负载所需的资源,例如设备。ResourceClaim 在动态资源分配 (DRA) 中用于为 Pod 提供特定资源的访问权限。

    [+]

    ResourceClaim 可以由工作负载操作员创建,也可以由 Kubernetes 根据ResourceClaimTemplate生成。

  • ResourceClaimTemplate

    定义一个模板,Kubernetes 使用该模板创建资源声明。ResourceClaimTemplate 用于动态资源分配 (DRA),以提供每个 Pod 对独立、相似资源的访问

    [+]

    当工作负载规范中引用 ResourceClaimTemplate 时,Kubernetes 会根据模板自动创建 ResourceClaim 对象。每个 ResourceClaim 都绑定到一个特定的 Pod。当 Pod 终止时,Kubernetes 会删除相应的 ResourceClaim。

  • 资源配额

    一个对象,用于限制每个命名空间的聚合资源消耗。

    [+]

    资源配额可以限制某个命名空间中可创建的API 资源数量,也可以限制代表该命名空间(及其中的对象)可能消耗的基础设施资源总量。

  • 资源切片

    表示一个或多个基础设施资源,例如连接到节点的设备。驱动程序在集群中创建和管理 ResourceSlice。ResourceSlice 用于动态资源分配 (DRA)

    [+]

    当创建资源声明时,Kubernetes 使用 ResourceSlice 查找可以访问满足该声明的资源的节点。Kubernetes 将资源分配给 ResourceClaim,并将 Pod 调度到可以访问该资源的节点上。

  • 评审者

    在项目某些部分评审代码质量和正确性的人。

    [+]

    评审者对代码库和软件工程原则都非常了解。评审者状态限定在代码库的一部分。

  • 密文

    存储敏感信息,例如密码、OAuth 令牌和 SSH 密钥。

    [+]

    密文让你对敏感信息的使用方式有更多控制权,并降低意外泄露的风险。密文值以 base64 字符串编码,默认情况下未加密存储,但可以配置为静态加密

    一个Pod可以通过多种方式引用 Secret,例如作为卷挂载或作为环境变量。Secret 旨在用于机密数据,而ConfigMaps旨在用于非机密数据。

  • 安全上下文

    securityContext 字段定义了Pod容器的权限和访问控制设置。

    [+]

    securityContext 中,你可以定义:进程运行的用户、进程运行的组以及权限设置。你还可以配置安全策略(例如:SELinux、AppArmor 或 seccomp)。

    PodSpec.securityContext 设置适用于 Pod 中的所有容器。

  • 选择器

    允许用户根据标签过滤API 资源列表。

    [+]

    在查询资源列表时应用选择器,以按标签对其进行过滤。

  • 服务

    一种暴露运行在集群中一个或多个Pod上的网络应用程序的方法。

    [+]

    Service 所针对的 Pod 集合(通常)由选择器决定。如果添加或移除更多 Pod,匹配选择器的 Pod 集合将发生变化。Service 确保网络流量可以定向到工作负载当前的 Pod 集合。

    Kubernetes Service 要么使用 IP 网络(IPv4、IPv6 或两者),要么引用域名系统 (DNS) 中的外部名称。

    Service 抽象启用了其他机制,例如 Ingress 和 Gateway。

  • 服务目录

    一个旧的扩展 API,允许在 Kubernetes 集群中运行的应用程序轻松使用外部托管软件服务,例如云提供商提供的数据存储服务。

    [+]

    它提供了一种列出、供应和绑定外部托管服务的方式,而无需详细了解这些服务的创建或管理方式。

  • ServiceAccount

    为运行在Pod中的进程提供身份。

    [+]

    当 Pod 内部的进程访问集群时,它们会由 API 服务器以特定的服务账号进行身份验证,例如 default。当你创建一个 Pod 时,如果你没有指定服务账号,它会自动被分配到同一命名空间中的默认服务账号。

  • 随机分片

    一种将请求分配给队列的技术,比哈希取模队列数提供更好的隔离。

    [+]

    我们经常需要隔离不同的请求流,以防止高强度流挤占低强度流。一种简单的将请求放入队列的方法是,对请求的一些特性进行哈希,然后对队列数量取模,以获得要使用的队列索引。哈希函数将与流对齐的请求特性作为输入。例如,在互联网中,这通常是源地址和目的地址、协议以及源端口和目的端口组成的五元组。

    这种简单的基于哈希的方案有一个特点,即任何高强度流都会挤占所有哈希到同一队列的低强度流。为大量流提供良好隔离需要大量队列,这会带来问题。随机分片是一种更灵活的技术,可以更好地隔离低强度流和高强度流。随机分片的术语采用了从一副牌中发牌的隐喻;每个队列都是一张隐喻的牌。随机分片技术首先对识别流的请求特性进行哈希,生成一个几十位或更多位的哈希值。然后将该哈希值作为熵源来洗牌并发牌(队列)。检查所有发出的队列,并将请求放入其中长度最短的一个。使用适度的手牌大小,检查所有发出的牌的成本不高,并且给定的低强度流很有可能避开给定高强度流的影响。如果手牌大小很大,检查发出的队列的成本很高,并且低强度流更难避开一组高强度流的集体影响。因此,应慎重选择手牌大小。

  • 边车容器

    一个或多个通常在任何应用程序容器运行之前启动的容器

    [+]

    边车容器与普通应用容器类似,但用途不同:边车为主要应用容器提供 Pod 本地服务。与初始化容器不同,边车容器在 Pod 启动后继续运行。

    阅读边车容器了解更多信息。

  • SIG(特别兴趣小组)

    社区成员,他们共同管理更大的 Kubernetes 开源项目中的一个持续性部分或方面。

    [+]

    SIG 成员对推进特定领域(例如架构、API 机制或文档)有着共同的兴趣。SIG 必须遵循 SIG 治理指南,但可以有自己的贡献策略和沟通渠道。

    有关更多信息,请参阅 kubernetes/community 仓库和当前的 SIG 和工作组列表

  • Spec

    定义了每个对象(如 Pods 或 Services)应如何配置及其所需状态。

    [+]

    几乎所有 Kubernetes 对象都包含两个嵌套对象字段来管理对象的配置:对象 spec 和对象 status。对于具有 spec 的对象,你必须在创建对象时设置此项,提供你希望资源具有的特征描述:即其所需状态。

    它因不同对象(如 Pods、StatefulSets 和 Services)而异,详细说明了容器、卷、副本、端口以及其他特定于每个对象类型的设置。此字段封装了 Kubernetes 应为已定义对象维护的状态。

  • StatefulSet

    管理一组Pod的部署和扩缩,并保证这些 Pod 的顺序性和唯一性

    [+]

    Deployment类似,StatefulSet 管理基于相同容器规范的 Pod。与 Deployment 不同,StatefulSet 为其每个 Pod 维护一个稳定的身份。这些 Pod 从相同的规范创建,但不可互换:每个 Pod 都具有一个持久标识符,并在任何重新调度后保持不变。

    如果你想使用存储卷为你的工作负载提供持久性,你可以将 StatefulSet 作为解决方案的一部分。尽管 StatefulSet 中的单个 Pod 容易失败,但持久的 Pod 标识符使得将现有卷与替代失败 Pod 的新 Pod 匹配变得更容易。

  • 静态 Pod

    由特定节点上的kubelet守护进程直接管理的Pod

    [+]

    而无需 API 服务器的观察。

    静态 Pod 不支持临时容器

  • StorageClass

    StorageClass 为管理员提供了一种描述不同可用存储类型的方式。

    [+]

    StorageClass 可以映射到服务质量级别、备份策略或由集群管理员确定的任意策略。每个 StorageClass 都包含 provisionerparametersreclaimPolicy 字段,这些字段在需要动态供应属于该类的持久卷时使用。用户可以使用 StorageClass 对象的名称请求特定类。

  • sysctl

    sysctl 是一个半标准化的接口,用于读取或更改正在运行的 Unix 内核的属性。

    [+]

    在类 Unix 系统上,sysctl 既是管理员用于查看和修改这些设置的工具名称,也是该工具使用的系统调用。

    容器运行时和网络插件可能依赖于以特定方式设置的 sysctl 值。

  • 污点

    一个核心对象,由三个必需属性组成:键、值和效果。污点阻止将Pod调度到节点或节点组上。

    [+]

    污点和容忍度协同工作,以确保 Pod 不被调度到不合适的节点上。一个或多个污点应用于节点。节点应仅调度具有与配置污点匹配的容忍度的 Pod。

  • 容忍度

    一个核心对象,由三个必需属性组成:键、值和效果。容忍度允许将 Pod 调度到具有匹配污点的节点或节点组上。

    [+]

    容忍度与污点协同工作,以确保 Pod 不被调度到不合适的节点上。一个或多个容忍度应用于一个Pod。容忍度表示该Pod被允许(但不是必需)调度到具有匹配污点的节点或节点组上。

  • UID

    Kubernetes 系统生成的字符串,用于唯一标识对象。

    [+]

    在 Kubernetes 集群的整个生命周期中,创建的每个对象都具有唯一的 UID。它旨在区分相似实体的历史出现。

  • 上游(消歧义)

    可能指:核心 Kubernetes 或仓库被分叉的源仓库。

    [+]
    • Kubernetes 社区中:对话中通常用上游来指代核心 Kubernetes 代码库,通用生态系统、其他代码或第三方工具都依赖于它。例如,社区成员可能会建议将某个功能移至上游,使其成为核心代码库的一部分,而不是插件或第三方工具。
    • GitHubgit 中:约定是将源仓库称为上游,而被分叉的仓库则被视为下游
  • 用户命名空间

    模拟 root 的内核功能。用于“无 root 容器”。

    [+]

    用户命名空间是 Linux 内核的一个功能,允许非 root 用户模拟超级用户(“root”)权限,例如,在容器外部无需成为超级用户即可运行容器。

    用户命名空间在缓解潜在容器逃逸攻击的损害方面是有效的。

    在用户命名空间的上下文中,命名空间是 Linux 内核的一项功能,而不是 Kubernetes 意义上的命名空间

  • 一个目录,包含数据,可供Pod中的容器访问。

    [+]

    Kubernetes 卷的生命周期与包含它的 Pod 相同。因此,卷的生命周期比 Pod 中运行的任何容器都长,并且卷中的数据在容器重启后仍会保留。

    有关更多信息,请参见存储

  • 卷插件

    卷插件支持在Pod中集成存储。

    [+]

    卷插件允许你连接和挂载存储卷以供Pod使用。卷插件可以是树内树外树内插件是 Kubernetes 代码仓库的一部分,并遵循其发布周期。树外插件是独立开发的。

  • 监控(Watch)

    用于以流的形式跟踪 Kubernetes 中对象变化的动词。它用于高效地检测变化。

    [+]

    用于以流的形式跟踪 Kubernetes 中对象变化的动词。监控允许高效地检测变化;例如,如果一个控制器需要知道 ConfigMap 何时发生变化,可以使用监控而不是轮询。

    有关更多信息,请参见API 概念中高效检测变化

  • WG(工作组)

    促进委员会、SIG 或跨 SIG 工作的短期、狭窄或解耦项目的讨论和/或实施。

    [+]

    工作组是组织人员完成离散任务的一种方式。

    有关更多信息,请参阅 kubernetes/community 仓库和当前的 SIG 和工作组列表

  • 工作负载

    工作负载是在 Kubernetes 上运行的应用程序。

    [+]

    表示不同类型或部分工作负载的各种核心对象包括 DaemonSet、Deployment、Job、ReplicaSet 和 StatefulSet 对象。

    例如,具有 Web 服务器和数据库的工作负载可能会在一个StatefulSet 中运行数据库,并在一个Deployment 中运行 Web 服务器。

上次修改时间:2024 年 4 月 20 日下午 7:09 PST:为 vanilla Docsy 准备术语表页面 (2f3602cef0)