PodDisruptionBudget是一个对象,用于定义对一组Pod可能造成的最大中断。
PodDisruptionBudget是一个对象,用于定义对一组Pod可能造成的最大中断。
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
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 |
|
|
|
PodDisruptionBudgetSpec是对PodDisruptionBudget的描述。 |
|
|
PodDisruptionBudgetStatus表示有关PodDisruptionBudget状态的信息。状态可能滞后于系统的实际状态。 |
PodDisruptionBudgetSpec是对PodDisruptionBudget的描述。
对象
属性 | 类型 | 描述 |
---|---|---|
|
如果驱逐后由“selector”选择的最多“maxUnavailable”个Pod不可用(即即使在没有被驱逐的Pod的情况下),则允许驱逐。例如,可以通过指定0来阻止所有自愿驱逐。这是一个与“minAvailable”互斥的设置。 |
|
|
如果驱逐后由“selector”选择的至少“minAvailable”个Pod仍然可用(即即使在没有被驱逐的Pod的情况下),则允许驱逐。例如,可以通过指定“100%”来阻止所有自愿驱逐。 |
|
|
对Pod的标签查询,这些Pod的驱逐由中断预算管理。空选择器将不匹配任何Pod,而空({}) 选择器将选择命名空间中的所有Pod。 |
|
|
|
UnhealthyPodEvictionPolicy定义了何时应考虑驱逐不健康Pod的标准。当前实现将健康Pod视为具有type="Ready",status="True"的status.conditions项的Pod。 有效的策略是IfHealthyBudget和AlwaysAllow。如果没有指定策略,则将使用默认行为,这对应于IfHealthyBudget策略。 IfHealthyBudget策略意味着正在运行的Pod(status.phase="Running"),但尚未健康的Pod只有在受保护的应用程序未中断(status.currentHealthy至少等于status.desiredHealthy)时才能被驱逐。健康Pod将受PDB驱逐的影响。 AlwaysAllow策略意味着所有正在运行的Pod(status.phase="Running"),但尚未健康的Pod都被视为已中断,并且无论是否满足PDB中的条件,都可以被驱逐。这意味着受中断应用程序影响的潜在运行Pod可能没有机会变得健康。健康Pod将受PDB驱逐的影响。 将来可能会添加其他策略。如果客户端在该字段中遇到无法识别的策略,则应禁止驱逐不健康的Pod。 此字段处于测试阶段。当启用特性门PDBUnhealthyPodEvictionPolicy(默认启用)时,驱逐API使用此字段。 可能的枚举值:- |
PodDisruptionBudgetStatus表示有关PodDisruptionBudget状态的信息。状态可能滞后于系统的实际状态。
对象
disruptionsAllowed
currentHealthy
desiredHealthy
expectedPods
属性 | 类型 | 描述 |
---|---|---|
|
Conditions 包含 PDB 的条件。中断控制器设置 DisruptionAllowed 条件。以下是 reason 字段的已知值(将来可能会添加其他原因):- SyncFailed:控制器遇到错误,无法计算允许的中断次数。因此不允许中断,并且条件的状态将为 False。- InsufficientPods:Pod 的数量等于或低于 PodDisruptionBudget 要求的数量。不允许中断,并且条件的状态将为 False。- SufficientPods:Pod 的数量超过 PodDisruptionBudget 要求的数量。条件将为 True,并且允许的中断次数由 disruptionsAllowed 属性提供。 |
|
|
|
当前健康 Pod 的数量 |
|
|
最小所需健康 Pod 数量 |
|
DisruptedPods 包含有关其驱逐已由 API 服务器驱逐子资源处理程序处理但尚未被 PodDisruptionBudget 控制器观察到的 Pod 的信息。从 API 服务器处理驱逐请求的时间到 PDB 控制器将 Pod 视为已标记为删除(或超时后)的时间,Pod 将在此映射中。映射中的键是 Pod 的名称,值是 API 服务器处理驱逐请求的时间。如果删除未发生并且 Pod 仍然存在,PodDisruptionBudget 控制器一段时间后会自动将其从列表中删除。如果一切顺利,此映射大部分时间都应为空。映射中大量条目可能表示 Pod 删除存在问题。 |
|
|
|
当前允许的 Pod 中断数量。 |
|
|
此中断预算计算的 Pod 总数 |
|
|
更新此 PDB 状态时观察到的最新世代。只有当 observedGeneration 等于 PDB 的对象世代时,DisruptionsAllowed 和其他状态信息才有效。 |
提供以下 API 端点
/apis/policy/v1/poddisruptionbudgets
GET
:列出或监视 PodDisruptionBudget 类型的对象
/apis/policy/v1/watch/poddisruptionbudgets
GET
:监视 PodDisruptionBudget 列表的单个更改。已弃用:改用列表操作中的“watch”参数。
/apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets
DELETE
:删除 PodDisruptionBudget 集合
GET
:列出或监视 PodDisruptionBudget 类型的对象
POST
:创建 PodDisruptionBudget
/apis/policy/v1/watch/namespaces/{namespace}/poddisruptionbudgets
GET
:监视 PodDisruptionBudget 列表的单个更改。已弃用:改用列表操作中的“watch”参数。
/apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}
DELETE
:删除 PodDisruptionBudget
GET
:读取指定的 PodDisruptionBudget
PATCH
:部分更新指定的 PodDisruptionBudget
PUT
:替换指定的 PodDisruptionBudget
/apis/policy/v1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}
GET
:监视 PodDisruptionBudget 类型对象的更改。已弃用:改用列表操作中的“watch”参数,并使用“fieldSelector”参数过滤为单个项目。
/apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}/status
GET
:读取指定的 PodDisruptionBudget 的状态
PATCH
:部分更新指定的 PodDisruptionBudget 的状态
PUT
:替换指定的 PodDisruptionBudget 的状态
GET
列出或监视 PodDisruptionBudget 类型的对象
HTTP 代码 | 响应体 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
GET
监视 PodDisruptionBudget 列表的单个更改。已弃用:改用列表操作中的“watch”参数。
HTTP 代码 | 响应体 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
DELETE
删除 PodDisruptionBudget 集合
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
HTTP 代码 | 响应体 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
GET
列出或监视 PodDisruptionBudget 类型的对象
HTTP 代码 | 响应体 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
POST
创建 PodDisruptionBudget
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为对象中每个被删除的未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果从对象中删除任何未知字段,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应体 |
---|---|
200 - OK |
|
201 - 已创建 |
|
202 - 已接受 |
|
401 - 未授权 |
空 |
GET
监视 PodDisruptionBudget 列表的单个更改。已弃用:改用列表操作中的“watch”参数。
HTTP 代码 | 响应体 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
参数 | 类型 | 描述 |
---|---|---|
|
|
PodDisruptionBudget 的名称 |
DELETE
删除 PodDisruptionBudget
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
HTTP 代码 | 响应体 |
---|---|
200 - OK |
|
202 - 已接受 |
|
401 - 未授权 |
空 |
GET
读取指定的 PodDisruptionBudget
HTTP 代码 | 响应体 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
PATCH
部分更新指定的 PodDisruptionBudget
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为对象中每个被删除的未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果从对象中删除任何未知字段,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
HTTP 代码 | 响应体 |
---|---|
200 - OK |
|
201 - 已创建 |
|
401 - 未授权 |
空 |
PUT
替换指定的 PodDisruptionBudget
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为对象中每个被删除的未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果从对象中删除任何未知字段,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应体 |
---|---|
200 - OK |
|
201 - 已创建 |
|
401 - 未授权 |
空 |
参数 | 类型 | 描述 |
---|---|---|
|
|
PodDisruptionBudget 的名称 |
GET
监听 PodDisruptionBudget 对象的变更。已弃用:请改用列表操作中的 'watch' 参数,并使用 'fieldSelector' 参数过滤为单个项目。
HTTP 代码 | 响应体 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
参数 | 类型 | 描述 |
---|---|---|
|
|
PodDisruptionBudget 的名称 |
GET
读取指定的 PodDisruptionBudget 的状态
HTTP 代码 | 响应体 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
PATCH
部分更新指定的 PodDisruptionBudget 的状态
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为对象中每个被删除的未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果从对象中删除任何未知字段,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
HTTP 代码 | 响应体 |
---|---|
200 - OK |
|
201 - 已创建 |
|
401 - 未授权 |
空 |
PUT
替换指定的 PodDisruptionBudget 的状态
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为对象中每个被删除的未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果从对象中删除任何未知字段,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应体 |
---|---|
200 - OK |
|
201 - 已创建 |
|
401 - 未授权 |
空 |