×

规格

属性 类型 描述

apiVersion

字符串

APIVersion 定义此对象表示的版本化模式。服务器应将识别的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

字符串

Kind 是一个字符串值,表示此对象表示的 REST 资源。服务器可以从客户端提交请求的端点推断出这一点。不能更新。使用驼峰式命名法。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

对象

StatefulSetSpec 是 StatefulSet 的规范。

status

对象

StatefulSetStatus 表示 StatefulSet 的当前状态。

.spec

描述

StatefulSetSpec 是 StatefulSet 的规范。

类型

对象

必需
  • selector

  • template

  • serviceName

属性 类型 描述

minReadySeconds

整数

新创建的 Pod 在没有任何容器崩溃的情况下应保持就绪状态的最小秒数,才能将其视为可用。默认为 0(Pod 一旦就绪即可视为可用)

ordinals

对象

StatefulSetOrdinals 描述了在此 StatefulSet 中用于副本序号分配的策略。

persistentVolumeClaimRetentionPolicy

对象

StatefulSetPersistentVolumeClaimRetentionPolicy 描述了用于从 StatefulSet VolumeClaimTemplates 创建的 PVC 的策略。

podManagementPolicy

字符串

podManagementPolicy 控制在初始扩展期间、在替换节点上的 Pod 或缩减规模时如何创建 Pod。默认策略是 `OrderedReady`,其中 Pod 以递增顺序创建(pod-0,然后是 pod-1,依此类推),并且控制器将等待每个 Pod 就绪后再继续。缩减规模时,Pod 将以相反的顺序删除。另一种策略是 `Parallel`,它将并行创建 Pod 以匹配所需的规模而无需等待,并且在缩减规模时将立即删除所有 Pod。

可能的枚举值:- "OrderedReady" 将在扩容时严格按照递增顺序创建 Pod,在缩容时严格按照递减顺序删除 Pod,只有在之前的 Pod 就绪或终止后才会继续进行。任何时候最多只有一个 Pod 会发生变化。- "Parallel" 将在更改 StatefulSet 副本数量后立即创建和删除 Pod,不会等待 Pod 就绪或完成终止。

replicas

整数

replicas 是给定 Template 的所需副本数量。这些副本是指它们是相同 Template 的实例,但各个副本也具有一致的标识。如果未指定,则默认为 1。

revisionHistoryLimit

整数

revisionHistoryLimit 是 StatefulSet 修订历史记录中将保留的最大修订次数。修订历史记录包含所有未由当前应用的 StatefulSetSpec 版本表示的修订版本。默认值为 10。

selector

LabelSelector

selector 是对应该匹配副本数量的 Pod 的标签查询。它必须与 Pod 模板的标签匹配。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/labels/#label-selectors

serviceName

字符串

serviceName 是管理此 StatefulSet 的服务的名称。此服务必须在 StatefulSet 之前存在,并且负责该集合的网络标识。Pod 获取遵循以下模式的 DNS/主机名:pod-specific-string.serviceName.default.svc.cluster.local,其中“pod-specific-string”由 StatefulSet 控制器管理。

template

PodTemplateSpec

template 是描述如果检测到副本不足将创建的 Pod 的对象。StatefulSet 打出的每个 Pod 都将满足此 Template,但具有与 StatefulSet 其余部分不同的唯一标识。每个 Pod 的命名格式为 <statefulsetname>-<podindex>。例如,名为“web”且索引号为“3”的 StatefulSet 中的一个 Pod 将命名为“web-3”。唯一允许的 template.spec.restartPolicy 值是“Always”。

updateStrategy

对象

StatefulSetUpdateStrategy 指示 StatefulSet 控制器将用于执行更新的策略。它包括为指示的策略执行更新所需的任何其他参数。

volumeClaimTemplates

数组 (PersistentVolumeClaim)

volumeClaimTemplates 是 Pod 允许引用的声明列表。StatefulSet 控制器负责以维护 Pod 身份的方式将网络标识映射到声明。此列表中的每个声明必须至少在一个模板中的一个容器中有一个匹配的(按名称)volumeMount。此列表中的声明优先于模板中名称相同的任何卷。

.spec.ordinals

描述

StatefulSetOrdinals 描述了在此 StatefulSet 中用于副本序号分配的策略。

类型

对象

属性 类型 描述

start

整数

start 是表示第一个副本索引的数字。它可用于根据默认的 0 索引名称使用备用索引(例如:1 索引)对副本进行编号,或协调副本从一个 StatefulSet 到另一个 StatefulSet 的逐步移动。如果设置,副本索引将在以下范围内:[ .spec.ordinals.start, .spec.ordinals.start + .spec.replicas)。如果未设置,则默认为 0。副本索引将在以下范围内:[0, .spec.replicas)。

.spec.persistentVolumeClaimRetentionPolicy

描述

StatefulSetPersistentVolumeClaimRetentionPolicy 描述了用于从 StatefulSet VolumeClaimTemplates 创建的 PVC 的策略。

