词汇表

本词汇表旨在成为 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 服务器
    也称为:kube-apiserver

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

    [+]

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

  • API 发起的驱逐

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

    [+]

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

    API 发起的驱逐遵循你配置的 PodDisruptionBudgetsterminationGracePeriodSeconds

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

  • 应用容器

    应用容器(或 app 容器)是容器,它们存在于Pod中,并在任何初始化容器完成后启动。

    [+]

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

  • 应用架构师

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

    [+]

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

  • 应用开发者

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

    [+]

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

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

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

  • 批准者

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

    [+]

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

  • cAdvisor

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

    [+]

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

  • 证书

    用于验证对 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)

  • 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) 定义了 节点组件 kubelet容器运行时之间通信的主要 gRPC 协议。

  • 容器存储接口 (CSI)

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

    [+]

    CSI 允许供应商为 Kubernetes 创建自定义存储插件,而无需将其添加到 Kubernetes 代码库(树外插件)。要使用来自存储提供商的 CSI 驱动程序,您必须首先将其部署到您的集群。然后,您将能够创建一个使用该 CSI 驱动程序的 存储类

  • containerd

    一种强调简单性、稳健性和可移植性的容器运行时

    [+]

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

  • 贡献者

    向 Kubernetes 项目或社区捐赠代码、文档或时间以提供帮助的人。

    [+]

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

  • 控制平面

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

    [+]

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

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

  • 控制器

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

    [+]

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

    一些控制器还在控制平面内部运行,提供 Kubernetes 操作的核心控制循环。例如:部署控制器、守护进程集控制器、命名空间控制器和持久卷控制器(以及其他控制器)都在 kube-controller-manager 中运行。

  • CRI-O

    一个允许您将 OCI 容器运行时与 Kubernetes CRI 一起使用的工具。

    [+]

    CRI-O 是容器运行时接口 (CRI) 的一种实现,用于启用与开放容器倡议 (OCI) 运行时规范兼容的容器运行时。

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

  • CronJob

    管理在定期计划上运行的作业

    [+]

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

  • CustomResourceDefinition

    自定义代码,用于定义要添加到 Kubernetes API 服务器的资源,而无需构建完整的自定义服务器。

    [+]

    如果公共支持的 API 资源不能满足您的需求,自定义资源定义允许您为您的环境扩展 Kubernetes API。

  • DaemonSet

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

    [+]

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

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

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

  • Deployment(部署)

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

    [+]

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

  • 开发人员(消除歧义)

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

    [+]

    这个术语的含义可能因上下文而异

  • 设备插件

    设备插件在 worker 节点上运行,并为 Pod提供对资源的访问,例如需要特定于供应商的初始化或设置步骤的本地硬件。

    [+]

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

    有关详细信息,请参阅设备插件

  • 中断

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

    [+]

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

    有关详细信息,请参阅中断

  • Docker

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

    [+]

    Docker 使用 Linux 内核的资源隔离功能(如 cgroup 和内核命名空间)以及联合文件系统(如 OverlayFS 等),允许独立的容器在单个 Linux 实例中运行,从而避免了启动和维护虚拟机 (VM) 的开销。

  • Dockershim

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

    [+]

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

  • 下游(消除歧义)

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

    [+]
    • Kubernetes 社区中:对话中经常使用 下游 来表示依赖于核心 Kubernetes 代码库的生态系统、代码或第三方工具。例如,Kubernetes 中的一项新功能可能会被下游的应用程序采用,以提高其功能。
    • GitHubgit 中:惯例是将派生仓库称为下游,而源仓库则被视为上游
  • Downward API

    Kubernetes 用于将 Pod 和容器字段值公开给容器中运行的代码的机制。

    [+]

    有时,容器拥有关于自身的信息很有用,而无需更改直接将其耦合到 Kubernetes 的容器代码。

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

    有两种方法可以将 Pod 和容器字段公开给正在运行的容器

    这两种公开 Pod 和容器字段的方式统称为 Downward API

  • 持续时间

    表示一段时间的字符串值。

    [+]

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

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

    例如:5s 表示 5 秒的持续时间,1m30s 表示 1 分 30 秒的持续时间。

  • 动态卷配置

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

    [+]

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

  • 端点

    端点跟踪具有匹配选择器的 Pod 的 IP 地址。

    [+]

    可以手动配置端点,用于没有指定选择器的服务EndpointSlice 资源为端点提供了一种可扩展的替代方案。

  • EndpointSlice

    一种将网络端点与 Kubernetes 资源分组在一起的方法。

    [+]

    一种可扩展的方式将网络端点分组在一起。这些可以被kube-proxy用于在每个节点上建立网络路由。

  • 临时容器

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

    [+]

    如果您想调查正在运行的且存在问题的 Pod,可以将临时容器添加到该 Pod 并执行诊断。临时容器没有资源或调度保证,您不应使用它们来运行工作负载本身的任何部分。

    静态 pod 不支持临时容器。

  • etcd

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

    [+]

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

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

  • 事件(Event)

    事件是 Kubernetes 对象,描述系统中状态的变化/值得注意的事件。

    [+]

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

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

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

  • 驱逐(Eviction)

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

    [+]
  • 扩展(Extensions)

    扩展是扩展并深入集成 Kubernetes 以支持新型硬件的软件组件。

    [+]

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

  • 特性门控(Feature gate)

    特性门控是一组键(不透明的字符串值),你可以使用它们来控制在你的集群中启用哪些 Kubernetes 特性。

    [+]

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

  • 终结器(Finalizer)

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

    [+]

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

    你可以使用终结器来控制资源的垃圾回收。例如,你可以定义一个终结器,在控制器删除目标资源之前清理相关资源或基础设施。

  • FlexVolume

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

    [+]

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

  • 垃圾回收(Garbage Collection)

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

    [+]

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

  • 网关 API(Gateway API)

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

    [+]

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

  • 组版本资源(Group Version Resource)
    也称为:GVR

    表示唯一 Kubernetes API 资源的方式。

    [+]

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

  • Helm Chart

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

    [+]

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

  • 水平 Pod 自动伸缩器(Horizontal Pod Autoscaler)
    也称为:HPA

    一种 API 资源,可根据目标 CPU 利用率或自定义指标目标自动扩展 Pod 副本的数量。

    [+]

    HPA 通常与ReplicationControllersDeploymentsReplicaSets 一起使用。它不能应用于无法伸缩的对象,例如DaemonSets

  • HostAliases

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

    [+]

    HostAliases 是一个可选的主机名和 IP 地址列表,如果指定,将注入到 Pod 的 hosts 文件中。这仅对非 hostNetwork Pod 有效。

  • 镜像(Image)

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

    [+]

    一种打包软件的方式,使其可以存储在容器注册表中,提取到本地系统并作为应用程序运行。元数据包含在镜像中,可以指示要运行的可执行文件、谁构建了它以及其他信息。

  • 不可变基础设施(Immutable Infrastructure)

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

    [+]

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

    通过阻止或识别未经授权的更改,不可变基础设施使识别和缓解安全风险变得更加容易。管理这样的系统变得更加直接,因为管理员可以对其做出假设。毕竟,他们知道没有人犯错或进行了他们忘记沟通的更改。不可变基础设施与基础设施即代码紧密结合,后者将创建基础设施所需的所有自动化都存储在版本控制系统(例如 Git)中。这种不可变性和版本控制的结合意味着,系统每一次授权变更都有持久的审计日志。

  • 入口 (Ingress)

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

    [+]

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

  • 初始化容器 (Init Container)

    在任何应用容器运行之前,必须运行完成的一个或多个初始化容器

    [+]

    初始化(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 来识别集群
    • 自我修复:一切都在自动缩放组中运行
    • 支持多种操作系统(Amazon Linux、Debian、Flatcar、RHEL、Rocky 和 Ubuntu)
    • 高可用性支持
    • 可以直接配置,也可以生成 terraform 清单
  • kube-controller-manager

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

    [+]

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

  • kube-proxy

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

    [+]

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

    如果存在操作系统数据包过滤层,并且该层可用,则 kube-proxy 会使用该层。否则,kube-proxy 会自行转发流量。

  • kube-scheduler

    控制平面组件,用于监视新创建的且未分配节点Pod,并选择一个节点让它们在其上运行。

    [+]

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

  • Kubeadm

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

    [+]

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

  • Kubectl
    也称为:kubectl

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

    [+]

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

  • Kubelet

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

    [+]

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

  • Kubernetes API

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

    [+]

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

  • 标签 (Label)

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

    [+]

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

  • LimitRange

    提供约束来限制命名空间中每个容器Pod的资源消耗。

    [+]

    LimitRange 限制可以按类型创建的对象的数量,以及命名空间中单个容器Pod可以请求/消耗的计算资源量。

  • 日志记录 (Logging)

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

    [+]

    应用程序和系统日志可以帮助您了解集群内部发生了什么。日志对于调试问题和监控集群活动尤其有用。

  • 托管服务

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

    [+]

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

  • 清单

    JSONYAML 格式表示的 Kubernetes API 对象的规范。

    [+]

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

  • 主节点

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

    [+]

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

  • 成员

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

    [+]

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

  • Minikube

    一种在本地运行 Kubernetes 的工具。

    [+]

    Minikube 在您计算机上的虚拟机内部运行一个单节点集群。您可以使用 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 使用的抽象概念,用于支持在单个集群内隔离资源组。

    [+]

    命名空间用于组织集群中的对象,并提供一种划分集群资源的方法。资源名称需要在命名空间内是唯一的,但在命名空间之间不是唯一的。基于命名空间的作用域仅适用于命名空间对象(例如,部署、服务等),而不适用于集群范围的对象(例如,StorageClass、节点、PersistentVolume 等)

  • 网络策略

    关于如何允许 Pod 组彼此通信以及与其他网络端点通信的规范。

    [+]

    网络策略可帮助您声明式配置允许哪些 Pod 相互连接、允许哪些命名空间通信,以及更具体地在每个策略上强制执行哪些端口号。 NetworkPolicy 资源使用标签选择 Pod 并定义指定允许哪些流量进入所选 Pod 的规则。网络策略由网络提供商提供的受支持的网络插件实现。请注意,创建一个没有控制器来实现它的网络资源将不会产生任何影响。

  • 节点

    节点是 Kubernetes 中的工作机器。

    [+]

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

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

  • 节点压力驱逐
    也称为:kubelet 驱逐

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

    [+]

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

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

  • 对象

    Kubernetes 系统中的实体。 Kubernetes API 使用这些实体来表示集群的状态。

    [+]

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

  • Operator 模式

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

    [+]

    您可以通过向集群添加控制器来扩展 Kubernetes,而不是作为 Kubernetes 本身一部分的内置控制器。

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

  • 持久卷

    一个 API 对象,表示集群中的一块存储空间。它是一个通用的、可插拔的资源,在任何单独的 Pod 的生命周期之外持续存在。

    [+]

    PersistentVolumes (PVs) 提供了一个 API,抽象了存储的提供方式与使用方式的细节。PVs 直接用于可以提前创建存储的场景(静态配置)。对于需要按需存储的场景(动态配置),则使用 PersistentVolumeClaims (PVCs) 来代替。

  • 持久卷声明

    声明 PersistentVolume 中定义的存储资源,以便可以将其作为卷挂载到容器中。

    [+]

    指定存储量、如何访问存储(只读、读写和/或独占)以及如何回收存储(保留、回收或删除)。存储本身的详细信息在 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(未知)。PodStatus phase 字段中总结了 Pod 状态的高级描述。

  • Pod 优先级

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

    [+]

    Pod 优先级使您能够设置 Pod 的调度优先级高于或低于其他 Pod,这是生产集群工作负载的一项重要功能。

  • Pod 安全策略

    启用对 Pod 创建和更新的细粒度授权。

    [+]

    一个集群级别的资源,控制 Pod 规范中对安全性敏感的方面。PodSecurityPolicy 对象定义了一组 Pod 必须满足的条件才能被系统接受,以及相关字段的默认值。Pod 安全策略控制作为可选的准入控制器实现。

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

  • PodTemplate
    也称为:Pod 模板

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

    [+]

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

  • 抢占

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

    [+]

    如果无法调度 Pod,则调度程序会尝试抢占较低优先级的 Pod,以使待定 Pod 的调度成为可能。

  • PriorityClass

    PriorityClass 是应该分配给该类中 Pod 的调度优先级的命名类。

    [+]

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

  • 探测

    kubelet 定期对在 Pod 中运行的容器执行的检查,它将定义容器的状态和运行状况,并通知容器的生命周期。

    [+]

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

  • 代理

    在计算中,代理是充当远程服务中介的服务器。

    [+]

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

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

    您可以将 kube-proxy 作为普通的用户态代理服务运行。如果您的操作系统支持,您可以改为以混合模式运行 kube-proxy,从而使用更少的系统资源实现相同的整体效果。

  • QoS 类

    QoS 类(服务质量类)为 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(千比)、Mi(兆比)、Gi(吉比)、Ti(太比)、Pi(拍比)、Ei(艾比)。

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

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

    [+]

    RBAC 利用角色(其中包含权限规则)和角色绑定(将角色中定义的权限授予一组用户)。

  • 副本(Replica)

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

    [+]

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

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

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

  • 副本集(ReplicaSet)

    ReplicaSet(旨在)在任何给定时间维护一组正在运行的副本 Pod。

    [+]

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

  • 复制控制器(ReplicationController)

    一种工作负载资源,用于管理复制的应用程序,确保运行特定数量的 Pod 实例。

    [+]

    控制平面确保定义的 Pod 数量正在运行,即使某些 Pod 失败、您手动删除 Pod 或因错误启动过多 Pod 也是如此。

  • 资源配额(Resource Quotas)

    提供约束,限制每个 命名空间(Namespace)的聚合资源消耗。

    [+]

    限制可以在命名空间中创建的按类型划分的对象数量,以及该项目中资源可能消耗的计算资源总量。

  • 审查者(Reviewer)

    在项目的一部分上审查代码质量和正确性的人员。

    [+]

    审查者精通代码库和软件工程原理。 审查者状态限定于代码库的一部分。

  • Secret

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

    [+]

    Secret 使您可以更好地控制敏感信息的使用方式,并降低意外暴露的风险。Secret 值编码为 base64 字符串,默认情况下以未加密方式存储,但可以配置为静态加密

    Pod 可以通过多种方式引用 Secret,例如在卷挂载中或作为环境变量。Secret 专为机密数据而设计,ConfigMap 专为非机密数据而设计。

  • 安全上下文(Security Context)

    securityContext 字段定义 Pod容器(container)的特权和访问控制设置。

    [+]

    securityContext 中,您可以定义:进程以哪个用户身份运行、进程以哪个组身份运行以及特权设置。 您还可以配置安全策略(例如:SELinux、AppArmor 或 seccomp)。

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

  • 选择器(Selector)

    允许用户根据标签(labels)筛选资源列表。

    [+]

    在查询资源列表以按标签筛选时,将应用选择器。

  • 服务(Service)

    一种公开网络应用程序的方法,该应用程序在集群中以一个或多个 Pod 的形式运行。

    [+]

    Service 定位的一组 Pod(通常)由选择器(selector)确定。 如果添加或删除更多 Pod,则匹配选择器的 Pod 集将更改。 Service 确保网络流量可以定向到当前工作负载的 Pod 集。

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

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

  • Service Catalog

    以前的扩展 API,它使在 Kubernetes 集群中运行的应用程序能够轻松使用外部托管软件产品,例如云提供商提供的数据库服务。

    [+]

    它提供了一种列出、配置和绑定外部 托管服务(Managed Services)的方法,而无需详细了解如何创建或管理这些服务。

  • 服务帐户(ServiceAccount)

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

    [+]

    当 Pod 内的进程访问集群时,它们会被 API 服务器验证为特定的服务帐户,例如 default。 当您创建 Pod 时,如果您未指定服务帐户,它会自动在同一命名空间(Namespace)中分配默认服务帐户。

  • 混洗分片(Shuffle-sharding)

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

    [+]

    我们通常关注将不同的请求流彼此隔离,以便高强度流不会挤占低强度流。 将请求放入队列的简单方法是对请求的某些特征进行哈希处理,取模队列数量,以获得要使用的队列的索引。 哈希函数使用与流对齐的请求特征作为输入。 例如,在 Internet 中,这通常是源地址和目标地址、协议以及源端口和目标端口的 5 元组。

    这种简单的基于哈希的方案具有以下属性:任何高强度流都会挤占所有哈希到同一队列的低强度流。 为大量流提供良好的隔离需要大量的队列,这会带来问题。 混洗分片是一种更灵活的技术,可以更好地将低强度流与高强度流隔离开来。 混洗分片的术语使用从一副牌中发牌的比喻;每个队列都是一张比喻意义上的牌。 混洗分片技术首先对请求的流标识特征进行哈希处理,以生成具有数十个或更多位的哈希值。 然后,哈希值用作熵源,以混洗牌并发出一些牌(队列)。 检查所有发出的队列,并将请求放入检查过的队列中长度最短的队列中。 对于适中的发牌大小,检查所有发出的牌的成本不高,并且给定的低强度流很有可能避开给定的高强度流的影响。 对于较大的发牌大小,检查发出的队列成本很高,并且低强度流更难躲避一组高强度流的集体影响。 因此,应明智地选择发牌大小。

  • 边车容器(Sidecar Container)

    一个或多个 容器(containers),通常在任何应用程序容器运行之前启动。

    [+]

    边车容器类似于常规应用程序容器,但具有不同的用途:边车向主应用程序容器提供 Pod 本地服务。 与 init 容器不同,边车容器在 Pod 启动后继续运行。

    有关更多信息,请阅读边车容器

  • SIG(特殊兴趣小组)

    共同管理大型 Kubernetes 开源项目的正在进行的部分或方面的社区成员

    [+]

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

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

  • Spec(规约)

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

    [+]

    几乎每个 Kubernetes 对象都包含两个嵌套的对象字段,用于管理对象的配置:对象规约(spec)和对象状态(status)。 对于具有规约的对象,您必须在创建对象时设置它,提供您希望资源具有的特征的描述:其所需状态。

    对于不同的对象(如 Pod、StatefulSet 和 Service),它会有所不同,详细说明了诸如容器、卷、副本、端口等设置,
    以及每个对象类型特有的其他规范。 此字段封装了 Kubernetes 应为定义的
    对象维护的状态。

  • StatefulSet(有状态集)

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

    [+]

    Deployment 类似,StatefulSet 管理基于相同容器规约的 Pod。 与 Deployment 不同,StatefulSet 为其每个 Pod 维护一个粘性身份。 这些 Pod 从相同的规约创建,但不可互换:每个 Pod 都有一个持久标识符,该标识符在任何重新调度中都会保留。

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

  • Static Pod(静态 Pod)

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

    [+]

    API 服务器不会观察它。

    静态 Pod 不支持临时容器

  • Storage Class(存储类)

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

    [+]

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

  • sysctl

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

    [+]

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

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

  • Taint(污点)

    一个核心对象,由三个必需的属性组成:键(key)、值(value)和效果(effect)。 污点会阻止在Pod节点或节点组上的调度。

    [+]

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

  • Toleration(容忍度)

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

    [+]

    容忍度和污点协同工作,以确保 Pod 不会被调度到不合适的节点上。 一个或多个容忍度被应用到一个pod。 容忍度表示允许(但不要求)pod被调度到具有匹配污点的节点或节点组上。

  • UID(唯一标识符)

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

    [+]

    在 Kubernetes 集群的整个生命周期中创建的每个对象都有一个不同的 UID。 其目的是区分相似实体的历史发生情况。

  • Upstream (disambiguation)(上游(消除歧义))

    可能指:核心 Kubernetes 或从中派生仓库的源仓库。

    [+]
    • Kubernetes 社区中:对话中经常使用“上游”来表示核心 Kubernetes 代码库,通用生态系统、其他代码或第三方工具都依赖于该代码库。 例如,社区成员可能会建议将某个功能移至上游,以便将其放入核心代码库中,而不是放入插件或第三方工具中。
    • GitHubgit 中:惯例是将源仓库称为“上游”,而派生的仓库被视为“下游”。
  • user namespace(用户命名空间)

    一个内核功能,用于模拟 root。 用于“无根容器”。

    [+]

    用户命名空间是一个 Linux 内核功能,它允许非 root 用户模拟超级用户(“root”)权限,例如,为了在容器外部不是超级用户的情况下运行容器。

    用户命名空间可有效减轻潜在容器突破攻击的损害。

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

  • Volume(卷)

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

    [+]

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

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

  • Volume Plugin(卷插件)

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

    [+]

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

  • Watch(监视)

    一个动词,用于以流的方式跟踪 Kubernetes 中对象的更改。 它用于高效地检测更改。

    [+]

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

    有关更多信息,请参阅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)