From 1b81199f8b30698c0aacd19dd645b3a1b858df21 Mon Sep 17 00:00:00 2001
From: yy <1827641139@qq.com>
Date: Mon, 11 Jul 2022 19:16:55 +0800
Subject: [PATCH] [zh-cn]Update
content/zh-cn/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1.md
[zh-cn]Update content/zh-cn/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1.md
[zh-cn]Update content/zh-cn/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1.md
[zh-cn]Update content/zh-cn/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1.md
[zh-cn]Update content/zh-cn/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1.md
---
.../pod-disruption-budget-v1.md | 1347 +++++++++++++++++
1 file changed, 1347 insertions(+)
create mode 100644 content/zh-cn/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1.md
diff --git a/content/zh-cn/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1.md b/content/zh-cn/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1.md
new file mode 100644
index 0000000000..9590a2f649
--- /dev/null
+++ b/content/zh-cn/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1.md
@@ -0,0 +1,1347 @@
+---
+api_metadata:
+ apiVersion: "policy/v1"
+ import: "k8s.io/api/policy/v1"
+ kind: "PodDisruptionBudget"
+content_type: "api_reference"
+description: "PodDisruptionBudget 是一个对象,用于定义可能对一组 Pod 造成的最大干扰。"
+title: "PodDisruptionBudget"
+weight: 4
+---
+
+
+
+`apiVersion: policy/v1`
+
+`import "k8s.io/api/policy/v1"`
+
+## PodDisruptionBudget {#PodDisruptionBudget}
+
+
+PodDisruptionBudget 是一个对象,用于定义可能对一组 Pod 造成的最大干扰。
+
+
+
+- **apiVersion**: policy/v1
+
+- **kind**: PodDisruptionBudget
+
+
+- **metadata** (}}">ObjectMeta)
+
+ 标准的对象元数据。
+ 更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata。
+
+
+- **spec** (}}">PodDisruptionBudgetSpec)
+
+ PodDisruptionBudget 预期行为的规约。
+
+
+
+- **status** (}}">PodDisruptionBudgetStatus)
+
+ 此 PodDisruptionBudget 的最近观测状态。
+
+## PodDisruptionBudgetSpec {#PodDisruptionBudgetSpec}
+
+
+PodDisruptionBudgetSpec 是对 PodDisruptionBudget 的描述。
+
+
+
+
+
+- **maxUnavailable** (IntOrString)
+
+ 如果 “selector” 所选中的 Pod 中最多有 “maxUnavailable” Pod 在驱逐后不可用(即去掉被驱逐的 Pod 之后),则允许驱逐。
+ 例如,可以通过将此字段设置为 0 来阻止所有自愿驱逐。此字段是与 “minAvailable” 互斥的设置。
+
+
+ IntOrString 是一种可以包含 int32 或字符串数值的类型。在 JSON 或 YAML 编组和解组时,
+ 会生成或使用内部类型。例如,此类型允许你定义一个可以接受名称或数字的 JSON 字段。
+
+
+
+- **minAvailable** (IntOrString)
+
+ 如果 “selector” 所选中的 Pod 中,至少 “minAvailable” 个 Pod 在驱逐后仍然可用(即去掉被驱逐的 Pod 之后),则允许驱逐。
+ 因此,你可以通过将此字段设置为 “100%” 来禁止所有自愿驱逐。
+
+
+ IntOrString 是一种可以包含 int32 或字符串数值的类型。在 JSON 或 YAML 编组和解组时,
+ 会生成或使用内部类型。例如,此类型允许你定义一个可以接受名称或数字的 JSON 字段。
+
+
+
+- **selector** (}}">LabelSelector)
+
+ 标签查询,用来选择其驱逐由干扰预算来管理的 Pod 集合。
+ 选择算符为 null 时将不会匹配任何 Pod,而空 ({}) 选择算符将选中名字空间内的所有 Pod。
+
+## PodDisruptionBudgetStatus {#PodDisruptionBudgetStatus}
+
+
+PodDisruptionBudgetStatus 表示有关此 PodDisruptionBudget 状态的信息。状态可能会反映系统的实际状态。
+
+
+
+
+
+- **currentHealthy** (int32), 必需
+
+ 当前健康 Pod 的数量。
+
+
+
+- **desiredHealthy** (int32), 必需
+
+ 健康 Pod 的最小期望值。
+
+
+
+- **disruptionsAllowed** (int32), 必需
+
+ 当前允许的 Pod 干扰计数。
+
+- **conditions** ([]Condition)
+
+
+
+ **补丁策略:根据 `type` 键执行合并操作**
+
+ **Map:键 type 的唯一值将在合并期间被保留**
+
+ conditions 包含 PDB 的状况。干扰控制器会设置 DisruptionAllowed 状况。
+ 以下是 reason 字段的已知值(将来可能会添加其他原因):
+
+ - SyncFailed:控制器遇到错误并且无法计算允许的干扰计数。因此不允许任何干扰,且状况的状态将变为 False。
+ - InsufficientPods:Pod 的数量只能小于或等于 PodDisruptionBudget 要求的数量。
+ 不允许任何干扰,且状况的状态将是 False。
+ - SufficientPods:Pod 个数超出 PodDisruptionBudget 所要求的阈值。
+ 此状况为 True 时,基于 disruptsAllowed 属性确定所允许的干扰数目。
+
+
+
+
+ Condition 包含此 API 资源当前状态的一个方面的详细信息。
+
+
+
+ - **conditions.lastTransitionTime** (Time), 必需
+
+ lastTransitionTime 是状况最近一次从一种状态转换到另一种状态的时间。
+ 这种变化通常出现在下层状况发生变化的时候。如果无法了解下层状况变化,使用 API 字段更改的时间也是可以接受的。
+
+
+ Time 是 time.Time 的包装器,它支持对 YAML 和 JSON 的正确编组。
+ time 包的许多工厂方法提供了包装器。
+
+
+
+ - **conditions.message** (string), 必需
+
+ message 是一条人类可读的消息,指示有关转换的详细信息。它可能是一个空字符串。
+
+
+
+ - **conditions.reason** (string), 必需
+
+ reason 包含一个程序标识符,指示状况最后一次转换的原因。
+ 特定状况类型的生产者可以定义该字段的预期值和含义,以及这些值是否可被视为有保证的 API。
+ 该值应该是 CamelCase 字符串。此字段不能为空。
+
+
+
+ - **conditions.status** (string), 必需
+
+ 状况的状态为 True、False、Unknown 之一。
+
+
+
+ - **conditions.type** (string), 必需
+
+ CamelCase 或 foo.example.com/CamelCase 形式的状况类型。
+
+
+
+ - **conditions.observedGeneration** (int64)
+
+ observedGeneration 表示设置状况时所基于的 .metadata.generation。
+ 例如,如果 .metadata.generation 当前为 12,但 .status.conditions[x].observedGeneration 为 9,
+ 则状况相对于实例的当前状态已过期。
+
+
+
+- **disruptedPods** (map[string]Time)
+
+ disruptedPods 包含有关 Pod 的一些信息,这些 Pod 的驱逐操作已由 API 服务器上的 eviction 子资源处理程序处理,
+ 但尚未被 PodDisruptionBudget 控制器观察到。
+ 从 API 服务器处理驱逐请求到 PDB 控制器看到该 Pod 已标记为删除(或超时后),Pod 将记录在此映射中。
+ 映射中的键名是 Pod 的名称,键值是 API 服务器处理驱逐请求的时间。
+ 如果删除没有发生并且 Pod 仍然存在,PodDisruptionBudget 控制器将在一段时间后自动将 Pod 从列表中删除。
+ 如果一切顺利,此映射大部分时间应该是空的。映射中的存在大量条目可能表明 Pod 删除存在问题。
+
+
+
+ Time 是 time.Time 的包装器,它支持对 YAML 和 JSON 的正确编组。
+ time 包的许多工厂方法提供了包装器。
+
+
+
+- **observedGeneration** (int64)
+
+ 更新此 PDB 状态时观察到的最新一代。
+ DisruptionsAllowed 和其他状态信息仅在 observedGeneration 等于 PDB 的对象的代数时才有效。
+
+## PodDisruptionBudgetList {#PodDisruptionBudgetList}
+
+
+
+PodDisruptionBudgetList 是 PodDisruptionBudget 的集合。
+
+
+
+- **apiVersion**: policy/v1
+
+- **kind**: PodDisruptionBudgetList
+
+
+
+- **metadata** (}}">ListMeta)
+
+ 标准的对象元数据。
+ 更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata。
+
+
+- **items** ([]}}">PodDisruptionBudget), 必需
+
+ items 是 PodDisruptionBudgets 的列表。
+
+
+
+## 操作 {#Operations}
+
+
+
+
+
+### `get` 读取指定的 PodDisruptionBudget
+
+#### HTTP 请求
+
+GET /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}
+
+
+#### 参数
+
+
+- **name** (**路径参数**): string, 必需
+
+ PodDisruptionBudget 的名称。
+
+
+- **namespace** (**路径参数**): string, 必需
+
+ }}">namespace
+
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+
+#### 响应
+
+200 (}}">PodDisruptionBudget): OK
+
+401: Unauthorized
+
+
+### `get` 读取指定 PodDisruptionBudget 的状态
+
+#### HTTP 请求
+
+GET /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}/status
+
+
+#### 参数
+
+
+- **name** (**路径参数**): string, 必需
+
+ PodDisruptionBudget 的名称。
+
+
+- **namespace** (**路径参数**): string, 必需
+
+ }}">namespace
+
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+
+响应
+
+200 (}}">PodDisruptionBudget): OK
+
+401: Unauthorized
+
+
+### `list` 列出或监视 PodDisruptionBudget 类型的对象
+
+#### HTTP 请求
+
+GET /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets
+
+
+#### 参数
+
+
+- **namespace** (**路径参数**): string, 必需
+
+ }}">namespace
+
+
+- **allowWatchBookmarks** (**查询参数**): boolean
+
+ }}">allowWatchBookmarks
+
+
+- **continue** (**查询参数**): string
+
+ }}">continue
+
+
+- **fieldSelector** (**查询参数**): string
+
+ }}">fieldSelector
+
+
+- **labelSelector** (**查询参数**): string
+
+ }}">labelSelector
+
+
+- **limit** (**查询参数**): integer
+
+ }}">limit
+
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+
+- **resourceVersion** (**查询参数**): string
+
+ }}">resourceVersion
+
+
+- **resourceVersionMatch** (**查询参数**): string
+
+ }}">resourceVersionMatch
+
+
+- **timeoutSeconds** (**查询参数**): integer
+
+ }}">timeoutSeconds
+
+
+- **watch** (**查询参数**): boolean
+
+ }}">watch
+
+
+#### 响应
+
+200 (}}">PodDisruptionBudgetList): OK
+
+401: Unauthorized
+
+
+### `list` 列出或监视 PodDisruptionBudget 类型的对象
+
+#### HTTP 请求
+
+GET /apis/policy/v1/poddisruptionbudgets
+
+
+#### 参数
+
+
+- **allowWatchBookmarks** (**查询参数**): boolean
+
+ }}">allowWatchBookmarks
+
+
+- **continue** (**查询参数**): string
+
+ }}">continue
+
+
+- **fieldSelector** (**查询参数**): string
+
+ }}">fieldSelector
+
+
+- **labelSelector** (**查询参数**): string
+
+ }}">labelSelector
+
+
+- **limit** (**查询参数**): integer
+
+ }}">limit
+
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+
+- **resourceVersion** (**查询参数**): string
+
+ }}">resourceVersion
+
+
+- **resourceVersionMatch** (**查询参数**): string
+
+ }}">resourceVersionMatch
+
+
+- **timeoutSeconds** (**查询参数**): integer
+
+ }}">timeoutSeconds
+
+
+- **watch** (**查询参数**): boolean
+
+ }}">watch
+
+
+#### 响应
+
+200 (}}">PodDisruptionBudgetList): OK
+
+401: Unauthorized
+
+
+### `create` 创建一个 PodDisruptionBudget
+#### HTTP 请求
+
+POST /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets
+
+
+#### 参数
+
+
+- **namespace** (**路径参数**): string, 必需
+
+ }}">namespace
+
+
+- **body**: }}">PodDisruptionBudget,
+必需
+
+
+- **dryRun** (**查询参数**): string
+
+ }}">dryRun
+
+
+- **fieldManager** (**查询参数**): string
+
+ }}">fieldManager
+
+
+- **fieldValidation** (**查询参数**): string
+
+ }}">fieldValidation
+
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+
+#### 响应
+
+200 (}}">PodDisruptionBudget): OK
+
+201 (}}">PodDisruptionBudget): Created
+
+202 (}}">PodDisruptionBudget): Accepted
+
+401: Unauthorized
+
+
+### `update` 替换指定的 PodDisruptionBudget
+
+#### HTTP 请求
+
+PUT /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}
+
+
+#### 参数
+
+
+- **name** (**路径参数**): string, 必需
+
+ PodDisruptionBudget 的名称。
+
+
+- **namespace** (**路径参数**): string, 必需
+
+ }}">namespace
+
+
+- **body**: }}">PodDisruptionBudget,
+必需
+
+
+- **dryRun** (**查询参数**): string
+
+ }}">dryRun
+
+
+- **fieldManager** (**查询参数**): string
+
+ }}">fieldManager
+
+
+- **fieldValidation** (**查询参数**): string
+
+ }}">fieldValidation
+
+
+
+
+#### 响应
+
+200 (}}">PodDisruptionBudget): OK
+
+201 (}}">PodDisruptionBudget): Created
+
+401: Unauthorized
+
+
+### `update` 替换指定 PodDisruptionBudget 的状态
+
+#### HTTP 请求
+
+PUT /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}/status
+
+
+#### 参数
+
+
+- **name** (**路径参数**): string, 必需
+
+ PodDisruptionBudget 的名称。
+
+
+- **namespace** (**路径参数**): string, 必需
+
+ }}">namespace
+
+
+- **body**: }}">PodDisruptionBudget,
+必需
+
+
+- **dryRun** (**查询参数**): string
+
+ }}">dryRun
+
+
+- **fieldManager** (**查询参数**): string
+
+ }}">fieldManager
+
+
+- **fieldValidation** (**查询参数**): string
+
+ }}">fieldValidation
+
+
+
+
+#### 响应
+
+200 (}}">PodDisruptionBudget): OK
+
+201 (}}">PodDisruptionBudget): Created
+
+401: Unauthorized
+
+
+### `patch` 部分更新指定的 PodDisruptionBudget
+#### HTTP 请求
+
+PATCH /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}
+
+
+#### 参数
+
+
+- **name** (**路径参数**): string, 必需
+
+ PodDisruptionBudget 的名称
+
+
+- **namespace** (**路径参数**): string, 必需
+
+ }}">namespace
+
+
+
+- **body**: }}">Patch, 必需
+
+
+- **dryRun** (**查询参数**): string
+
+ }}">dryRun
+
+
+- **fieldManager** (**查询参数**): string
+
+ }}">fieldManager
+
+
+- **fieldValidation** (**查询参数**): string
+
+ }}">fieldValidation
+
+
+- **force** (**查询参数**): boolean
+
+ }}">force
+
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+
+#### 响应
+
+200 (}}">PodDisruptionBudget): OK
+
+201 (}}">PodDisruptionBudget): Created
+
+401: Unauthorized
+
+
+### `patch` 部分更新指定 PodDisruptionBudget 的状态
+#### HTTP 请求
+
+PATCH /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}/status
+
+
+#### 参数
+
+
+- **name** (**路径参数**): string, 必需
+
+ PodDisruptionBudget 的名称。
+
+
+- **namespace** (**路径参数**): string, 必需
+
+ }}">namespace
+
+
+- **body**: }}">Patch, 必需
+
+
+- **dryRun** (**查询参数**): string
+
+ }}">dryRun
+
+
+- **fieldManager** (**查询参数**): string
+
+ }}">fieldManager
+
+
+- **fieldValidation** (**查询参数**): string
+
+ }}">fieldValidation
+
+
+- **force** (**查询参数**): boolean
+
+ }}">force
+
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+
+#### 响应
+
+200 (}}">PodDisruptionBudget): OK
+
+201 (}}">PodDisruptionBudget): Created
+
+401: Unauthorized
+
+
+### `delete` 删除 PodDisruptionBudget
+
+#### HTTP 请求
+
+DELETE /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}
+
+
+#### 参数
+
+
+- **name** (**路径参数**): string, 必需
+
+ PodDisruptionBudget 的名称。
+
+
+- **namespace** (**路径参数**): string, 必需
+
+ }}">namespace
+
+- **body**: }}">DeleteOptions
+
+
+- **dryRun** (**查询参数**): string
+
+ }}">dryRun
+
+
+- **gracePeriodSeconds** (**查询参数**): integer
+
+ }}">gracePeriodSeconds
+
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+
+- **propagationPolicy** (**查询参数**): string
+
+ }}">propagationPolicy
+
+
+#### 响应
+
+200 (}}">Status): OK
+
+202 (}}">Status): Accepted
+
+401: Unauthorized
+
+
+### `deletecollection` 删除 PodDisruptionBudget 的集合
+
+#### HTTP Request
+
+DELETE /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets
+
+
+#### 参数
+
+
+- **namespace** (**路径参数**): string, 必需
+
+ }}">namespace
+
+- **body**: }}">DeleteOptions
+
+
+- **continue** (**查询参数**): string
+
+ }}">continue
+
+
+- **dryRun** (**查询参数**): string
+
+ }}">dryRun
+
+
+- **fieldSelector** (**查询参数**): string
+
+ }}">fieldSelector
+
+
+- **gracePeriodSeconds** (**查询参数**): integer
+
+ }}">gracePeriodSeconds
+
+
+- **labelSelector** (**查询参数**): string
+
+ }}">labelSelector
+
+
+- **limit** (**查询参数**): integer
+
+ }}">limit
+
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+
+- **propagationPolicy** (**查询参数**): string
+
+ }}">propagationPolicy
+
+
+- **resourceVersion** (**查询参数**): string
+
+ }}">resourceVersion
+
+
+- **resourceVersionMatch** (**查询参数**): string
+
+ }}">resourceVersionMatch
+
+
+- **timeoutSeconds** (**查询参数**): integer
+
+ }}">timeoutSeconds
+
+
+#### 响应
+
+200 (}}">Status): OK
+
+401: Unauthorized
+