标准化词汇表
此术语表旨在提供 Kubernetes 术语的完整、标准列表。其中包含特定于 Kubernetes 的技术术语以及能够构造有用的语境的一般性术语。
根据标签过滤术语
.
The inner components of Kubernetes.
A resource type that Kubernetes supports by default.
Supported customizations of Kubernetes.
Relevant for a first-time user of Kubernetes.
How Kubernetes components talk to each other (and to programs outside the cluster).
Starting and maintaining Kubernetes.
Keeping Kubernetes applications safe and secure.
How Kubernetes applications handle persistent data.
Software that makes Kubernetes easier or better to use.
Represents a common type of Kubernetes user.
Applications running on Kubernetes.
Architecture
Core Object
Extension
Fundamental
Networking
Operation
Security
Storage
Tool
User Type
Workload
全选
全不选
点击 [+] 下面的指示符号获取特定术语的更为完整的描述。
Kubernetes API 中的一组相关路径。
[+]
通过更改 API server 的配置,可以启用或禁用每个 API Group。你还可以禁用或启用指向特定资源的路径。API group 使扩展 Kubernetes API 更加的容易。API group 在 REST 路径和序列化对象的 “apiVersion” 字段中指定。
一组具有可选资源隔离、审计和限制的 Linux 进程。
[+]
Cgroup 是一个 Linux 内核特性,对一组进程的资源使用(CPU、内存、磁盘 I/O 和网络等)进行限制、审计和隔离。
CIDR (Classless Inter-Domain Routing) 是一种描述 IP 地址的符号,在各种网络配置中被大量使用。
[+]
容器网络接口 (CNI) 插件是遵循 appc/CNI 协议的一类网络插件。
[+]
想了解 Kubernetes 和 CNI 请参考 “网络插件” 。
ConfigMap 是一种 API 对象,用来将非机密性的数据保存到健值对中。使用时可以用作环境变量、命令行参数或者存储卷中的配置文件。
[+]
强调简单性、健壮性和可移植性的一种容器运行时
[+]
该工具可让您通过 Kubernetes CRI 使用 OCI 容器运行环境。
[+]
管理定期运行的 Job 。
[+]
Cronjob 对象类似 crontab 文件中的一行命令,它声明了一个遵循 Cron 格式的调度任务。
CustomResourceDefinition LINK
通过定制化的代码给您的 Kubernetes API 服务器增加资源对象,而无需编译完整的定制 API 服务器。
[+]
当 Kubernetes 公开支持的 API 资源不能满足您的需要时,定制资源对象(Custom Resource Definitions)让您可以在您的环境上扩展 Kubernetes API。
Deployment 是管理应用副本的 API 对象。
[+]
Docker 是一种可以提供操作系统级别虚拟化(也称作容器)的软件技术
[+]
Docker 使用了 Linux 内核中的资源隔离特性(如 cgroup 和内核命名空间)以及支持联合文件系统(如 OverlayFS 和其他),允许多个相互独立的“容器”一起运行在同一 Linux 实例上,从而避免启动和维护虚拟机(VMs)的开销。
etcd 是兼具一致性和高可用性的键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库。
[+]
您的 Kubernetes 集群的 etcd 数据库通常需要有个备份计划。要了解 etcd 更深层次的信息,请参考 etcd 文档 。
Helm Chart 是一组预先配置的 Kubernetes 资源所构成的包,可以使用 Helm 工具对其进行管理。
[+]
Chart 提供了一种可重现的用来创建和共享 Kubernetes 应用的方法。
单个 Chart 可用来部署简单的系统(例如一个 memcached Pod),也可以用来部署复杂的系统(例如包含 HTTP 服务器、数据库、缓存等组件的完整 Web 应用堆栈)。
A HostAliases is a mapping between the IP address and hostname to be injected into a Pod’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.
Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。
[+]
Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管。
Istio 是个开放平台(非 Kubernetes 特有),提供了一种统一的方式来集成微服务、管理流量、实施策略和汇总度量数据。
[+]
添加 Istio 时不需要修改应用代码。它是基础设施的一层,介于服务和网络之间。当它和服务的 Deployment 相结合时,就构成了通常所谓的服务网格(Service Mesh)。Istio 的控制面抽象掉了底层的集群管理平台,这一集群管理平台可以是 Kubernetes、Mesosphere 等。
Job 是需要运行完成的确定性的或批量的任务。
[+]
kops 是一个命令行工具,可以帮助您创建、销毁、升级和维护生产级,高可用性的 Kubernetes 集群。*注意:官方仅支持 AWS,GCE 和 VMware vSphere 的支持还处于 alpha 阶段*。
[+]
kops
为您的集群提供了:
全自动化安装
基于 DNS 的集群标识
自愈功能:所有组件都在自动伸缩组(Auto-Scaling Groups)中运行
有限的操作系统支持 (推荐使用 Debian,支持 Ubuntu 16.04,试验性支持 CentOS & RHEL)
高可用 (HA) 支持
直接提供或者生成 Terraform 清单文件的能力
您也可以将自己的集群作为一个构造块,使用 Kubeadm用来快速安装 Kubernetes 并搭建安全稳定的集群的工具。
构造集群。kops
是建立在 kubeadm 之上的。
主节点上负责提供 Kubernetes API 服务的组件;它是 Kubernetes 控制面的前端。
[+]
kube-apiserver 在设计上考虑了水平扩缩的需要。
换言之,通过部署多个实例可以实现扩缩。
参见构造高可用集群 。
主节点上的组件,该组件监视那些新创建的未指定运行节点的 Pod,并选择节点让 Pod 在上面运行。
[+]
调度决策考虑的因素包括单个 Pod 和 Pod 集合的资源需求、硬件/软件/策略约束、亲和性和反亲和性规范、数据位置、工作负载间的干扰和最后时限。
用来快速安装 Kubernetes 并搭建安全稳定的集群的工具。
[+]
您可以使用 kubeadm 安装控制面和工作节点组件。
一个在集群中每个节点上运行的代理。它保证容器都运行在 Pod 中。
[+]
kubelet 接收一组通过各类机制提供给它的 PodSpecs,确保这些 PodSpecs 中描述的容器处于运行状态且健康。kubelet 不会管理不是由 Kubernetes 创建的容器。
Kubernetes API 是通过 RESTful 接口提供 Kubernetes 功能服务并负责集群状态存储的应用程序。
[+]
Kubernetes 资源和”意向记录”都是作为 API 对象储存的,并可以通过对 API 的 RESTful 调用进行修改。
API 允许以声明方式管理配置。
用户可以直接和 Kubernetes API 交互,也可以通过 kubectl
这样的工具进行交互。
核心的 Kubernetes API 是很灵活的,可以扩展以支持定制资源。
Minikube 是用来在本地运行 Kubernetes 的一种工具。
[+]
Minikube 在用户计算机上的一个虚拟机内运行单节点 Kubernetes 集群。
Pod Disruption Budget LINK
亦称作:
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)。
–>
title: Pod 生命周期
id: pod-lifecycle
date: 2019-02-17
full-link: /docs/concepts/workloads/pods/pod-lifecycle/
related:
- pod
- container
tags:
- fundamental
short_description: >
关于 Pod 在其生命周期中处于哪个阶段的更高层次概述。
关于 Pod 在其生命周期中处于哪个阶段的更高层次概述。
[+]
Pod 生命周期 是关于 Pod 在其生命周期中处于哪个阶段的更高层次概述。Pod 的status
字段是 PodStatus 对象, 该对象的 phase
字段包含了下面的状态: Running、Pending、Succeeded、Failed、Unknown、Completed 或 CrashLoopBackOff。
Pod 优先级表示一个 Pod 相对于其他 Pod 的重要性。
[+]
Pod 优先级 允许为一个 Pod 设置高于或低于其他 Pod 的优先级 – 这对于生产集群工作负载而言是一个重要的特性。
为 Pod 的创建和更新操作启用细粒度的授权。
[+]
Pod 安全策略是集群级别的资源,它控制着 Pod 规约中的安全性敏感的内容。
PodSecurityPolicy
对象定义了一组条件以及相关字段的默认值,Pod 运行时必须满足这些条件。Pod 安全策略控制实现上体现为一个可选的准入控制器。
Pod 水平自动扩缩器(Horizontal Pod Autoscaler)是一种 API 资源,它根据目标 CPU 利用率或自定义度量目标扩缩 Pod 副本的数量。
[+]
PodPreset 是一种 API 对象,在创建 Pod 时将诸如 Secret、卷挂载和环境变量之类的信息注入到该 Pod 中。
[+]
此 API 对象使用标准选择器选择 Pod 并向其中注入信息。这允许 podspec 定义是非特定的,从而将 podspec 与环境特定的配置解耦。
QoS Class(Quality of Service Class)为 Kubernetes 提供了一种将集群中的 Pod 分为几个类型并做出有关调度和驱逐决策的方法。
[+]
Pod 的 QoS 类是基于 Pod 在创建时配置的计算资源请求和限制。QoS 类用于制定有关 Pod 调度和逐出的决策。
Kubernetes 可以为 Pod 分配以下 QoS 类:Guaranteed
,Burstable
或者 BestEffort
。
ReplicaSet 是下一代副本控制器。
[+]
ReplicaSet 就像 ReplicationController 那样,确保一次运行指定数量的 Pod 副本。ReplicaSet 支持新的基于集合的选择器需求(在标签的用户指南中有相关描述),而副本控制器只支持基于等值的选择器需求。
Replication Controller LINK
Replication Controller 是 Kubernetes 的一种服务,用来确保给定个数的 Pod 一直处于运行状态。
[+]
Replication Controller 会基于设定值自动增删 Pod 的实例。如果 Pod 被误删除或者启动实例过多,Replication Controller 允许 Pod 的实例个数恢复到设定值。
A security-minded, standards-based container engine.
[+]
Secret 用于存储敏感信息,如密码、OAuth 令牌和 SSH 密钥。
[+]
StatefulSet 用来管理 Deployment 和扩展一组 Pod,并且能为这些 Pod 提供*序号和唯一性保证*。
[+]
和 DeploymentDeployment 是管理应用副本的 API 对象。
相同的是,StatefulSet 管理了基于相同容器定义的一组 Pod。但和 Deployment 不同的是,StatefulSet 为它们的每个 Pod 维护了一个固定的 ID。这些 Pod 是基于相同的声明来创建的,但是不能相互替换:无论怎么调度,每个 Pod 都有一个永久不变的 ID。
StatefulSet 和其他控制器使用相同的工作模式。你在 StatefulSet 对象 中定义你期望的状态,然后 StatefulSet 的 控制器 就会通过各种更新来达到那种你想要的状态。
title: 存储类别
id: storageclass
date: 2018-04-12
full_link: /docs/concepts/storage/storage-classes
short_description: >
StorageClass 是管理员用来描述不同的可用存储类型的一种方法。
aka:
tags:
- core-object
- storage
StorageClass 是管理员用来描述不同的可用存储类型的一种方法。
[+]
sysctl
是一个半标准化的接口,用于读取或更改正在运行的 Unix 内核的属性。
[+]
Kubernetes 系统生成的字符串,唯一标识对象。
[+]
在 Kubernetes 集群的整个生命周期中创建的每个对象都有一个不同的 uid,它旨在区分类似实体的历史事件。
云控制器管理器是 1.8 的 alpha 特性。在未来发布的版本中,这是将 Kubernetes 与任何其他云集成的最佳方式。
[+]
Kubernetes v1.6 包含一个新的可执行文件叫做 cloud-controller-manager。cloud-controller-manager 是一个守护进程,其中嵌入了特定于某云环境的控制环。
这些特定于云环境的控制环最初位于 kube-controller-manager 中。
由于云供应商的开发和发布节奏与 Kubernetes 项目不同步,将特定于供应商的代码抽象到 cloud-controller-manager 可执行文件可以允许云供应商独立于核心 Kubernetes 代码进行演进。
在计算机领域,代理指的是充当远程服务中介的服务器。
[+]
在对象持久化之前拦截 Kubernetes Api 服务器请求的一段代码
[+]
准入控制器可针对 Kubernetes Api 服务器进行配置,可以执行验证,变更或两者都执行。任何准入控制器都可以拒绝访问请求。
变更(mutating)控制器可以修改其允许的对象,验证(validating)控制器则不可以。
应用容器运行前必须先运行完成的一个或多个初始化容器。
[+]
初始化(init)容器像常规应用容器一样,只有一点不同:初始化(init)容器必须在应用容器启动前运行完成。Init 容器的运行顺序:一个初始化(init)容器必须在下一个初始化(init)容器开始前运行完成。
客户端提供的字符串,引用资源 url 中的对象,如/api/v1/pods/some name
。
[+]
一次只能有一个给定类型的对象具有给定的名称。但是,如果删除对象,则可以创建同名的新对象。
命名空间是 Kubernetes 为了在同一物理集群上支持多个虚拟集群而使用的一种抽象。
[+]
命名空间用来组织集群中对象,并为集群资源划分提供了一种方法。同一命名空间内的资源名称必须唯一,但跨命名空间时不作要求。
容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。
[+]
容器使应用和底层的主机基础设施解耦,降低了应用在不同云环境或者操作系统上的部署难度,便于应用扩展。
容器存储接口 (CSI)定义了存储系统暴露给容器的标准接口。
[+]
容器环境变量提供了运行容器化应用所必须的一些重要信息。
[+]
容器运行时接口 (CRI) 是一组与节点上 kubelet 集成的容器运行时 API
[+]
容器运行环境(Container Runtime) LINK
容器运行环境是负责运行容器的软件。
[+]
工作负载是在 Kubernetes 上运行的应用程序。
[+]
定制 Kubernetes 平台以满足自己的项目需求的人。
[+]
The layer where various containerized applications run. aka: tags: - fundamental --- -- 各种容器化应用运行所在的层。 [+]
编写可以在 Kubernetes 集群上运行的应用的人。
[+]
应用开发者专注于应用的某一部分。他们工作范围的大小有明显的差异。
应用架构师是负责应用高级设计的人。
[+]
应用架构师确保应用的实现允许它和周边组件进行可扩展的、可持续的交互。周边组件包括数据库、日志基础设施和其他微服务。
扩展组件是扩展并与 Kubernetes 深度集成以支持新型硬件的软件组件。
[+]
大多数集群管理员会使用托管的 Kubernetes 或其某种发行包。因此,大多数 Kubernetes 用户将需要安装 扩展组件 ,较少用户会需要编写新的扩展组件。
Kubernetes 中的抢占逻辑通过驱逐节点上的低优先级 Pod 来帮助挂起的 Pod 找到合适的节点。
[+]
如果一个 Pod 无法调度,调度器会尝试抢占 较低优先级的 Pod,以使得挂起的 Pod 可能被调度。
持久卷是代表集群中一块存储空间的 API 对象。 它是通用的、可插拔的、并且不受单个 Pod 生命周期约束的持久化资源。
[+]
持久卷(PersistentVolumes,PV)提供了一个 API,该 API 对存储的供应方式细节进行抽象,令其与使用方式相分离。
在提前创建存储(静态供应)的场景中,PV 可以直接使用。
在按需提供存储(动态供应)的场景中,需要使用 PersistentVolumeClaims (PVCs)。
申领持久卷中定义的存储资源,以便可以将其挂载为容器中的卷。
[+]
指定存储的数量,如何访问存储(只读、读写或独占)以及如何回收存储(保留、回收或删除)。存储本身的详细信息在 PersistentVolume 规范中。
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)。
服务目录(Service Catalog)是一种扩展 API,它能让 Kubernetes 集群中运行的应用易于使用外部托管的的软件服务,例如云供应商提供的数据仓库服务。
[+]
用来为对象设置可标识的属性标记;这些标记对用户而言是有意义且重要的。
[+]
一个核心对象,由三个必需的属性组成:键,值和效果。污点会阻止在节点或节点组上调度 Pod。
[+]
注解是以键值对的形式给资源对象附加随机的无法标识的元数据。
[+]
注解中的元数据可大可小,可以是结构化的也可以是非结构化的,并且能包含标签不允许使用的字符。像工具和软件库这样的客户端可以检索这些元数据。
JSON 或 YAML 格式的 Kubernetes API 对象的规范。
[+]
清单指定了应用清单时 Kubernetes 将维护的对象的所需状态,每个配置文件可以包含多个清单。
一种将网络端点与 Kubernetes 资源组合在一起的方法。
[+]
网络策略是一种规范,规定了允许 Pod 组之间、Pod 与其他网络端点之间以怎样的方式进行通信。
[+]
网络策略帮助您声明式地配置允许哪些 Pod 之间接、哪些命名空间之间允许进行通信,并具体配置了哪些端口号来执行各个策略。NetworkPolicy
资源使用标签来选择 Pod,并定义了所选 Pod 可以接受什么样的流量。网络策略由网络提供商提供的并被 Kubernetes 支持的网络插件实现。请注意,当没有控制器实现网络资源时,创建网络资源将不会生效。
聚合层允许您在自己的集群上安装额外的 Kubernetes 风格的 API。
[+]
Kubernetes 中的工作机器称作节点。
[+]
证书是个安全加密文件,用来确认对 Kubernetes 集群访问的合法性。
[+]
证书可以让 Kubernetes 集群中运行的应用程序安全的访问 Kubernetes API。证书可以确认客户端是否被允许访问 API。
选择算符允许用户通过标签对一组资源对象进行筛选过滤。
[+]
镜像是保存的容器实例,它打包了应用运行所需的一组软件。
[+]
镜像是软件打包的一种方式,可以将镜像存储在容器镜像仓库、拉取到本地系统并作为应用来运行。
镜像中包含的元数据指明了运行什么可执行程序、是由谁构建的以及其他信息。
集群由一组被称作节点的机器组成。这些节点上运行 Kubernetes 所管理的容器化应用。集群具有至少一个工作节点和至少一个主节点。
[+]
工作节点托管作为应用程序组件的 Pod 。主节点管理集群中的工作节点和 Pod 。多个主节点用于为集群提供故障转移和高可用性。
The infrastructure layer provides and maintains VMs, networking, security groups and others. aka: tags: - operations --- -- 基础设施层提供并维护虚拟机、网络、安全组及其他资源。 [+]
基础设施层提供并维护虚拟机、网络、安全组及其他资源。
Activities such as upgrading the clusters, implementing security, storage, ingress, networking, logging and monitoring, and other operations involved in managing a Kubernetes cluster. aka: tags: - operations --- -- 诸如升级集群、实现安全、存储、Ingress、网络、日志和监控之类的活动,以及管理 Kubernetes 集群所涉及的其他操作。 [+]
诸如升级集群、实现安全、存储、Ingress、网络、日志和监控之类的活动,以及管理 Kubernetes 集群所涉及的其他操作。
集群架构师负责设计集群的基础设施,可能包含一个或多个 Kubernetes 集群。
[+]
集群架构师要具备分布式系统的最佳实践经验,例如:高可用性和安全性。
设备插件是在 Kubernetes 中运行的容器,可用于访问供应商特定资源。
[+]
反馈
此页是否对您有帮助?
是
否
感谢反馈。如果您有一个关于如何使用 Kubernetes 的特定的、需要答案的问题,可以访问
Stack Overflow .
在 GitHub 仓库上登记新的问题
报告问题
或者
提出改进建议 .