Kubernetes API 是通过 RESTful 接口提供 Kubernetes 功能服务并负责集群状态存储的应用程序。
Kubernetes 资源和"意向记录"都是作为 API 对象储存的,并可以通过调用 RESTful 风格的 API 进行修改。
API 允许以声明方式管理配置。
用户可以直接和 Kubernetes API 交互,也可以通过 kubectl 这样的工具进行交互。
核心的 Kubernetes API 是很灵活的,可以扩展以支持定制资源。
apiVersions 列出了可用的版本,以便客户端能够发现位于 /api(即旧版 v1 API 的根路径)处的 API。
Condition 包含了该 API 资源当前状态某一方面的详细信息。
删除 API 对象时,可以指定 DeleteOptions。
EventSource 包含有关事件的信息。
FieldSelectorRequirement 是一种选择器,包含键(key)、值(values)以及用于关联键与值的运算符(operator)。
FieldsV1 将一组字段存储在类似 Trie 的数据结构中,格式为 JSON。
每个键要么是一个 “.”,表示字段本身,并且始终映射到空集; 要么是一个字符串,表示子字段或项。该字符串遵循以下四种格式之一: f:<name>,其中 <name> 是结构体中字段的名称,或映射中的键; v:<value>,其中 <value> 是列表项的精确 JSON 格式值; i:<index>,其中 <index> 是项在列表中的位置; k:<keys>,其中 <keys> 是列表项的键值。 是列表项的键字段到其唯一值的映射。如果某个键映射到空的字段值, 则该键所代表的字段属于该集合。
确切格式定义在 sigs.k8s.io/structured-merge-diff 中。
GroupResource 指定了 API 组和资源,但不强制指定版本。这在查找阶段很有用,因为部分类型可能无效。
GroupVersion 包含版本号的 group/version 和 version 字符串。它被定义为结构体以保持可扩展性。
标签选择器是对一组资源进行的标签查询。matchLabels 和 matchExpressions 的结果会进行“与”(AND)运算。空的标签选择器匹配所有对象;为 null 的标签选择器不匹配任何对象。
标签选择器需求是一种包含键、值以及用于关联键与值的运算符的选择器。
matchExpressions 是一组标签选择器要求。这些要求之间是“与”(AND)的关系。
MicroTime 是具有微秒级精度的 Time 版本。
NamedRuleWithOperations 是由 Operations 以及包含资源名称 ResourceNames 的资源 Resources 组成的元组。
NonResourceAttributes 包含了可供授权器(Authorizer)接口用于非资源请求的授权属性。
NonResourceRule 包含描述非资源规则的信息。
ObjectReference 包含足够的信息,使你能够检查或修改所引用的对象。
OwnerReference 包含足以识别所属对象的信息。所属对象必须与从属对象位于同一命名空间,或者是集群作用域对象,因此其中不包含命名空间字段。
ParamKind 是由 Group、Kind 和 Version 组成的元组。
ParamRef 描述了如何定位那些将用作输入参数的参数,这些参数用于策略绑定所应用的规则表达式。
此 Patch 旨在为 Kubernetes PATCH 请求体提供具体的名称和类型。
PolicyRule 包含描述策略规则的信息,但不包含关于该规则适用于哪些对象或适用于哪个命名空间的信息。
在执行某项操作(更新、删除等)之前,必须满足 Preconditions。
Quantity 是数字的定点表示。它提供了方便的 JSON 和 YAML 编组/解组功能,以及 String() 和 AsInt64() 访问器。
序列化格式如下:
(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
<digit> ::= 0 | 1 | ... | 9 <digits> ::= <digit> | <digit><digits> <number> ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign> ::= "+" | "-" <signedNumber> ::= <number> | <sign><number> <suffix> ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI> ::= Ki | Mi | Gi | Ti | Pi | Ei
(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
<decimalSI> ::= m | "" | k | M | G | T | P | E
(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
<decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
无论使用三种指数形式中的哪一种,任何 Quantity 都不能表示幅度大于 2^63-1 的数字,也不能超过 3 位小数。更大或更精确的数字将被截断或向上取整。(例如:0.1m 将向上取整为 1m。)如果将来需要更大或更小的数量,这可能会被扩展。
当 Quantity 从字符串解析时,它会记住其后缀类型,并在再次序列化时使用相同的类型。
在序列化之前,Quantity 将被置于 "规范形式"(canonical form)。这意味着指数/后缀将向上或向下调整(尾数相应增加或减少),使得:
- 不会丢失精度 - 不会输出小数位 - 指数(或后缀)尽可能大。
除非数字为负数,否则符号将被省略。
示例:
- 1.5 将被序列化为 "1500m" - 1.5Gi 将被序列化为 "1536Mi"
只要格式正确,非规范值仍可被解析,但会以其规范形式重新输出。(因此请始终使用规范形式,或者不要进行 diff。)
此格式旨在使不编写某种特殊处理代码就使用这些数字变得困难,希望以此促使实现者也使用定点实现。
ResourceRule 是主体被允许对资源执行的操作列表。 该列表的顺序无关紧要,可能包含重复项,也可能不完整。
RoleRef 包含指向所使用角色的信息。
RuleWithOperations 是由 operations 和 resources 组成的元组。建议确保所有元组展开均有效。
ServerAddressByClientCIDR 帮助客户端根据其匹配的 clientCIDR,确定应使用的服务器地址。
ServiceReference 持有对 Service.legacy.k8s.io 的引用。
StatusCause 提供了关于 api.Status 失败的更多信息,包括遇到多个错误的情况。
Subject 包含对角色绑定所适用的对象或用户身份的引用。 它可以是直接的 API 对象引用,也可以是针对非对象(如用户和组名称)的值。
Time 类型是对 time.Time 的封装,支持正确地序列化为 YAML 和 JSON 格式。该类型还针对 time 包提供的许多工厂方法提供了相应的封装版本。
该容忍度所关联的 Pod,能够容忍任何与三元组 <key, value, effect> 相匹配的污点(taint),匹配依据由 <operator> 指定。
TypedLocalObjectReference 包含足够的信息,使你能够在同一命名空间内定位所引用的类型化对象。
TypedLocalObjectReference 允许引用同一命名空间内的类型化对象。
UserInfo 包含实现 user.Info 接口所需的用户信息。
Variable 是指用于组合的变量定义;Variable 被定义为一种具名表达式。
event 表示针对受监控资源发生的单个事件。