类型

对象

属性 类型 描述

whenDeleted

字符串

WhenDeleted 指定删除 StatefulSet 时,如何处理从 StatefulSet VolumeClaimTemplates 创建的 PVC。Retain 的默认策略会导致 PVC 不受 StatefulSet 删除的影响。Delete 策略会导致删除这些 PVC。

whenScaled

字符串

WhenScaled 指定缩减 StatefulSet 时,如何处理从 StatefulSet VolumeClaimTemplates 创建的 PVC。Retain 的默认策略会导致 PVC 不受缩容的影响。Delete 策略会导致删除超出副本数量的任何多余 Pod 的关联 PVC。

.spec.updateStrategy

描述

StatefulSetUpdateStrategy 指示 StatefulSet 控制器将用于执行更新的策略。它包括为指示的策略执行更新所需的任何其他参数。

类型

对象

属性 类型 描述

rollingUpdate

对象

RollingUpdateStatefulSetStrategy 用于传达 RollingUpdateStatefulSetStrategyType 的参数。

type

字符串

Type 指示 StatefulSetUpdateStrategy 的类型。默认为 RollingUpdate。

可能的枚举值:- "OnDelete" 触发旧行为。版本跟踪和有序滚动重启被禁用。当手动删除 Pod 时,将根据 StatefulSetSpec 重新创建 Pod。当使用此策略执行缩放操作时,将使用 StatefulSet 的 currentRevision 指示的规范版本。- "RollingUpdate" 指示更新将根据 StatefulSet 排序约束应用于 StatefulSet 中的所有 Pod。当使用此策略执行缩放操作时,将根据 StatefulSet 的 updateRevision 指示的规范版本创建新的 Pod。

.spec.updateStrategy.rollingUpdate

描述

RollingUpdateStatefulSetStrategy 用于传达 RollingUpdateStatefulSetStrategyType 的参数。

类型

对象

属性 类型 描述

maxUnavailable

IntOrString

更新期间最多可以不可用的 Pod 数量。值可以是绝对数字(例如:5)或所需 Pod 的百分比(例如:10%)。绝对数字是通过向上取整从百分比计算得出的。这不能为 0。默认为 1。此字段为 alpha 级,只有启用 MaxUnavailableStatefulSet 功能的服务器才会遵守。该字段应用于 0 到 Replicas-1 范围内的所有 Pod。这意味着如果 0 到 Replicas-1 范围内有任何不可用的 Pod,它将计入 MaxUnavailable。

partition

整数

Partition 指示应为更新划分 StatefulSet 的序号。在滚动更新期间,将更新从序号 Replicas-1 到 Partition 的所有 Pod。从序号 Partition-1 到 0 的所有 Pod 保持不变。这有助于能够进行基于金丝雀的部署。默认值为 0。

.status

描述

StatefulSetStatus 表示 StatefulSet 的当前状态。

类型

对象

必需
  • replicas

属性 类型 描述

availableReplicas

整数

此 statefulset 定向的可用 Pod(至少准备了 minReadySeconds)的总数。

collisionCount

整数

collisionCount 是 StatefulSet 的哈希冲突计数。当 StatefulSet 控制器需要为最新的 ControllerRevision 创建名称时,它将此字段用作冲突避免机制。

conditions

数组

表示 statefulset 当前状态的最新可用观察结果。

conditions[]

对象

StatefulSetCondition 描述了特定时间点 statefulset 的状态。

currentReplicas

整数

currentReplicas 是 StatefulSet 控制器根据 currentRevision 指示的 StatefulSet 版本创建的 Pod 数量。

currentRevision

字符串

currentRevision 如果非空,则指示用于生成序列 [0,currentReplicas) 中 Pod 的 StatefulSet 版本。

observedGeneration

整数

observedGeneration 是为此 StatefulSet 观察到的最新一代。它对应于 StatefulSet 的 generation,该 generation 由 API 服务器在变异时更新。

readyReplicas

整数

readyReplicas 是为此 StatefulSet 创建的具有就绪状态的 Pod 数量。

replicas

整数

replicas 是 StatefulSet 控制器创建的 Pod 数量。

updateRevision

字符串

updateRevision 如果非空,则指示用于生成序列 [replicas-updatedReplicas,replicas) 中 Pod 的 StatefulSet 版本。

updatedReplicas

整数

updatedReplicas 是 StatefulSet 控制器根据 updateRevision 指示的 StatefulSet 版本创建的 Pod 数量。

.status.conditions

描述

表示 statefulset 当前状态的最新可用观察结果。

类型

数组

.status.conditions[]

描述

StatefulSetCondition 描述了特定时间点 statefulset 的状态。

类型

对象

必需
  • type

  • status

属性 类型 描述

lastTransitionTime

时间

条件从一种状态转换到另一种状态的最后时间。

message

字符串

指示有关转换详细信息的人类可读消息。

reason

字符串

条件上次转换的原因。

status

字符串

条件的状态,True、False、Unknown 之一。

type

字符串

statefulset 条件的类型。

API 端点

提供以下 API 端点

  • /apis/apps/v1/statefulsets

    • GET:列出或监视 StatefulSet 类型的对象

  • /apis/apps/v1/watch/statefulsets

    • GET:监视 StatefulSet 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

  • /apis/apps/v1/namespaces/{namespace}/statefulsets

    • DELETE:删除 StatefulSet 集合

    • GET:列出或监视 StatefulSet 类型的对象

    • POST:创建 StatefulSet

  • /apis/apps/v1/watch/namespaces/{namespace}/statefulsets

    • GET:监视 StatefulSet 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

  • /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}

    • DELETE:删除 StatefulSet

    • GET:读取指定的 StatefulSet

    • PATCH:部分更新指定的 StatefulSet

    • PUT:替换指定的 StatefulSet

  • /apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}

    • GET:监视 StatefulSet 对象类型的更改。已弃用:请改用列表操作中的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

  • /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status

    • GET:读取指定 StatefulSet 的状态

    • PATCH:部分更新指定 StatefulSet 的状态

    • PUT:替换指定 StatefulSet 的状态

/apis/apps/v1/statefulsets

HTTP 方法

GET

描述

列出或监视 StatefulSet 对象类型的对象

表 1. HTTP 响应
HTTP 代码 响应正文

200 - OK

StatefulSetList 模式

401 - 未授权

/apis/apps/v1/watch/statefulsets

HTTP 方法

GET

描述

监视 StatefulSet 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

表 2. HTTP 响应
HTTP 代码 响应正文

200 - OK

WatchEvent 模式

401 - 未授权

/apis/apps/v1/namespaces/{namespace}/statefulsets

HTTP 方法

DELETE

描述

删除 StatefulSet 集合

表 3. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 4. HTTP 响应
HTTP 代码 响应正文

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出或监视 StatefulSet 对象类型的对象

表 5. HTTP 响应
HTTP 代码 响应正文

200 - OK

StatefulSetList 模式

401 - 未授权

HTTP 方法

POST

描述

创建 StatefulSet

表 6. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的除最后一个重复字段之外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这将通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍将成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 7. 主体参数
参数 类型 描述

主体

StatefulSet 模式

表 8. HTTP 响应
HTTP 代码 响应正文

200 - OK

StatefulSet 模式

201 - 已创建

StatefulSet 模式

202 - 已接受

StatefulSet 模式

401 - 未授权

/apis/apps/v1/watch/namespaces/{namespace}/statefulsets

HTTP 方法

GET

描述

监视 StatefulSet 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

表 9. HTTP 响应
HTTP 代码 响应正文

200 - OK

WatchEvent 模式

401 - 未授权

/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}

表 10. 全局路径参数
参数 类型 描述

name

字符串

StatefulSet 的名称

HTTP 方法

DELETE

描述

删除 StatefulSet

表 11. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 12. HTTP 响应
HTTP 代码 响应正文

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 StatefulSet

表 13. HTTP 响应
HTTP 代码 响应正文

200 - OK

StatefulSet 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 StatefulSet

表 14. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的除最后一个重复字段之外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这将通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍将成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 15. HTTP 响应
HTTP 代码 响应正文

200 - OK

StatefulSet 模式

201 - 已创建

StatefulSet 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 StatefulSet

表 16. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的除最后一个重复字段之外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这将通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍将成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 17. 主体参数
参数 类型 描述

主体

StatefulSet 模式

表 18. HTTP 响应
HTTP 代码 响应正文

200 - OK

StatefulSet 模式

201 - 已创建

StatefulSet 模式

401 - 未授权

/apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}

表 19. 全局路径参数
参数 类型 描述

name

字符串

StatefulSet 的名称

HTTP 方法

GET

描述

监视 StatefulSet 对象类型的更改。已弃用:请改用列表操作中的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

表 20. HTTP 响应
HTTP 代码 响应正文

200 - OK

WatchEvent 模式

401 - 未授权

/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status

表 21. 全局路径参数
参数 类型 描述

name

字符串

StatefulSet 的名称

HTTP 方法

GET

描述

读取指定 StatefulSet 的状态

表 22. HTTP 响应
HTTP 代码 响应正文

200 - OK

StatefulSet 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定 StatefulSet 的状态

表 23. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的除最后一个重复字段之外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这将通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍将成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 24. HTTP 响应
HTTP 代码 响应正文

200 - OK

StatefulSet 模式

201 - 已创建

StatefulSet 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定 StatefulSet 的状态

表 25. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的除最后一个重复字段之外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这将通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍将成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 26. 主体参数
参数 类型 描述

主体

StatefulSet 模式

表 27. HTTP 响应
HTTP 代码 响应正文

200 - OK

StatefulSet 模式

201 - 已创建

StatefulSet 模式

401 - 未授权