StatefulSet 代表一组具有稳定身份的 Pod。身份定义为:- 网络:单个稳定的 DNS 和主机名。- 存储:根据请求提供尽可能多的 VolumeClaim。
StatefulSet 保证给定的网络身份始终映射到相同的存储身份。
StatefulSet 代表一组具有稳定身份的 Pod。身份定义为:- 网络:单个稳定的 DNS 和主机名。- 存储:根据请求提供尽可能多的 VolumeClaim。
StatefulSet 保证给定的网络身份始终映射到相同的存储身份。
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
APIVersion 定义此对象表示的版本化模式。服务器应将识别的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
|
Kind 是一个字符串值,表示此对象表示的 REST 资源。服务器可以从客户端提交请求的端点推断出这一点。不能更新。使用驼峰式命名法。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
|
|
|
StatefulSetSpec 是 StatefulSet 的规范。 |
|
|
StatefulSetStatus 表示 StatefulSet 的当前状态。 |
StatefulSetSpec 是 StatefulSet 的规范。
对象
selector
template
serviceName
属性 | 类型 | 描述 |
---|---|---|
|
|
新创建的 Pod 在没有任何容器崩溃的情况下应保持就绪状态的最小秒数,才能将其视为可用。默认为 0(Pod 一旦就绪即可视为可用) |
|
|
StatefulSetOrdinals 描述了在此 StatefulSet 中用于副本序号分配的策略。 |
|
|
StatefulSetPersistentVolumeClaimRetentionPolicy 描述了用于从 StatefulSet VolumeClaimTemplates 创建的 PVC 的策略。 |
|
|
podManagementPolicy 控制在初始扩展期间、在替换节点上的 Pod 或缩减规模时如何创建 Pod。默认策略是 `OrderedReady`,其中 Pod 以递增顺序创建(pod-0,然后是 pod-1,依此类推),并且控制器将等待每个 Pod 就绪后再继续。缩减规模时,Pod 将以相反的顺序删除。另一种策略是 `Parallel`,它将并行创建 Pod 以匹配所需的规模而无需等待,并且在缩减规模时将立即删除所有 Pod。 可能的枚举值:- |
|
|
replicas 是给定 Template 的所需副本数量。这些副本是指它们是相同 Template 的实例,但各个副本也具有一致的标识。如果未指定,则默认为 1。 |
|
|
revisionHistoryLimit 是 StatefulSet 修订历史记录中将保留的最大修订次数。修订历史记录包含所有未由当前应用的 StatefulSetSpec 版本表示的修订版本。默认值为 10。 |
|
selector 是对应该匹配副本数量的 Pod 的标签查询。它必须与 Pod 模板的标签匹配。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/labels/#label-selectors |
|
|
|
serviceName 是管理此 StatefulSet 的服务的名称。此服务必须在 StatefulSet 之前存在,并且负责该集合的网络标识。Pod 获取遵循以下模式的 DNS/主机名:pod-specific-string.serviceName.default.svc.cluster.local,其中“pod-specific-string”由 StatefulSet 控制器管理。 |
|
template 是描述如果检测到副本不足将创建的 Pod 的对象。StatefulSet 打出的每个 Pod 都将满足此 Template,但具有与 StatefulSet 其余部分不同的唯一标识。每个 Pod 的命名格式为 <statefulsetname>-<podindex>。例如,名为“web”且索引号为“3”的 StatefulSet 中的一个 Pod 将命名为“web-3”。唯一允许的 template.spec.restartPolicy 值是“Always”。 |
|
|
|
StatefulSetUpdateStrategy 指示 StatefulSet 控制器将用于执行更新的策略。它包括为指示的策略执行更新所需的任何其他参数。 |
|
volumeClaimTemplates 是 Pod 允许引用的声明列表。StatefulSet 控制器负责以维护 Pod 身份的方式将网络标识映射到声明。此列表中的每个声明必须至少在一个模板中的一个容器中有一个匹配的(按名称)volumeMount。此列表中的声明优先于模板中名称相同的任何卷。 |
StatefulSetOrdinals 描述了在此 StatefulSet 中用于副本序号分配的策略。
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
start 是表示第一个副本索引的数字。它可用于根据默认的 0 索引名称使用备用索引(例如:1 索引)对副本进行编号,或协调副本从一个 StatefulSet 到另一个 StatefulSet 的逐步移动。如果设置,副本索引将在以下范围内:[ .spec.ordinals.start, .spec.ordinals.start + .spec.replicas)。如果未设置,则默认为 0。副本索引将在以下范围内:[0, .spec.replicas)。 |
StatefulSetPersistentVolumeClaimRetentionPolicy 描述了用于从 StatefulSet VolumeClaimTemplates 创建的 PVC 的策略。
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
WhenDeleted 指定删除 StatefulSet 时,如何处理从 StatefulSet VolumeClaimTemplates 创建的 PVC。 |
|
|
WhenScaled 指定缩减 StatefulSet 时,如何处理从 StatefulSet VolumeClaimTemplates 创建的 PVC。 |
StatefulSetUpdateStrategy 指示 StatefulSet 控制器将用于执行更新的策略。它包括为指示的策略执行更新所需的任何其他参数。
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
RollingUpdateStatefulSetStrategy 用于传达 RollingUpdateStatefulSetStrategyType 的参数。 |
|
|
Type 指示 StatefulSetUpdateStrategy 的类型。默认为 RollingUpdate。 可能的枚举值:- |
RollingUpdateStatefulSetStrategy 用于传达 RollingUpdateStatefulSetStrategyType 的参数。
对象
属性 | 类型 | 描述 |
---|---|---|
|
更新期间最多可以不可用的 Pod 数量。值可以是绝对数字(例如:5)或所需 Pod 的百分比(例如:10%)。绝对数字是通过向上取整从百分比计算得出的。这不能为 0。默认为 1。此字段为 alpha 级,只有启用 MaxUnavailableStatefulSet 功能的服务器才会遵守。该字段应用于 0 到 Replicas-1 范围内的所有 Pod。这意味着如果 0 到 Replicas-1 范围内有任何不可用的 Pod,它将计入 MaxUnavailable。 |
|
|
|
Partition 指示应为更新划分 StatefulSet 的序号。在滚动更新期间,将更新从序号 Replicas-1 到 Partition 的所有 Pod。从序号 Partition-1 到 0 的所有 Pod 保持不变。这有助于能够进行基于金丝雀的部署。默认值为 0。 |
StatefulSetStatus 表示 StatefulSet 的当前状态。
对象
replicas
属性 | 类型 | 描述 |
---|---|---|
|
|
此 statefulset 定向的可用 Pod(至少准备了 minReadySeconds)的总数。 |
|
|
collisionCount 是 StatefulSet 的哈希冲突计数。当 StatefulSet 控制器需要为最新的 ControllerRevision 创建名称时,它将此字段用作冲突避免机制。 |
|
|
表示 statefulset 当前状态的最新可用观察结果。 |
|
|
StatefulSetCondition 描述了特定时间点 statefulset 的状态。 |
|
|
currentReplicas 是 StatefulSet 控制器根据 currentRevision 指示的 StatefulSet 版本创建的 Pod 数量。 |
|
|
currentRevision 如果非空,则指示用于生成序列 [0,currentReplicas) 中 Pod 的 StatefulSet 版本。 |
|
|
observedGeneration 是为此 StatefulSet 观察到的最新一代。它对应于 StatefulSet 的 generation,该 generation 由 API 服务器在变异时更新。 |
|
|
readyReplicas 是为此 StatefulSet 创建的具有就绪状态的 Pod 数量。 |
|
|
replicas 是 StatefulSet 控制器创建的 Pod 数量。 |
|
|
updateRevision 如果非空,则指示用于生成序列 [replicas-updatedReplicas,replicas) 中 Pod 的 StatefulSet 版本。 |
|
|
updatedReplicas 是 StatefulSet 控制器根据 updateRevision 指示的 StatefulSet 版本创建的 Pod 数量。 |
提供以下 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 的状态
GET
列出或监视 StatefulSet 对象类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
GET
监视 StatefulSet 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
DELETE
删除 StatefulSet 集合
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
GET
列出或监视 StatefulSet 对象类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
POST
创建 StatefulSet
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的除最后一个重复字段之外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这将通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍将成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - 已创建 |
|
202 - 已接受 |
|
401 - 未授权 |
空 |
GET
监视 StatefulSet 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
参数 | 类型 | 描述 |
---|---|---|
|
|
StatefulSet 的名称 |
DELETE
删除 StatefulSet
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
202 - 已接受 |
|
401 - 未授权 |
空 |
GET
读取指定的 StatefulSet
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
PATCH
部分更新指定的 StatefulSet
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的除最后一个重复字段之外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这将通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍将成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - 已创建 |
|
401 - 未授权 |
空 |
PUT
替换指定的 StatefulSet
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的除最后一个重复字段之外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这将通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍将成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - 已创建 |
|
401 - 未授权 |
空 |
参数 | 类型 | 描述 |
---|---|---|
|
|
StatefulSet 的名称 |
GET
监视 StatefulSet 对象类型的更改。已弃用:请改用列表操作中的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
参数 | 类型 | 描述 |
---|---|---|
|
|
StatefulSet 的名称 |
GET
读取指定 StatefulSet 的状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
PATCH
部分更新指定 StatefulSet 的状态
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的除最后一个重复字段之外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这将通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍将成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - 已创建 |
|
401 - 未授权 |
空 |
PUT
替换指定 StatefulSet 的状态
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的除最后一个重复字段之外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这将通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍将成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 中的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - 已创建 |
|
401 - 未授权 |
空 |