This glossary is intended to be a comprehensive, standardized list of Kubernetes terminology. It includes technical terms that are specific to K8s, as well as more general terms that provide useful context.
Filter terms according to their tags
Click on the [+] indicators below to get a longer explanation for any particular term.
Application containers (or app containers) are the containersA lightweight and portable executable image that contains software and all of its dependencies. in a podThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. that are started after any init containersOne or more initialization containers that must run to completion before any app containers run. have completed.
[+]An init container lets you separate initialization details that are important for the overall workloadWorkloads are objects you use to manage and run your containers on the cluster. , and that don’t need to keep running once the application container has started. If a pod doesn’t have any init containers configured, all the containers in that pod are app containers.
The layer where various containerized applications run.
贡献者通过贡献代码、文档或者投入时间等方式来帮助 Kubernetes 项目或社区的人。 对他们在开源项目中所贡献的代码的授权许可条款。
[+]CLA 对解决贡献者在开源社区所贡献的资料和智力资产(IP)导致的法律纠纷很有帮助。
ConfigMap 是一种 API 对象,用来将非机密性的数据保存到健值对中。使用时可以用作环境变量、命令行参数或者存储卷中的配置文件。
[+]ConfigMap 将您的环境配置信息和 容器镜像容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 解耦,便于应用配置的修改。当您需要储存机密信息时可以使用 Secret 对象。
The container runtime is the software that is responsible for running containers.
[+]Kubernetes supports several container runtimes: Docker, containerd, cri-o, rktlet and any implementation of the Kubernetes CRI (Container Runtime Interface).
A container runtime with an emphasis on simplicity, robustness and portability
[+]containerd is a containerA lightweight and portable executable image that contains software and all of its dependencies. runtime that runs as a daemon on Linux or Windows. containerd takes care of fetching and storing container images, executing containers, providing network access, and more.
The container orchestration layer that exposes the API and interfaces to define, deploy, and manage the lifecycle of containers.
A tool that lets you use OCI container runtimes witk Kubernetes CRI.
[+]CRI-O is an implementation of the Container runtime interface (CRI)An API for container runtimes to integrate with kubelet to enable using containerA lightweight and portable executable image that contains software and all of its dependencies. runtimes that are compatible with the Open Container Initiative (OCI) runtime spec.
Deploying CRI-O allows Kubernetes to use any OCI-compliant runtime as the container runtime for running PodsThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. , and to fetch OCI container images from remote registries.
通过定制化的代码给您的 Kubernetes API 服务器增加资源对象,而无需编译完整的定制 API 服务器。
[+]当 Kubernetes 公开支持的 API 资源不能满足您的需要时,定制资源对象(Custom Resource Definitions)让您可以在您的环境上扩展 Kubernetes API。
确保 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 的副本在 集群集群由一组被称作节点的机器组成。这些节点上运行 Kubernetes 所管理的容器化应用。 中的一组节点上运行。
[+]用来部署系统守护进程,例如日志搜集和监控代理,这些进程通常必须运行在每个 节点Kubernetes 中的工作机器称作节点。 上。
The layer that provides capacity such as CPU, memory, network, and storage so that the containers can run and connect to a network.
Deployment 是管理应用副本的 API 对象。
[+]应用的每个副本就是一个 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 ,并且这些 Pod 会分散运行在集群的节点上。
Docker 是一种可以提供操作系统级别虚拟化(也称作容器)的软件技术
[+]Docker 使用了 Linux 内核中的资源隔离特性(如 cgroup 和内核命名空间)以及支持联合文件系统(如 OverlayFS 和其他),允许多个相互独立的“容器”一起运行在同一 Linux 实例上,从而避免启动和维护虚拟机(VMs)的开销。
Extensions are software components that extend and deeply integrate with Kubernetes to support new types of hardware.
[+]Most cluster administrators will use a hosted or distribution instance of Kubernetes. As a result, most Kubernetes users will need to install extensions and fewer will need to author new ones.
Flexvolume 是创建 out-of-tree 卷插件的一种接口。 容器存储接口(CSI)容器存储接口 (CSI)定义了存储系统暴露给容器的标准接口。 是比 Flexvolume 更新的接口,它解决了 Flexvolume 的一些问题。
[+]Flexvolume 允许用户编写自己的驱动程序,并在 Kubernetes 中加入对用户自己的数据卷的支持。 FlexVolume 驱动程序的二进制文件和依赖项必须安装在主机上。这需要 root 权限。 如果可能的话,SIG Storage 建议实现 CSI容器存储接口 (CSI)定义了存储系统暴露给容器的标准接口。 驱动程序,因为它解决了 Flexvolumes 的限制。
Helm Chart 是一组预先配置的 Kubernetes 资源所构成的包,可以使用 Helm 工具对其进行管理。
[+]Chart 提供了一种可重现的用来创建和共享 Kubernetes 应用的方法。 单个 Chart 可用来部署简单的系统(例如一个 memcached Pod),也可以用来部署复杂的系统(例如包含 HTTP 服务器、数据库、缓存等组件的完整 Web 应用堆栈)。
HostAliases 是要注入 Pod 的 hosts 文件的 IP 地址和主机名之间的映射。
[+]HostAliases 是一个可选的主机名和 IP 地址列表,如果指定,它们将被注入 Pod 的 hosts 文件中。 这仅适用于非 hostNetwork 的 Pod。
Istio 是个开放平台(非 Kubernetes 特有),提供了一种统一的方式来集成微服务、管理流量、实施策略和汇总度量数据。
[+]添加 Istio 时不需要修改应用代码。它是基础设施的一层,介于服务和网络之间。当它和服务的 Deployment 相结合时,就构成了通常所谓的服务网格(Service Mesh)。Istio 的控制面抽象掉了底层的集群管理平台,这一集群管理平台可以是 Kubernetes、Mesosphere 等。
Job 是需要运行完成的确定性的或批量的任务。
[+]Job 创建一个或多个 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 对象,并确保指定数量的 Pod 成功终止。随着各 Pod 成功结束,Job 会跟踪记录成功完成的个数。
kops 是一个命令行工具,可以帮助您创建、销毁、升级和维护生产级,高可用性的 Kubernetes 集群。*注意:官方仅支持 AWS,GCE 和 VMware vSphere 的支持还处于 alpha 阶段*。
[+]kops
为您的集群提供了:
您也可以将自己的集群作为一个构造块,使用
Kubeadm用来快速安装 Kubernetes 并搭建安全稳定的集群的工具。
构造集群。kops
是建立在 kubeadm 之上的。
在主节点上运行 控制器控制器通过 apiserver 监控集群的公共状态,并致力于将当前状态转变为期望的状态。 的组件。
[+]从逻辑上讲,每个 控制器控制器通过 apiserver 监控集群的公共状态,并致力于将当前状态转变为期望的状态。 都是一个单独的进程,但是为了降低复杂性,它们都被编译到同一个可执行文件,并在一个进程中运行。
kube-proxy
是集群中每个节点上运行的网络代理。
kube-proxy
负责转发请求。kube-proxy
能够提供 TCP 和 UDP 的流转发,也可为一组后端功能点提供轮转式 TCP 和 UDP 转发。
主节点上的组件,该组件监视那些新创建的未指定运行节点的 Pod,并选择节点让 Pod 在上面运行。
[+]调度决策考虑的因素包括单个 Pod 和 Pod 集合的资源需求、硬件/软件/策略约束、亲和性和反亲和性规范、数据位置、工作负载间的干扰和最后时限。
kubectl 是用来和 Kubernetes APIKubernetes API 是通过 RESTful 接口提供 Kubernetes 功能服务并负责集群状态存储的应用程序。 服务器进行通信的命令行工具。
[+]您可以使用 kubectl 创建、检查、更新和删除 Kubernetes 对象。
一个在集群中每个节点上运行的代理。它保证容器都运行在 Pod 中。
[+]kubelet 接收一组通过各类机制提供给它的 PodSpecs,确保这些 PodSpecs 中描述的容器处于运行状态且健康。kubelet 不会管理不是由 Kubernetes 创建的容器。
Kubernetes API 是通过 RESTful 接口提供 Kubernetes 功能服务并负责集群状态存储的应用程序。
[+]Kubernetes 资源和”意向记录”都是作为 API 对象储存的,并可以通过对 API 的 RESTful 调用进行修改。
API 允许以声明方式管理配置。
用户可以直接和 Kubernetes API 交互,也可以通过 kubectl
这样的工具进行交互。
核心的 Kubernetes API 是很灵活的,可以扩展以支持定制资源。
Provides constraints to limit resource consumption per ContainersA lightweight and portable executable image that contains software and all of its dependencies. or PodsThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. in a namespace.
[+]LimitRange limits the quantity of objects that can be created by type, as well as the amount of compute resources that may be requested/consumed by individual ContainersA lightweight and portable executable image that contains software and all of its dependencies. or PodsThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. in a namespace.
Logs are the list of events that are logged by clusterA set of machines, called nodes, that run containerized applications managed by Kubernetes. or application.
[+]Application and systems logs can help you understand what is happening inside your cluster. The logs are particularly useful for debugging problems and monitoring cluster activity.
Pod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的 容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 。
[+]通常创建 Pod 是为了运行单个主容器。Pod 还可以运行可选的挂斗(sidecar)容器,以添加诸如日志记录之类的补充特性。通常用 DeploymentDeployment 是管理应用副本的 API 对象。 来管理 Pod。
Pod Priority indicates the importance of a Pod relative to other Pods.
[+]Pod Priority gives the ability to set scheduling priority of a Pod to be higher and lower than other Pods — an important feature for production clusters workload.
为 Pod 的创建和更新操作启用细粒度的授权。
[+]Pod 安全策略是集群级别的资源,它控制着 Pod 规约中的安全性敏感的内容。
PodSecurityPolicy
对象定义了一组条件以及相关字段的默认值,Pod 运行时必须满足这些条件。Pod 安全策略控制实现上体现为一个可选的准入控制器。
Pod 水平自动扩缩器(Horizontal Pod Autoscaler)是一种 API 资源,它根据目标 CPU 利用率或自定义度量目标扩缩 Pod 副本的数量。
[+]HPA 通常用于 Replication ControllersReplication Controller 是 Kubernetes 的一种服务,用来确保给定个数的 Pod 一直处于运行状态。 、 DeploymentsDeployment 是管理应用副本的 API 对象。 或者 Replica Sets 上。HPA 不能用于不支持扩缩的对象,例如 DaemonSets确保 Pod 的副本在集群中的一组节点上运行。 。
关于 Pod 在其生命周期内处于什么阶段的概括总结。
[+]Pod Lifecycle是 Pod 在其生命周期中的概括总结。 Pod 的 ‘status’ 字段是 PodStatus对象,它有一个 ‘phase’ 字段,显示以下阶段之一 :Running、Pending、Succeeded、Failed、Unknown、Completed 或者 CrashLoopBackOff。
PodPreset 是一种 API 对象,在创建 Pod 时将诸如 Secret、卷挂载和环境变量之类的信息注入到该 Pod 中。
[+]此 API 对象使用标准选择器选择 Pod 并向其中注入信息。这允许 podspec 定义是非特定的,从而将 podspec 与环境特定的配置解耦。
QoS Class (Quality of Service Class)) provides a way for Kubernetes to classify Pods within the cluster into several classes and make decisions about scheduling and eviction.
[+]QoS Class of a Pod is set at creation time based on its compute resources requests and limits settings. QoS classes are used to make decisions about Pods scheduling and eviction.
Kubernetes can assign one of the following QoS classes to a Pod: Guaranteed
, Burstable
or BestEffort
.
管理授权决策,允许管理员通过 Kubernetes APIKubernetes API 是通过 RESTful 接口提供 Kubernetes 功能服务并负责集群状态存储的应用程序。 动态配置访问策略。
[+]RBAC 使用 角色 (包含权限规则)和 角色绑定 (将角色中定义的权限授予一组用户)。
ReplicaSet 是下一代副本控制器。
[+]ReplicaSet 就像 ReplicationController 那样,确保一次运行指定数量的 Pod 副本。ReplicaSet 支持新的基于集合的选择器需求(在标签的用户指南中有相关描述),而副本控制器只支持基于等值的选择器需求。
Replication Controller 是 Kubernetes 的一种服务,用来确保给定个数的 Pod 一直处于运行状态。
[+]Replication Controller 会基于设定值自动增删 Pod 的实例。如果 Pod 被误删除或者启动实例过多,Replication Controller 允许 Pod 的实例个数恢复到设定值。
一个安全的,基于标准的容器引擎。
[+]rkt 是一个应用程序 container容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 引擎,其中包含 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 -原生方法,可插拔式执行环境, 和定义良好的展示模块。 rkt 允许用户在 Pod 和应用程序级别应用不同的配置。每个 Pod 都直接在经典的 Unix 进程模型中,在一个独立的隔离环境中执行。
Secret 用于存储敏感信息,如密码、OAuth 令牌和 SSH 密钥。
[+]Secret 允许用户对如何使用敏感信息进行更多的控制,并减少信息意外暴露的风险,包括静态加密。 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 通过挂载卷中的文件的方式引用 Secret,或者通过 kubelet 为 pod 拉取镜像时引用。 Secret 非常适合机密数据使用,而 ConfigMaps 适用于非机密数据。
Service 是一种 API 资源对象,它描述了应用的访问方式,例如包含一组 Pod 的应用如何进行访问,Service 还可以描述端口和负载均衡。
[+]Service 的接入点可以是集群内部的也可以是集群外部的。
共同管理大范畴 Kubernetes 开源项目中某组件或方面的一组 社区成员K8s 社区中持续活跃的贡献者。 。
[+]SIG 中的成员对推进某个领域(如体系结构、API 机制构件或者文档)具有相同的兴趣。 SIGs 必须遵从 SIG Governance 的规定, 不过可以有自己的贡献策略以及通信渠道(方式)。
更多的详细信息可参阅 kubernetes/community 仓库以及 SIGs 和工作组(Working Groups)的最新列表。
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
StorageClass 是管理员用来描述不同的可用存储类型的一种方法。
[+]StorageClass 可以映射到服务质量等级(QoS)、备份策略、或者管理员随机定义的策略。每个 StorageClass 对象包含的域有 provisioner
、 parameters
和 reclaimPolicy
,属于该存储类别的
永久卷持久卷是代表集群中一块存储空间的 API 对象。 它是通用的、可插拔的、并且不受单个 Pod 生命周期约束的持久化资源。
需要动态分配时就要用到这些域参数。通过 StorageClass 对象的名称,用户可以请求他们需要的特定存储类别。
A core object consisting of three required properties: key, value, and effect. Taints prevent the scheduling of pods on nodes or node groups.
[+]Taints and tolerationsA core object consisting of three required properties: key, value, and effect. Tolerations enable the scheduling of pods on nodes or node groups that have a matching taint. work together to ensure that pods are not scheduled onto inappropriate nodes. One or more taints are applied to a nodeA node is a worker machine in Kubernetes. . A node should only schedule a pod with the matching tolerations for the configured taints.
A core object consisting of three required properties: key, value, and effect. Tolerations enable the scheduling of pods on nodes or node groups that have matching taintsA core object consisting of three required properties: key, value, and effect. Taints prevent the scheduling of pods on nodes or node groups. .
[+]Tolerations and taintsA core object consisting of three required properties: key, value, and effect. Taints prevent the scheduling of pods on nodes or node groups. work together to ensure that pods are not scheduled onto inappropriate nodes. One or more tolerations are applied to a podThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. . A toleration indicates that the podThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. is allowed (but not required) to be scheduled on nodes or node groups with matching taintsA core object consisting of three required properties: key, value, and effect. Taints prevent the scheduling of pods on nodes or node groups. .
由 Kubernetes 系统生成、用来唯一标识对象的字符串。
[+]在 Kubernetes 集群的整个生命周期中,每个被创建的对象都有不同的 UID。UID 用来区分相似实体的历史事件。
工作组是为了方便讨论和(或)推进执行一些短周期、窄范围、或者从委员会和 SIG 分离出来的项目、以及跨 SIG 的活动。
[+]工作组可以将人们组织起来,一起完成一项分散的任务。它组建简单,完成任务即可解散。
更多信息请参考 kubernetes/community 代码库和当前的 SIGs 和工作组 列表。
<– May refer to: code in the Kubernetes ecosystem that depends upon the core Kubernetes codebase or a forked repo. –>
可以指:Kubernetes 生态系统中依赖于核心 Kubernetes 代码库或分支代码库的代码。
[+]云供应商是提供可以用来运行 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 代码进行演进。
为 Kubernetes 开源代码库开发并贡献代码的人。
[+]代码贡献者也是加入一个或多个 特别兴趣小组 (SIGs)共同管理大范畴 Kubernetes 开源项目中某组件或方面的一组社区成员。 的活跃的 社区成员K8s 社区中持续活跃的贡献者。 。
应用容器运行前必须先运行完成的一个或多个初始化容器。
[+]初始化(init)容器像常规应用容器一样,只有一点不同:初始化(init)容器必须在应用容器启动前运行完成。Init 容器的运行顺序:一个初始化(init)容器必须在下一个初始化(init)容器开始前运行完成。
允许用户请求自动创建存储 卷包含可被 Pod 中容器访问的数据的目录。 。
[+]动态供应让集群管理员无需再预先供应存储。相反,它通过用户请求自动地供应存储。 动态卷供应是基于 API 对象 StorageClassA StorageClass provides a way for administrators to describe different available storage types. 的,StorageClass 可以引用 卷插件(Volume Plugin)卷(Volume)插件可以让 Pod 集成存储。 提供的 卷(Volume)包含可被 Pod 中容器访问的数据的目录。 ,也可以引用传递给卷插件(Volume Plugin)的参数集。
包含可被 podPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 中容器访问的数据的目录。
[+]每个 Kubernetes 卷在所处的 podPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 存在期间保持存在状态。 因此,卷的生命期会超出 podPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 中运行的 容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 , 并且保证 容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 重启之后仍保留数据。
卷插件可以让 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 集成存储。
[+]卷插件让您能给 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 附加和挂载存储卷。卷插件既可以是 in tree 也可以是 out of tree 。in tree 插件是 Kubernetes 代码库的一部分,并遵循其发布周期。而 Out of tree 插件则是独立开发的。
客户端提供的字符串,用来指代资源 URL 中的对象,如 /api/v1/pods/some-name
。
对给定资源类型 (kind) 而言,同一时刻只能有一个对象使用给定的名称。不过,如果该对象被删除,则可以使用同一名称创建新新对象。
命名空间是 Kubernetes 为了在同一物理集群上支持多个虚拟集群而使用的一种抽象。
[+]命名空间用来组织集群中对象,并为集群资源划分提供了一种方法。同一命名空间内的资源名称必须唯一,但跨命名空间时不作要求。
securityContext 字段定义 Pod 或容器的特权和访问控制设置,包括运行时 UID 和 GID。
[+]PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 或者容器中的 securityContext 字段(应用于所有容器)用于设置容器进程使用的用户(runAsUser)和组 (fsGroup)、权能字、特权设置和安全策略(SELinux/AppArmor/Seccomp)。
容器存储接口 (CSI)定义了存储系统暴露给容器的标准接口。
[+]CSI 允许存储驱动提供商为 Kubernetes 创建定制化的存储插件,而无需将这些插件的代码添加到 Kubernetes 代码仓库(外部插件)。要使用某个存储提供商的 CSI 驱动,你首先要将它部署到你的集群上。然后你才能创建使用该 CSI 驱动的 Storage ClassA StorageClass provides a way for administrators to describe different available storage types. 。
容器环境变量提供了运行容器化应用所必须的一些重要信息。
[+]容器环境变量为运行中的容器化应用提供必要的信息,同时还提供与 容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 重要资源相关的其他信息,例如:文件系统信息、容器自身的信息以及其他像服务端点(Service endpoints)这样的集群资源信息。
生命周期钩子暴露 容器容器是可移植、可执行的轻量级的镜像,镜像中包含软件及其相关依赖。 管理生命周期中的事件,允许用户在事件发生时运行代码。
[+]针对容器暴露了两个钩子:PostStart 在容器创建之后立即执行,PreStop 在容器停止之前立即阻塞并被调用。
工作负载是用来在集群上管理和运行容器的对象。
[+]Kubernetes 使用应用程序的当前状态部署和更新工作负载。 工作负载包括 DaemonSet、Deployments、Jobs、Pods、ReplicaSet、ReplicationController 和 StatefulSet 对象。
例如,具有 Web 元素和数据库元素的工作负载可能会运行数据库在一个 StatefulSetStatefulSet 用来管理 Deployment 和伸缩一组 Pod,并且能为这些 Pod 提供*序号和唯一性保证*。 中的 podsPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 ,并且网络服务器通过由许多 podsPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 网络应用组成的 DeploymentDeployment 是管理应用副本的 API 对象。 ,大都是类似的。
定制 Kubernetes 平台以满足自己的项目需求的人。
[+]例如,平台开发人员可以使用定制资源或使用汇聚层扩展 Kubernetes API 来为其 Kubernetes 实例增加功能,特别是为其应用程序添加功能。一些平台开发人员也是 Kubrenetes 贡献者通过贡献代码、文档或者投入时间等方式来帮助 Kubernetes 项目或社区的人。 ,他们会开发贡献给 Kubernetes 社区的扩展;另一些则开发封闭源代码的商业扩展或用于特定功能的扩展。
指的是: 应用开发者编写可以在 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)。
数量是使用紧凑的整数表示法的小数或大数的表示,并带有国际计量单位制(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)。
由第三方提供并维护的一组 托管服务由第三方供应商负责维护的一种软件产品。 的访问端点。
[+]服务代理由第三方提供并维护的一组托管服务的访问端点。 会实现 开放服务代理 API 规范 并为应用提供使用其托管服务的标准接口。 服务目录(Service Catalog)则提供一种方法,用来列举、供应和绑定服务代理商所提供的托管服务。
服务目录(Service Catalog)是一种扩展 API,它能让 Kubernetes 集群中运行的应用易于使用外部托管的的软件服务,例如云供应商提供的数据仓库服务。
[+]服务目录可以检索、供应、和绑定由 服务代理人(Service Brokers)由第三方提供并维护的一组托管服务的访问端点。 提供的外部 托管服务由第三方供应商负责维护的一种软件产品。 ,而无需知道那些服务具体是怎样创建和托管的。
为在 PodPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 中运行的进程提供标识。
[+]当 Pod 中的进程访问集群时,API 服务器将它们作为特定的服务帐户进行身份验证,例如 default
。当您创建 Pod 时,如果您没有指定服务帐户,它将在相同的命名空间
命名空间命名空间是 Kubernetes 为了在同一物理集群上支持多个虚拟集群而使用的一种抽象。
中自动分配 default 服务账户。
用来为对象设置可标识的属性标记;这些标记对用户而言是有意义且重要的。
[+]标签是一些关联到 PodsPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 这类对象上的键值对。 它们通常用来组织和选择对象子集。
注解是以键值对的形式给资源对象附加随机的无法标识的元数据。
[+]注解中的元数据可大可小,可以是结构化的也可以是非结构化的,并且能包含标签不允许使用的字符。像工具和软件库这样的客户端可以检索这些元数据。
网络策略是一种规范,规定了允许 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 表示您的集群上一组正在运行的容器。 所必需的 服务Service 是一种 API 资源对象,它描述了应用的访问方式,例如包含一组 Pod 的应用如何进行访问,Service 还可以描述端口和负载均衡。 , 并由主控组件来管理。 节点上的 服务Service 是一种 API 资源对象,它描述了应用的访问方式,例如包含一组 Pod 的应用如何进行访问,Service 还可以描述端口和负载均衡。 包括 Docker、kubelet 和 kube-proxy。
证书是个安全加密文件,用来确认对 Kubernetes 集群访问的合法性。
[+]证书可以让 Kubernetes 集群中运行的应用程序安全的访问 Kubernetes API。证书可以确认客户端是否被允许访问 API。
通过贡献代码、文档或者投入时间等方式来帮助 Kubernetes 项目或社区的人。
[+]贡献形式包括提交拉取请求(PRs)、问题报告(Issues)、反馈、参与 特别兴趣小组(SIG)共同管理大范畴 Kubernetes 开源项目中某组件或方面的一组社区成员。 或者组织社区活动等等。
资源配额提供了限制每个 命名空间命名空间是 Kubernetes 为了在同一物理集群上支持多个虚拟集群而使用的一种抽象。 的资源消耗总和的约束。
[+]限制了命名空间中每种对象可以创建的数量,也限制了项目中可被资源对象利用的计算资源总数。
选择算符允许用户通过标签对一组资源对象进行筛选过滤。
[+]在查询资源列表时,选择算符可以通过 标签用来为对象设置可标识的属性标记;这些标记对用户而言是有意义且重要的。 对资源进行过滤筛选。
镜像是保存的容器实例,它打包了应用运行所需的一组软件。
[+]镜像是软件打包的一种方式,可以将镜像存储在容器镜像仓库、拉取到本地系统并作为应用来运行。 镜像中包含的元数据指明了运行什么可执行程序、是由谁构建的以及其他信息。
配置、控制、监控集群的人。
[+]他们的主要责任是保持集群正常运行,可能需要进行周期性的维护和升级活动。
注意: 集群操作者不同于操作者模式(Operator Pattern),操作者模式是用来扩展 Kubernetes API 的。
驱动插件是运行在 Kubernetes 中的容器,它提供对供应商特定资源的访问。驱动插件将这些资源发布到 kubelet,并且可以手动部署或做为 DeamonSet 部署,而不用编写定制的 Kubernetes 代码。
此页是否对您有帮助?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.