策略资源
1 - LimitRange
apiVersion: v1
import "k8s.io/api/core/v1"
LimitRange
LimitRange 设置名字空间中每个资源类别的资源用量限制。
apiVersion: v1
kind: LimitRange
metadata (ObjectMeta)
标准的对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (LimitRangeSpec)
spec 定义强制执行的限制。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
LimitRangeSpec
LimitRangeSpec 定义与类别匹配的资源的最小/最大使用限制。
limits ([]LimitRangeItem),必需
limits 是强制执行的 LimitRangeItem 对象的列表。
LimitRangeItem 定义与类别匹配的任意资源的最小/最大使用限制。
limits.type (string),必需
此限制应用到的资源的类型。
LimitRangeList
LimitRangeList 是 LimitRange 项的列表。
apiVersion: v1
kind: LimitRangeList
metadata (ListMeta)
标准的列表元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
items ([]LimitRange),必需
items 是 LimitRange 对象的列表。更多信息: https://kubernetes.io/zh-cn/docs/concepts/configuration/manage-resources-containers/
操作
get
读取指定的 LimitRange
HTTP 请求
GET /api/v1/namespaces/{namespace}/limitranges/{name}
参数
响应
200 (LimitRange): OK
401: Unauthorized
list
列出或监视 LimitRange 类别的对象
HTTP 请求
GET /api/v1/namespaces/{namespace}/limitranges
参数
namespace (路径参数): string,必需
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (LimitRangeList): OK
401: Unauthorized
list
列出或监视 LimitRange 类别的对象
HTTP 请求
GET /api/v1/limitranges
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (LimitRangeList): OK
401: Unauthorized
create
创建 LimitRange
HTTP 请求
POST /api/v1/namespaces/{namespace}/limitranges
参数
namespace (路径参数): string,必需
body: LimitRange,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (LimitRange): OK
201 (LimitRange): Created
202 (LimitRange): Accepted
401: Unauthorized
update
替换指定的 LimitRange
HTTP 请求
PUT /api/v1/namespaces/{namespace}/limitranges/{name}
参数
name (路径参数): string,必需
LimitRange 的名称
namespace (路径参数): string,必需
body: LimitRange,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (LimitRange): OK
201 (LimitRange): Created
401: Unauthorized
patch
部分更新指定的 LimitRange
HTTP 请求
PATCH /api/v1/namespaces/{namespace}/limitranges/{name}
参数
name (路径参数): string,必需
LimitRange 的名称
namespace (路径参数): string,必需
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (LimitRange): OK
201 (LimitRange): Created
401: Unauthorized
delete
删除 LimitRange
HTTP 请求
DELETE /api/v1/namespaces/{namespace}/limitranges/{name}
参数
name (路径参数): string,必需
LimitRange 的名称
namespace (路径参数): string,必需
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
删除 LimitRange 的集合
HTTP 请求
DELETE /api/v1/namespaces/{namespace}/limitranges
参数
namespace (路径参数): string,必需
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized
2 - ResourceQuota
apiVersion: v1
import "k8s.io/api/core/v1"
ResourceQuota
ResourceQuota 设置每个命名空间强制执行的聚合配额限制。
apiVersion: v1
kind: ResourceQuota
metadata (ObjectMeta)
标准的对象元数据。 更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (ResourceQuotaSpec)
spec 定义所需的配额。 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
status (ResourceQuotaStatus)
status 定义实际执行的配额及其当前使用情况。 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
ResourceQuotaSpec
ResourceQuotaSpec 定义为 Quota 强制执行所需的硬限制。
hard (map[string]Quantity)
hard 是每种指定资源所需的硬性限制集合。 更多信息: https://kubernetes.io/docs/concepts/policy/resource-quotas/
scopeSelector (ScopeSelector)
scopeSelector 也是一组过滤器的集合,和 scopes 类似, 必须匹配配额所跟踪的每个对象,但使用 ScopeSelectorOperator 结合可能的值来表示。 对于要匹配的资源,必须同时匹配 scopes 和 scopeSelector(如果在 spec 中设置了的话)。
scope 选择算符表示的是由限定范围的资源选择算符进行 逻辑与 计算得出的结果。
scopeSelector.matchExpressions ([]ScopedResourceSelectorRequirement)
按资源范围划分的范围选择算符需求列表。
限定范围的资源选择算符需求是一种选择算符,包含值、范围名称和将二者关联起来的运算符。
scopeSelector.matchExpressions.operator (string),必需
表示范围与一组值之间的关系。有效的运算符为 In、NotIn、Exists、DoesNotExist。
scopeSelector.matchExpressions.scopeName (string),必需
选择器所适用的范围的名称。
scopeSelector.matchExpressions.values ([]string)
字符串值数组。 如果操作符是 In 或 NotIn,values 数组必须是非空的。 如果操作符是 Exists 或 DoesNotExist,values 数组必须为空。 该数组将在策略性合并补丁操作期间被替换。
scopes ([]string)
一个匹配被配额跟踪的所有对象的过滤器集合。 如果没有指定,则默认匹配所有对象。
ResourceQuotaStatus
ResourceQuotaStatus 定义硬性限制和观测到的用量。
hard (map[string]Quantity)
hard 是每种指定资源所强制实施的硬性限制集合。 更多信息: https://kubernetes.io/docs/concepts/policy/resource-quotas/
used (map[string]Quantity)
used 是当前命名空间中所观察到的资源总用量。
ResourceQuotaList
ResourceQuotaList 是 ResourceQuota 列表。
apiVersion:v1
kind:ResourceQuotaList
metadata (ListMeta)
标准列表元数据。 更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
items ([]ResourceQuota),必需
items 是 ResourceQuota 对象的列表。 更多信息: https://kubernetes.io/docs/concepts/policy/resource-quotas/
操作
get
读取指定的 ResourceQuota
HTTP 请求
GET /api/v1/namespaces/{namespace}/resourcequotas/{name}
参数
name (路径参数): string, 必需
ResourceQuota 的名称
namespace (路径参数): string, 必需
pretty (查询参数): string
响应
200 (ResourceQuota): OK
401: Unauthorized
get
读取指定的 ResourceQuota 的状态
HTTP 请求
GET /api/v1/namespaces/{namespace}/resourcequotas/{name}/status
参数
name (路径参数): string, 必需
ResourceQuota 的名称
namespace (路径参数): string, 必需
pretty (查询参数): string
响应
200 (ResourceQuota): OK
401: Unauthorized
list
列出或监视 ResourceQuota 类别的对象
HTTP 请求
GET /api/v1/namespaces/{namespace}/resourcequotas
参数
namespace (路径参数): string, 必需
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (ResourceQuotaList): OK
401: Unauthorized
list
列出或监视 ResourceQuota 类别的对象
HTTP 请求
GET /api/v1/resourcequotas
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (ResourceQuotaList): OK
401: Unauthorized
create
创建一个 ResourceQuota
HTTP 请求
POST /api/v1/namespaces/{namespace}/resourcequotas
参数
namespace (路径参数): string, 必需
body: ResourceQuota, 必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (ResourceQuota): OK
201 (ResourceQuota): Created
202 (ResourceQuota): Accepted
401: Unauthorized
update
更新指定的 ResourceQuota
HTTP 请求
PUT /api/v1/namespaces/{namespace}/resourcequotas/{name}
参数
name (路径参数): string, 必需
ResourceQuota 的名称
namespace (路径参数): string, 必需
body: ResourceQuota, 必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (ResourceQuota): OK
201 (ResourceQuota): Created
401: Unauthorized
update
更新指定 ResourceQuota 的状态
HTTP 请求
PUT /api/v1/namespaces/{namespace}/resourcequotas/{name}/status
参数
name (路径参数): string, 必需
ResourceQuota 的名称
namespace (路径参数): string, 必需
body: ResourceQuota, 必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (ResourceQuota): OK
201 (ResourceQuota): Created
401: Unauthorized
patch
部分更新指定的 ResourceQuota
HTTP 请求
PATCH /api/v1/namespaces/{namespace}/resourcequotas/{name}
参数
name (路径参数): string, 必需
ResourceQuota 的名称
namespace (路径参数): string, 必需
body: Patch, 必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (ResourceQuota): OK
201 (ResourceQuota): Created
401: Unauthorized
patch
部分更新指定 ResourceQuota 的状态
HTTP 请求
PATCH /api/v1/namespaces/{namespace}/resourcequotas/{name}/status
参数
name (路径参数): string, 必需
ResourceQuota 的名称
namespace (路径参数): string, 必需
body: Patch, 必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (ResourceQuota): OK
201 (ResourceQuota): Created
401: Unauthorized
delete
删除 ResourceQuota
HTTP 请求
DELETE /api/v1/namespaces/{namespace}/resourcequotas/{name}
参数
name (路径参数): string, 必需
ResourceQuota 的名称
namespace (路径参数): string, 必需
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (ResourceQuota): OK
202 (ResourceQuota): Accepted
401: Unauthorized
deletecollection
删除 ResourceQuota 的集合
HTTP 请求
DELETE /api/v1/namespaces/{namespace}/resourcequotas
参数
namespace (路径参数): string, 必需
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized
3 - NetworkPolicy
apiVersion: networking.k8s.io/v1
import "k8s.io/api/networking/v1"
NetworkPolicy
NetworkPolicy 描述针对一组 Pod 所允许的网络流量。
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata (ObjectMeta)
标准的对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (NetworkPolicySpec)
spec 定义特定网络策略所需的所有信息.
status (NetworkPolicyStatus)
status 是 NetworkPolicy 的当前状态。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
NetworkPolicySpec
NetworkPolicySpec 定义特定 NetworkPolicy 所需的所有信息.
podSelector (LabelSelector), 必需
podSelector 选择此网络策略所适用的一组 Pod。一组 Ingress 入口策略将应用于此字段选择的所有 Pod。 多个网络策略可以选择同一组 Pod。 在这种情况下,这些列表条目的 Ingress 规则效果会被叠加。 此字段不是可选的,并且遵循标准标签选择算符语义。 空值的 podSelector 匹配此命名空间中的所有 Pod。
policyTypes ([]string)
NetworkPolicy 相关的规则类型列表。 有效选项为
[“Ingress”]
,[“Egress”]
或[“Ingress”, “Egress”]
。 如果不指定此字段,则默认值取决是否存在 Ingress 或 Egress 规则;规则里包含 Egress 部分的策略将会影响出站流量, 并且所有策略(无论它们是否包含 Ingress 部分)都将会影响 入站流量。 如果要仅定义出站流量策略,则必须明确指定[ "Egress" ]
。 同样,如果要定义一个指定拒绝所有出站流量的策略,则必须指定一个包含 “Egress” 的 policyTypes 值 (因为这样不包含 Egress 部分的策略,将会被默认为只有 [ "Ingress" ] )。 此字段在 1.8 中为 Beta。
ingress ([]NetworkPolicyIngressRule)
定义所选 Pod 的入站规则列表。在没有被任何 NetworkPolicy 选择到 Pod 的情况下(同时假定集群策略允许对应流量), 或者如果流量源是 Pod 的本地节点,或者流量与所有 NetworkPolicy 中的至少一个入站规则(Ingress) 匹配, 则进入 Pod 的流量是被允许的。如果此字段为空,则此 NetworkPolicy 不允许任何入站流量 (这种设置用来确保它所选择的 Pod 在默认情况下是被隔离的)。
NetworkPolicyIngressRule 定义 NetworkPolicySpec 的 podSelector 所选 Pod 的入站规则的白名单列表, 流量必须同时匹配 ports 和 from 。
ingress.from ([]NetworkPolicyPeer)
流量来源列表,列表中的来源可以访问被此规则选中的 Pod。此列表中的流量来源使用逻辑或操作进行组合。 如果此字段为空值或缺失(未设置), 则此规则匹配所有流量来源(也即允许所有入站流量)。如果此字段存在并且至少包含一项来源,则仅当流量与来自列表中的至少一项匹配时, 此规则才允许流量访问被选中的 Pod 集合。
NetworkPolicyPeer 描述了允许进出流量的对等点。 这个参数只允许某些字段组合
ingress.from.ipBlock (IPBlock)
IPBlock 针对特定的 IP CIDR 范围设置策略。如果设置了此字段,则不可以设置其他字段。
IPBlock 定义一个特定的 CIDR 范围(例如
192.168.1.1/24
、2001:db9::/64
), 来自这个 IP 范围的流量来源将会被允许访问与 NetworkPolicySpec 的 podSelector 匹配的 Pod 集合。 except 字段则设置应排除在此规则之外的 CIDR 范围。ingress.from.ipBlock.cidr (string), 必需
CIDR 是指定 IP 组块的字符串, 例如
"192.168.1.1/24"
或"2001:db9::/64"
。ingress.from.ipBlock.except ([]string)
except 是一个由 CIDR 范围组成的列表,其中指定的 CIDR 都应排除在此 IP 区块范围之外。 例如
"192.168.1.1/24"
或"2001:db9::/64"
。 如果 except 字段的值超出 ipBlock.cidr 的范围则被视为无效策略。
ingress.from.namespaceSelector (LabelSelector)
此选择器使用集群范围标签来选择特定的 Namespace。此字段遵循标准标签选择算符语义; 如果此字段存在但为空值,则会选择所有名字空间。
如果 podSelector 也被定义了, 那么 NetworkPolicyPeer 将选择那些同时满足 namespaceSelector 所选名字空间下 和 podSelector 规则匹配的 Pod。 反之选择 namespaceSelector 所选名字空间下所有的 Pod。
ingress.from.podSelector (LabelSelector)
这个标签选择算符负责选择 Pod。该字段遵循标准标签选择算符语义;如果字段存在但为空值,则选择所有 Pod。
如果 namespaceSelector 也被定义,那么 NetworkPolicyPeer 将选择那些同时满足 namespaceSelector 定义的名字空间下 和 podSelector 规则匹配的 Pod。 反之会在策略所在的名字空间中选择与 podSelector 匹配的 Pod。
ingress.ports ([]NetworkPolicyPort)
定义在此规则选中的 Pod 上应可访问的端口列表。此列表中的个项目使用逻辑或操作组合。如果此字段为空或缺失, 则此规则匹配所有端口(进入流量可访问任何端口)。 如果此字段存在并且包含至少一个有效值,则此规则仅在流量至少匹配列表中的一个端口时才允许访问。
ingress.ports.port (IntOrString)
给定协议上的端口。字段值可以是 Pod 上的数字或命名端口。如果未提供此字段,则匹配所有端口名和端口号。 如果定义了,则仅允许对给定的协议和端口的入口流量。
IntOrString 是一种可以包含 int32 或字符串值的类型。在 JSON 或 YAML 编组和解组中使用时,它会生成或使用内部类型。 例如,这允许你拥有一个可以接受名称或数字的 JSON 字段。
ingress.ports.endPort (int32)
如果设置了此字段,则表明策略应该允许 port 与 endPort 之间(包含二者)的所有端口。 如果未定义 port 或将 port 字段值为命名端口(字符串),则不可以使用 endPort 。 endPort 必须等于或大于 port 值。此功能是 Beta 阶段,默认启用。可以使用 “NetworkPolicyEndPort” 特性门控来禁用 endPort 。
ingress.ports.protocol (string)
流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果未指定,此字段默认为 TCP。
egress ([]NetworkPolicyEgressRule)
egress 定义所选 Pod 的出站规则的列表。如果没有 NetworkPolicy 选中指定 Pod(并且其他集群策略也允许出口流量), 或者在所有通过 podSelector 选中了某 Pod 的 NetworkPolicy 中,至少有一条出站规则与出站流量匹配, 则该 Pod 的出站流量是被允许的。 如果此字段为空,则此 NetworkPolicy 拒绝所有出站流量(这策略可以确保它所选中的 Pod 在默认情况下是被隔离的)。 egress 字段在 1.8 中为 Beta 级别。
NetworkPolicyEgressRule 针对被 NetworkPolicySpec 的 podSelector 所选中 Pod,描述其被允许的出站流量。 流量必须同时匹配 ports 和 to 设置。此类型在 1.8 中为 Beta 级别。
egress.to ([]NetworkPolicyPeer)
针对此规则所选择的 Pod 的出口流量的目的地列表。此列表中的目的地使用逻辑或操作进行组合。 如果此字段为空或缺失, 则此规则匹配所有目的地(流量不受目的地限制)。 如果此字段存在且至少包含一项目的地,则仅当流量与目标列表中的至少一个匹配时, 此规则才允许出口流量。
NetworkPolicyPeer 描述允许进出流量的对等点。这个对象只允许某些字段组合。
egress.to.ipBlock (IPBlock)
ipBlock 针对特定的 IP 区块定义策略。如果设置了此字段,则其他不可以设置其他字段。
IPBlock 描述一个特定的 CIDR 范围(例如
192.168.1.1/24
、2001:db9::/64
), 与 NetworkPolicySpec 的 podSelector 匹配的 Pod 将被允许连接到这个 IP 范围,作为其出口流量目的地。 except 字段则设置了不被此规则影响的 CIDR 范围。egress.to.ipBlock.cidr (string), 必需
CIDR 是用来表达 IP 组块的字符串,例如
"192.168.1.1/24"
或"2001:db9::/64"
。egress.to.ipBlock.except ([]string)
except 定义不应包含在 ipBlock 内的 CIDR 范围列表。例如
"192.168.1.1/24"
或"2001:db9::/64"
。 如果 except 的值超出 ipBlock.cidr 的范围则被拒绝。
egress.to.namespaceSelector (LabelSelector)
此选择算符使用集群范围标签来选择特定的名字空间。该字段遵循标准标签选择算符语义;如果字段存在但为空值,那会选择所有名字空间。
如果 egress.to.podSelector 也被定义了, 那么 NetworkPolicyPeer 将选择那些同时满足 namespaceSelector 指定的名字空间下 和 podSelector 规则匹配的 Pod。 反之选择 namespaceSelector 指定的名字空间下所有的 Pod。
egress.to.podSelector (LabelSelector)
这个标签选择器负责选择一组 Pod。该字段遵循标准标签选择算符语义; 如果字段存在但为空值,则选择所有 Pod。
如果 egress.to.namespaceSelector 也被定义,则 NetworkPolicyPeer 将选择 namespaceSelector 所指定的名字空间下 和 podSelector 规则匹配的 Pod。 反之会在策略所属的名字空间中选择与 podSelector 匹配的 Pod。
egress.ports ([]NetworkPolicyPort)
出站流量目的地的端口列表。此列表中的各个项目使用逻辑或操作进行组合。如果此字段为空或缺失, 则此规则匹配所有端口(可访问出口流量目的地的任何端口)。 如果此字段存在并且包含至少一个有效值, 则此规则仅在流量与列表中的至少一个端口匹配时才允许访问。
NetworkPolicyPort 定义出口流量目的地的端口
egress.ports.port (IntOrString)
给定协议上的端口。字段值可以是 Pod 上的数字或命名端口。如果未提供此字段,则匹配所有端口名和端口号。 如果定义此字段,则仅允许针对给定的协议和端口的出站流量。
IntOrString 是一种可以包含 int32 或字符串值的类型。在 JSON 或 YAML 编组和解组中使用时,它会生成或使用内部类型。 例如,这允许你拥有一个可以接受名称或数字的 JSON 字段。
egress.ports.endPort (int32)
如果设置了 endPort,则用来指定策略所允许的从 port 到 endPort 的端口范围(包含边界值)。 如果未设置 port 或 port 字段值为端口名称(字符串),则不可以指定 endPort。 endPort 必须等于或大于 port 值。此功能是 Beta 阶段,默认被启用。可以使用 “NetworkPolicyEndPort” 特性门控来禁用 endPort 。
egress.ports.protocol (string)
流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果未指定,此字段默认为 TCP。
NetworkPolicyStatus
NetworkPolicyStatus 描述有关此 NetworkPolicy 的当前状态。
conditions ([]Condition)
补丁策略:根据
type
键执行合并操作Map:键 type 的唯一值将在合并期间被保留
conditions 包含描述此 NetworkPolicy 状态的 metav1.Condition 数组,即当前服务状态。
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, 则状况相对于实例的当前状态已过期。
NetworkPolicyList
NetworkPolicyList 是 NetworkPolicy 的集合。
apiVersion: networking.k8s.io/v1
kind: NetworkPolicyList
metadata (ListMeta)
标准的对象元数据。 更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata。
items ([]NetworkPolicy), 必需
items 是 NetworkPolicy 的列表。
操作
get
读取指定的 NetworkPolicy
HTTP 请求
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
参数
name (路径参数): string, 必需
NetworkPolicy 的名称。
namespace (路径参数): string, 必需
pretty (查询参数): string
响应
200 (NetworkPolicy): OK
401: Unauthorized
get
读取指定的 NetworkPolicy 的状态
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}/status
参数
name (路径参数): string, 必需
NetworkPolicy 的名称。
namespace (路径参数): string, 必需
pretty (查询参数): string
响应
200 (NetworkPolicy): OK
401: Unauthorized
list
列出或监视 NetworkPolicy 类型的对象
HTTP 请求
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
参数
namespace (路径参数): string, 必需
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (NetworkPolicyList): OK
401: Unauthorized
list
列出或监视 NetworkPolicy 类
HTTP Request
GET /apis/networking.k8s.io/v1/networkpolicies
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (NetworkPolicyList): OK
401: Unauthorized
create
创建 NetworkPolicy
HTTP 请求
POST /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
参数
namespace (路径参数): string, 必需
body: NetworkPolicy, 必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (NetworkPolicy): OK
201 (NetworkPolicy): Created
202 (NetworkPolicy): Accepted
401: Unauthorized
update
替换指定的 NetworkPolicy
HTTP 请求
PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
参数
name (路径参数): string, 必需
NetworkPolicy 的名称。
namespace (路径参数): string, 必需
body: NetworkPolicy, 必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (NetworkPolicy): OK
201 (NetworkPolicy): Created
401: Unauthorized
update
替换指定的 NetworkPolicy 的状态
HTTP 请求
PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}/status
参数
name (路径参数): string, 必需
NetworkPolicy 的名称。
namespace (路径参数): string, 必需
body: NetworkPolicy, 必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (NetworkPolicy): OK
201 (NetworkPolicy): Created
401: Unauthorized
patch
部分更新指定的 NetworkPolicy
HTTP 请求
PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
参数
name (路径参数): string, 必需
NetworkPolicy 的名称。
namespace (路径参数): string, 必需
body: Patch, 必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (in query): boolean
pretty (查询参数): string
响应
200 (NetworkPolicy): OK
201 (NetworkPolicy): Created
401: Unauthorized
patch
部分更新指定的 NetworkPolicy 的状态
HTTP 请求
PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}/status
参数
name (路径参数): string, 必需
NetworkPolicy 的名称。
namespace (路径参数): string, 必需
body: Patch, 必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (in query): boolean
pretty (查询参数): string
响应
200 (NetworkPolicy): OK
201 (NetworkPolicy): Created
401: Unauthorized
delete
删除 NetworkPolicy
HTTP 请求
DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
参数
name (路径参数): string, 必需
name of the NetworkPolicy
namespace (路径参数): string, 必需
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
删除 NetworkPolicy 的集合
HTTP 请求
DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
参数
namespace (路径参数): string, 必需
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized
4 - PodDisruptionBudget
apiVersion: policy/v1
import "k8s.io/api/policy/v1"
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 是对 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 表示有关此 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 是 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 的列表。
操作
get
读取指定的 PodDisruptionBudget
HTTP 请求
GET /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}
参数
name (路径参数): string, 必需
PodDisruptionBudget 的名称。
namespace (路径参数): string, 必需
pretty (查询参数): string
响应
200 (PodDisruptionBudget): OK
401: Unauthorized
get
读取指定 PodDisruptionBudget 的状态
HTTP 请求
GET /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}/status
参数
name (路径参数): string, 必需
PodDisruptionBudget 的名称。
namespace (路径参数): string, 必需
pretty (查询参数): string
响应
200 (PodDisruptionBudget): OK
401: Unauthorized
list
列出或监视 PodDisruptionBudget 类型的对象
HTTP 请求
GET /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets
参数
namespace (路径参数): string, 必需
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (PodDisruptionBudgetList): OK
401: Unauthorized
list
列出或监视 PodDisruptionBudget 类型的对象
HTTP 请求
GET /apis/policy/v1/poddisruptionbudgets
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (PodDisruptionBudgetList): OK
401: Unauthorized
create
创建一个 PodDisruptionBudget
HTTP 请求
POST /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets
参数
namespace (路径参数): string, 必需
- body: PodDisruptionBudget, 必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
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, 必需
- body: PodDisruptionBudget, 必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
响应
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, 必需
- body: PodDisruptionBudget, 必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
响应
200 (PodDisruptionBudget): OK
201 (PodDisruptionBudget): Created
401: Unauthorized
patch
部分更新指定的 PodDisruptionBudget
HTTP 请求
PATCH /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}
参数
name (路径参数): string, 必需
PodDisruptionBudget 的名称
namespace (路径参数): string, 必需
- body: Patch, 必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
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, 必需
- body: Patch, 必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (PodDisruptionBudget): OK
201 (PodDisruptionBudget): Created
401: Unauthorized
delete
删除 PodDisruptionBudget
HTTP 请求
DELETE /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}
参数
name (路径参数): string, 必需
PodDisruptionBudget 的名称。
namespace (路径参数): string, 必需
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
删除 PodDisruptionBudget 的集合
HTTP Request
DELETE /apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets
参数
namespace (路径参数): string, 必需
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized
5 - PodSecurityPolicy v1beta1
apiVersion: policy/v1beta1
import "k8s.io/api/policy/v1beta1"
PodSecurityPolicy
PodSecurityPolicy 对影响到安全上下文的请求能力进行治理,而安全上下文可以应用到 Pod 和容器上。 在 1.21 中已被弃用。
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata (ObjectMeta)
标准的对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (PodSecurityPolicySpec)
spec 定义强制执行的策略。
PodSecurityPolicySpec
PodSecurityPolicySpec 定义强制执行的策略。
runAsUser (RunAsUserStrategyOptions),必需
runAsUser 是一种策略,它将规定允许为 runAsUser 设置的值。
RunAsUserStrategyOptions 定义策略类型和用于创建该策略的任意选项。
runAsUser.rule (string),必需
rule 是一种策略,它将规定允许为 runAsUser 设置的值。
runAsUser.ranges ([]IDRange)
ranges 是可以使用的 UID 的允许范围。 如果你要强制使用某个确定 UID,则应提供起点值和终点值相同的范围设定。 对于 mustRunAs 而言是必需的。
runAsUser.ranges.max (int64),必需
max 是范围的终点,该值包含在此范围内。
runAsUser.ranges.min (int64),必需
min 是范围的起点,该值包含在此范围内。
runAsGroup (RunAsGroupStrategyOptions)
runAsGroup 是一种策略,它将规定可以为 runAsGroup 设置的值。 如果省略此字段,则 Pod 的 runAsGroup 可以取任何值。 此字段要求启用
RunAsGroup
特性门控。RunAsGroupStrategyOptions 定义策略类型和用于创建该策略的任意选项。
runAsGroup.rule (string),必需
rule 是一种策略,它将规定可以为 runAsGroup 设置的值。
runAsGroup.ranges ([]IDRange)
ranges 是可以使用的 GID 的范围。 如果你要强制使用某个确定的 GID,则可提供起点和终点相同的范围设定。 对于 mustRunAs 而言是必需的。
runAsGroup.ranges.max (int64),必需
max 是范围的终点,该值包含在此范围内。
runAsGroup.ranges.min (int64),必需
min 是范围的起点,该值包含在此范围内。
fsGroup (FSGroupStrategyOptions),必需
fsGroup 是一种策略,它将规定 SecurityContext 将使用哪个 fs 组。
FSGroupStrategyOptions 定义策略类型和用于创建该策略的任意选项。
fsGroup.ranges ([]IDRange)
ranges 是 fs 组的允许范围。 如果你要强制使用某个确定的 fs 组,则应提供起点和终点相同的范围设定。 对于 mustRunAs 而言是必需的。
fsGroup.ranges.max (int64),必需
max 是范围的终点,该值包含在此范围内。
fsGroup.ranges.min (int64),必需
min 是范围的起点,该值包含在此范围内。
fsGroup.rule (string)
rule 是一种策略,它将规定 SecurityContext 中使用哪个 FSGroup。
supplementalGroups (SupplementalGroupsStrategyOptions),必需
supplementalGroups 是一种策略,它将规定 SecurityContext 将使用哪个补充组。
SupplementalGroupsStrategyOptions 定义策略类型和用于创建该策略的任意选项。
supplementalGroups.ranges ([]IDRange)
ranges 是补充组的允许范围。 如果你要强制使用固定的某个补充组,则应提供起点和终点相同的范围设定。 对于 mustRunAs 而言是必需的。
supplementalGroups.ranges.max (int64),必需
max 是范围的终点,该值包含在此范围内。
supplementalGroups.ranges.min (int64),必需
min 是范围的起点,该值包含在此范围内。
supplementalGroups.rule (string)
rule 是一种策略,它将规定 SecurityContext 中使用哪个补充组。
seLinux (SELinuxStrategyOptions),必需
seLinux 是一种策略,它将规定可以设置的标签集合。
SELinuxStrategyOptions 定义策略类型和用于创建该策略的任意选项。
seLinux.rule (string),必需
rule 是一种策略,它将规定可以设置的标签集合。
seLinux.seLinuxOptions (SELinuxOptions)
seLinuxOptions 是运行所必需的。对于 mustRunAs 而言是必需的。更多信息: https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/security-context/
seLinux.seLinuxOptions.level (string)
level 是应用到容器的 SELinux 级别标签。
seLinux.seLinuxOptions.role (string)
role 是应用到容器的 SELinux 角色标签。
seLinux.seLinuxOptions.type (string)
type 是应用到容器的 SELinux 类型标签。
seLinux.seLinuxOptions.user (string)
user 是应用到容器的 SELinux 用户标签。
readOnlyRootFilesystem (boolean)
readOnlyRootFilesystem 设为 true 时将强制容器使用只读根文件系统来运行。 如果容器明确请求以非只读根文件系统来运行,则 PSP 应拒绝该 Pod。 如果设置为 false,则如果愿意,容器可以以只读根文件系统来运行,但不是必须使用只读根文件系统。
privileged (boolean)
privileged 决定 Pod 是否可以请求以特权模式运行。
allowPrivilegeEscalation (boolean)
allowPrivilegeEscalation 决定 Pod 是否可以请求允许提升特权。如果未指定,则默认为 true。
defaultAllowPrivilegeEscalation (boolean)
defaultAllowPrivilegeEscalation 控制一个进程是否可以获得比其父进程更多权限的默认设置。
allowedCSIDrivers ([]AllowedCSIDriver)
allowedCSIDrivers 是允许使用的内联 CSI 驱动列表,这些驱动必须被显式嵌入到 Pod 规约中。 空值表示任何 CSI 驱动都可以用于内联临时卷。这是一个 beta 字段, 只有 API 服务器启用 CSIInlineVolume 特性门控,才会使用此字段。
AllowedCSIDriver 表示允许使用的单个内联 CSI 驱动。
allowedCSIDrivers.name (string),必需
name 是 CSI 驱动的注册名称。
allowedCapabilities ([]string)
allowedCapabilities 是可以请求添加到容器的权能列表。 这个字段中的权能可以由 Pod 作者自行添加。 你不得同时在 allowedCapabilities 和 requiredDropCapabilities 中列出同一个权能。
requiredDropCapabilities ([]string)
requiredDropCapabilities 是将从容器中丢弃的权能。这些权能需要被丢弃,且不能添加。
defaultAddCapabilities ([]string)
defaultAddCapabilities 是默认被添加到容器的权能集,除非 Pod 规约特意丢弃该权能。 你不可以同时在 defaultAddCapabilities 和 requiredDropCapabilities 中列出同一个权能。 此处添加的权能是被隐式允许的,不必包括在 allowedCapabilities 列表中。
allowedFlexVolumes ([]AllowedFlexVolume)
allowedFlexVolumes 是允许设置的 FlexVolume 卷的列表。 空或 nil 值表示可以使用所有 FlexVolume。 只有在 “volumes” 字段中允许使用 Flexvolume 卷时,此参数才有效。
AllowedFlexVolume 表示允许使用的单个 Flexvolume。
allowedFlexVolumes.driver (string),必需
driver 是 FlexVolume 驱动的名称。
allowedHostPaths ([]AllowedHostPath)
allowedHostPaths 是允许使用的主机路径的列表。空表示可以使用所有主机路径。
allowedHostPath 定义将按 Pod 使用的策略启用的主机卷条件。它要求定义路径前缀。
allowedHostPaths.pathPrefix (string)
pathPrefix 是主机卷必须匹配的路径前缀。 此字段不支持
*
。使用主机路径检验路径前缀时,会裁剪掉尾部的斜线。例如:
/foo
将允许/foo
、/foo/
和/foo/bar
。/foo
将不允许/food
或/etc/foo
。
allowedHostPaths.readOnly (boolean)
当设置为 true 时,仅当所有与 pathPrefix 匹配的主机卷的卷挂载均为 readOnly 时,才允许使用。
allowedProcMountTypes ([]string)
AllowedProcMountTypes 是允许使用的 ProcMountType 的列表。 空表或 nil 表示仅可以使用 DefaultProcMountType。 此字段要求启用 ProcMountType 特性门控。
allowedUnsafeSysctls ([]string)
allowedUnsafeSysctls 是明确允许的不安全 sysctl 的列表,默认为空。 每个条目要么是一个普通的 sysctl 名称,要么以 “*” 结尾, 在后面这种情况下字符串值被视为所允许的 sysctl 的前缀。 单个
*
意味着允许所有不安全的 sysctl。 Kubelet 必须显式列出所有被允许的、不安全的 sysctl,以防被拒绝。例如
foo/*
允许foo/bar
、foo/baz
等。 例如foo.*
允许foo.bar
、foo.baz
等。
forbiddenSysctls ([]string)
forbiddenSysctls 是被明确禁止的 sysctl 的列表,默认为空。 每个条目要么是一个普通的 sysctl 名称,要么以
*
结尾, 以*
结尾的字符串值表示被禁止的 sysctl 的前缀。 单个*
意味着禁止所有 sysctl。例如
foo/*
禁止foo/bar
、foo/baz
等。 例如foo.*
禁止foo.bar
、foo.baz
等。
hostIPC (boolean)
hostIPC 决定此策略是否允许在 Pod 规约中使用 hostIPC。
hostNetwork (boolean)
hostNetwork 决定此策略是否允许在 Pod 规约中使用 hostNetwork。
hostPID (boolean)
hostPID 决定此策略是否允许在 Pod 规约中使用 hostPID。
hostPorts ([]HostPortRange)
hostPorts 决定允许暴露哪些主机端口范围。
HostPortRange 定义将按 Pod 使用的策略启用的主机端口范围。它要求同时定义起点和终点。
hostPorts.max (int32),必需
max 是范围的终点,该值包含在此范围内。
hostPorts.min (int32),必需
min 是范围的起点,该值包含在此范围内。
runtimeClass (RuntimeClassStrategyOptions)
runtimeClass 是一种策略,它将规定 Pod 所被允许的 RuntimeClass。 如果省略此字段,则 Pod 的 runtimeClassName 将不受限制。 该字段的实施取决于被启用的 RuntimeClass 特性门控。
RuntimeClassStrategyOptions 定义一种策略,它将规定 Pod 所被允许的 RuntimeClass。
runtimeClass.allowedRuntimeClassNames ([]string),必需
allowedRuntimeClassNames 是可以在 Pod 中指定的 runtimeClass 名称的列表。
*
值意味着允许任何 runtimeClass 值,并且如果设置了*
,则它必须是唯一的列表项。 空列表要求不能设置 runtimeClassName 字段。runtimeClass.defaultRuntimeClassName (string)
defaultRuntimeClassName 是要在 Pod 中设置的默认 runtimeClassName。 该默认值必须被 allowedRuntimeClassNames 列表所允许。nil 值不会改变 Pod 设置。
volumes ([]string)
volumes 是所允许的卷插件的列表。空的列表意味着不可以使用卷。要允许所有卷,你可以使用
*
。
PodSecurityPolicyList
PodSecurityPolicyList 是 PodSecurityPolicy 对象的列表。
apiVersion: policy/v1beta1
kind: PodSecurityPolicyList
metadata (ListMeta)
标准的列表元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]PodSecurityPolicy),必需
items 是 PodSecurityPolicy 对象的列表。
操作
get
读取指定的 PodSecurityPolicy
HTTP 请求
GET /apis/policy/v1beta1/podsecuritypolicies/{name}
参数
name (路径参数): string,必需
PodSecurityPolicy 的名称
pretty (查询参数): string
响应
200 (PodSecurityPolicy): OK
401: Unauthorized
list
列出或监视 PodSecurityPolicy 类别的对象
HTTP 请求
GET /apis/policy/v1beta1/podsecuritypolicies
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (PodSecurityPolicyList): OK
401: Unauthorized
create
创建 PodSecurityPolicy
HTTP 请求
POST /apis/policy/v1beta1/podsecuritypolicies
参数
body: PodSecurityPolicy,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (PodSecurityPolicy): OK
201 (PodSecurityPolicy): Created
202 (PodSecurityPolicy): Accepted
401: Unauthorized
update
替换指定的 PodSecurityPolicy
HTTP 请求
PUT /apis/policy/v1beta1/podsecuritypolicies/{name}
参数
name (路径参数): string,必需
PodSecurityPolicy 的名称
body: PodSecurityPolicy,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (PodSecurityPolicy): OK
201 (PodSecurityPolicy): Created
401: Unauthorized
patch
部分更新指定的 PodSecurityPolicy
HTTP 请求
PATCH /apis/policy/v1beta1/podsecuritypolicies/{name}
参数
name (路径参数): string,必需
PodSecurityPolicy 的名称
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (PodSecurityPolicy): OK
201 (PodSecurityPolicy): Created
401: Unauthorized
delete
删除 PodSecurityPolicy
HTTP 请求
DELETE /apis/policy/v1beta1/podsecuritypolicies/{name}
参数
name (路径参数): string,必需
PodSecurityPolicy 的名称
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (PodSecurityPolicy): OK
202 (PodSecurityPolicy): Accepted
401: Unauthorized
deletecollection
删除 PodSecurityPolicy 的集合
HTTP 请求
DELETE /apis/policy/v1beta1/podsecuritypolicies
参数
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized