Kubernetes API 是通过 RESTful 接口提供 Kubernetes 功能服务并负责集群状态存储的应用程序。
Kubernetes 资源和"意向记录"都是作为 API 对象储存的,并可以通过调用 RESTful 风格的 API 进行修改。
API 允许以声明方式管理配置。
用户可以直接和 Kubernetes API 交互,也可以通过 kubectl 这样的工具进行交互。
核心的 Kubernetes 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 包含描述非资源规则的信息。
OwnerReference 包含足以识别所属对象的信息。所属对象必须与从属对象位于同一命名空间,或者是集群作用域对象,因此其中不包含命名空间字段。
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。)
此格式旨在使不编写某种特殊处理代码就使用这些数字变得困难,希望以此促使实现者也使用定点实现。
RoleRef 包含指向所使用角色的信息。
RuleWithOperations 是由 operations 和 resources 组成的元组。建议确保所有元组展开均有效。
ServerAddressByClientCIDR 帮助客户端根据其匹配的 clientCIDR,确定应使用的服务器地址。
ServiceReference 持有对 Service.legacy.k8s.io 的引用。
Subject 包含对角色绑定所适用的对象或用户身份的引用。 它可以是直接的 API 对象引用,也可以是针对非对象(如用户和组名称)的值。
Time 类型是对 time.Time 的封装,支持正确地序列化为 YAML 和 JSON 格式。该类型还针对 time 包提供的许多工厂方法提供了相应的封装版本。
该容忍度所关联的 Pod,能够容忍任何与三元组 <key, value, effect> 相匹配的污点(taint),匹配依据由 <operator> 指定。
TypedLocalObjectReference 包含足够的信息,使你能够在同一命名空间内定位所引用的类型化对象。
TypedLocalObjectReference 允许引用同一命名空间内的类型化对象。
UserInfo 包含实现 user.Info 接口所需的用户信息。
Variable 是指用于组合的变量定义;Variable 被定义为一种具名表达式。
event 表示针对受监控资源发生的单个事件。