网络 API


OpenShift Container Platform 4.19

网络 API 的参考指南

Red Hat OpenShift Documentation Team

摘要

本文档描述了 OpenShift Container Platform 网络 API 对象及其详细规格。

第 1 章 网络 API

1.1. ClusterUserDefinedNetwork [k8s.ovn.org/v1]

描述
ClusterUserDefinedNetwork 描述在命名空间间共享网络的网络请求。
类型
object

1.2. AdminNetworkPolicy [policy.networking.k8s.io/v1alpha1]

描述
AdminNetworkPolicy 是一个集群级别资源,属于 AdminNetworkPolicy API。
类型
object

1.3. AdminPolicyBasedExternalRoute [k8s.ovn.org/v1]

描述
AdminPolicyBasedExternalRoute 是一个 CRD,集群管理员可以为外部网关 IP 配置策略,应用到所选命名空间中的所有 pod。来自属于集群外部命名空间的 pod 的出口流量通过这些外部网关 IP 路由。
类型
object
描述
BaselineAdminNetworkPolicy 是一个集群级别资源,属于 AdminNetworkPolicy API。
类型
object

1.5. CloudPrivateIPConfig [cloud.network.openshift.io/v1]

描述

CloudPrivateIPConfig 将私有 IP 地址分配给与云虚拟机关联的主 NIC。这可以通过指定 IP 应该分配给的 IP 和 Kubernetes 节点来完成。此 CRD 旨在由管理集群网络的网络插件使用。spec 端代表网络插件请求的状态,状态端表示此 CRD 控制器执行的当前状态。没有用户修改它的权限,如果 cluster-admin 决定编辑它,则在下次网络插件协调对象时,其更改将被覆盖。注: CR 的名称必须指定请求的私有 IP 地址(可以是 IPv4 或 IPv6)。

兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。

类型
object

1.6. EgressFirewall [k8s.ovn.org/v1]

描述
EgressFirewall 描述了命名空间的当前出口防火墙。系统将针对 pod 的命名空间 EgressFirewall 中的每个 EgressFirewallRule 检查从 pod 到集群外的 IP 地址的流量。如果没有规则匹配(或不存在 EgressFirewall),则默认允许流量。
类型
object

1.7. EgressIP [k8s.ovn.org/v1]

描述
EgressIP 是一个 CRD,用户可以为其 spec 定义来自与 EgressIP 资源匹配的 pod 的所有出口流量定义固定源 IP。
类型
object

1.8. EgressQoS [k8s.ovn.org/v1]

描述
egressqos 是一个 CRD,允许用户在其命名空间中为 pod 出口流量定义 DSCP 值到指定的 CIDR。来自这些 pod 的流量将根据命名空间的 EgressQoSRule 中的每个 EgressQoSRule 检查,如果存在与相关 DSCP 值匹配的流量。
类型
object

1.9. EgressService [k8s.ovn.org/v1]

描述
EgressService 是一个 CRD,允许用户请求来自对应 LoadBalancer 服务端点的所有 pod 的出口数据包的源 IP 是其入口 IP。另外,它允许用户请求来自作为 LoadBalancer 服务端点的所有 pod 的出口数据包,并使用与主服务不同的网络。
类型
对象

1.10. Endpoints [v1]

描述

端点是实施实际服务的端点集合。Example:

 Name: "mysvc",
 Subsets: [
   {
     Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}],
     Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}]
   },
   {
     Addresses: [{"ip": "10.10.3.3"}],
     Ports: [{"name": "a", "port": 93}, {"name": "b", "port": 76}]
   },
]
Copy to Clipboard Toggle word wrap
类型
对象

1.11. EndpointSlice [discovery.k8s.io/v1]

描述
EndpointSlice 代表实施服务的端点的子集。对于给定服务,可能有多个 EndpointSlice 对象,它们通过标签选择,必须加入来生成完整的端点。
类型
对象

1.12. EgressRouter [network.operator.openshift.io/v1]

描述

EgressRouter 是一种允许用户定义出口路由器的功能,充当 pod 和外部系统间的桥接。出口路由器运行一个服务,它将来自 pod 或一组 pod 的出口流量重定向到远程外部系统或每个配置的多个目的地。

它被 cluster-network-operator 使用。更具体地说,如果一个带有 <name> 的 EgressRouter CR,CNO 将创建和管理: - 名为 <name> 的出口 pod - 名为 <name> 的出口 pod - 名为 <name> 的 NAD

兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。

EgressRouter 是单个 egressrouter pod 配置对象。

类型
object

1.13. GRPCRoute [gateway.networking.k8s.io/v1]

描述

GRPCRoute 提供路由 gRPC 请求的方法。这包括通过主机名、gRPC 服务、gRPC 方法或 HTTP/2 标头来匹配请求的能力。过滤器可用于指定其他处理步骤。后端指定匹配请求的位置。

GRPCRoute 在网关 API 内受扩展支持。在以下规格中,单词 "MUST" 表示支持 GRPCRoute 的实施必须符合指定要求,但不支持此路由类型的实施不需要遵循要求,除非明确指示。

支持带有 HTTPS ProtocolTypeGRPCRoute 的实施必须接受 HTTP/2 连接,而无需从 HTTP/1.1 进行初始升级,例如通过 ALPN。如果实现不支持此功能,则必须将受影响监听器的 "Accepted" 条件设置为 "False",原因为 "UnsupportedProtocol"。实施 MAY 也接受来自 HTTP/1 的 HTTP/2 连接。

支持带有 HTTP ProtocolTypeGRPCRoute 的实现,在没有从 HTTP/1.1 进行初始升级的情况下,通过明文 TCP (h2c、 https://www.rfc-editor.org/rfc/rfc7540#section-3.4)支持 HTTP/2。如果实现不支持此功能,则必须将受影响监听器的 "Accepted" 条件设置为 "False",原因为 "UnsupportedProtocol"。实施 MAY 还接受从 HTTP/1 升级的 HTTP/2 连接,即无需事先了解。

类型
object

1.14. Gateway [gateway.networking.k8s.io/v1]

描述
gateway 通过将 Listeners 绑定到一组 IP 地址来代表服务流量处理基础架构的实例。
类型
object

1.15. GatewayClass [gateway.networking.k8s.io/v1]

描述

GatewayClass 描述了可供用户创建网关资源的网关类。

建议将此资源用作网关的模板。这意味着网关是基于创建 GatewayClass 的状态,并且对 GatewayClass 或关联参数的更改不会传播到现有网关。这个建议旨在限制 GatewayClass 或相关参数的更改。如果实现选择将 GatewayClass 更改传播到现有网关,则实施中必须明确记录该网关。

每当一个或多个网关使用 GatewayClass 时,实现 SHOULD 会在关联的 GatewayClass 上添加 gateway-exists-finalizer.gateway.networking.k8s.io finalizer。这样可确保在使用时不会删除与网关关联的 GatewayClass。

GatewayClass 是一个集群级别资源。

类型
object

1.16. HTTPRoute [gateway.networking.k8s.io/v1]

描述
HTTPRoute 提供路由 HTTP 请求的方式。这包括按主机名、路径、标头或查询参数匹配请求的能力。过滤器可用于指定其他处理步骤。后端指定应该路由匹配的请求。
类型
对象

1.17. Ingress [networking.k8s.io/v1]

描述
Ingress 是允许入站连接访问后端定义的端点的规则集合。可将 Ingress 配置为向外部可访问的 URL 提供服务、负载均衡流量、终止 SSL、提供基于名称的虚拟主机等。
类型
对象

1.18. IngressClass [networking.k8s.io/v1]

描述
IngressClass 代表 Ingress 的类,由 Ingress Spec 引用。ingressclass.kubernetes.io/is-default-class 注解可以用来表示 IngressClass 应该被视为 default。当单个 IngressClass 资源将此注解设置为 true 时,没有指定类的新 Ingress 资源将分配此默认存储类。
类型
object

1.19. IPAMClaim [k8s.cni.cncf.io/v1alpha1]

描述
IPAMClaim 是 IPAMClaim API 的 Schema
类型
对象

1.20. IPPool [whereabouts.cni.cncf.io/v1alpha1]

描述
IPPool 是 ippools API 的 Schema
类型
object

1.21. MultiNetworkPolicy [k8s.cni.cncf.io/v1beta1]

描述
MultiNetworkPolicy 是一个 CRD 模式,为 net-attach-def 提供 NetworkPolicy 机制,该机制由 Network Plumbing Working Group 指定。MultiNetworkPolicy 与 Kubernetes NetworkPolicy 相同,请参阅 :https://kubernetes.io/docs/concepts/services-networking/network-policies/。
类型
对象

1.22. NetworkAttachmentDefinition [k8s.cni.cncf.io/v1]

描述
NetworkAttachmentDefinition 是 Network Plumbing Working Group 指定的 CRD 模式,用于表达将 pod 附加到一个或多个逻辑或物理网络的意图。更多信息: https://github.com/k8snetworkplumbingwg/multi-net-spec
类型
对象

1.23. NetworkPolicy [networking.k8s.io/v1]

描述
NetworkPolicy 描述一组 Pod 允许哪些网络流量
类型
object

1.24. NodeSlicePool [whereabouts.cni.cncf.io/v1alpha1]

描述
NodeSlicePool 是 nodesliceippools API 的 Schema
类型
object
描述
OverlappingRangeIPReservation 是 OverlappingRangeIPReservations API 的 Schema
类型
对象
描述

PodNetworkConnectivityCheck

兼容性级别 4:不提供兼容性,API 可能会因为任何原因而有所变化。这些功能不应由需要长期支持的应用程序使用。

类型
object

1.27. ReferenceGrant [gateway.networking.k8s.io/v1beta1]

描述

ReferenceGrant 识别其他命名空间中受信任的资源类型,这些资源在与策略相同的命名空间中引用指定种类的资源。

每个 ReferenceGrant 都可用于代表唯一的信任关系。其他 Reference Grants 可用于添加到其定义的命名空间的入站引用集合中。

网关 API 中的所有跨命名空间引用(跨命名空间网关附加除外)都需要参考人员。

ReferenceGrant 是运行时验证的形式,允许用户断言允许跨命名空间对象引用。支持 ReferenceGrant MUST 的实现不允许没有授权的跨命名空间引用,通过撤销授权的访问权限来响应删除授权。

类型
对象

1.28. Route [route.openshift.io/v1]

描述

通过路由,开发人员可以通过 HTTP (S)了解负载平衡和代理层通过公共 DNS 条目公开服务。路由可以进一步指定 TLS 选项和证书,或者指定路由器也应该接受 HTTP 和 HTTPS 流量的公共 CNAME。管理员通常将其路由器配置为在集群防火墙外可见,还可在服务内容上添加额外的安全性、缓存或流量控制。路由器通常直接与服务端点通信。

创建路由后,可能不会更改 host 字段。通常,路由器在解析冲突时使用带有给定主机的最旧的路由。

路由器受到额外的自定义,可以通过 annotations 字段支持其他控制。

由于管理员可以配置多个路由器,因此路由状态字段用于向客户端返回每个路由器下路由的名称和状态的信息。如果客户端选择重复的名称,例如,则使用路由状态条件来指示无法选择路由。

要在路由上启用 HTTP/2 ALPN,它需要自定义(非通配符)证书。这可防止客户端的连接并发,特别是 Web 浏览器。由于连接重新使用的风险,我们不支持使用默认证书的 HTTP/2 ALPN。没有其自身自定义证书的路由在前端或后端上都不会是启用了 HTTP/2 ALPN 的路由。

兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。

类型
对象

1.29. Service [v1]

描述
服务是一个由代理侦听的本地端口(如 mysql)组成的、指定软件服务的抽象概念,以及决定哪些 Pod 将通过代理发送的请求的选择器。
类型
object

1.30. UserDefinedNetwork [k8s.ovn.org/v1]

描述
UserDefinedNetwork 描述 Namespace 的网络请求。
类型
object

第 2 章 ClusterUserDefinedNetwork [k8s.ovn.org/v1]

描述
ClusterUserDefinedNetwork 描述在命名空间间共享网络的网络请求。
类型
object
必填
  • spec

2.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

ClusterUserDefinedNetworkSpec 定义 ClusterUserDefinedNetwork 的所需状态。

status

object

ClusterUserDefinedNetworkStatus 包含 ClusterUserDefinedNetwork 的观察状态。

2.1.1. .spec

描述
ClusterUserDefinedNetworkSpec 定义 ClusterUserDefinedNetwork 的所需状态。
类型
object
必填
  • namespaceSelector
  • network
Expand
属性类型描述

namespaceSelector

object

namespaceSelector 标签选择器,其命名空间网络应该可用。

network

object

Network 是用户定义的 spec

2.1.2. .spec.namespaceSelector

描述
namespaceSelector 标签选择器,其命名空间网络应该可用。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

2.1.3. .spec.namespaceSelector.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
array

2.1.4. .spec.namespaceSelector.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

2.1.5. .spec.network

描述
Network 是用户定义的 spec
类型
object
必填
  • topology
Expand
属性类型描述

layer2

object

Layer2 是 Layer2 拓扑配置。

layer3

object

Layer3 是 Layer3 拓扑配置。

localnet

object

localnet 是 Localnet 拓扑配置。

topology

string

拓扑描述了网络配置。

允许的值是 "Layer3", "Layer2" 和 "Localnet"。Layer3 拓扑会为每个节点创建一个第 2 层段,各自有不同的子网。第 3 层路由用于互连节点子网。Layer2 拓扑创建一个供所有节点共享的逻辑交换机。localnet 拓扑基于第 2 层拓扑,但也允许连接到现有的(配置)物理网络,为工作负载提供南北流量。

2.1.6. .spec.network.layer2

描述
Layer2 是 Layer2 拓扑配置。
类型
object
必填
  • role
Expand
属性类型描述

ipam

object

IPAM 部分包含与网络相关的 IPAM 配置。

joinSubnets

数组(字符串)

JoinSubnets 在 OVN 网络拓扑中使用。

双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。此字段仅允许"Primary"网络。不建议在不明确需要和了解 OVN 网络拓扑的情况下设置此字段。省略时,平台将选择一个合理的默认值,该默认值可能会随时间变化。

mtu

整数

MTU 是网络的最大传输单元。如果没有提供 MTU,则 OVN-Kubernetes 中全局配置的值(默认为 1400)用于网络。

role

string

Role 描述了 pod 中的 network 角色。

允许的值是 "Secondary"。二级网络只分配给使用 k8s.v1.cni.cncf.io/networks 注解来选择给定网络的 pod。

subnets

数组(字符串)

子网用于集群中的 pod 网络。双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。

格式应该与标准 CIDR 表示法匹配(例如 "10.128.0.0/16")。如果 ipam.modeDisabled,则必须省略此字段。

2.1.7. .spec.network.layer2.ipam

描述
IPAM 部分包含与网络相关的 IPAM 配置。
类型
object
Expand
属性类型描述

生命周期

string

生命周期控制 IP 地址管理生命周期。

唯一允许的值是 Persistent。设置后,OVN Kubernetes 分配的 IP 地址将保留在 ipamclaims.k8s.cni.cncf.io 对象中。如果请求,其他 pod 将重复使用这些 IP 地址。仅在 启用 模式时支持。

模式

string

模式 控制 OVN 管理 IP 配置的数量。启用 意味着 OVN-Kubernetes 会将 IP 配置应用到 SDN 基础架构,它还会将 IP 从所选子网分配给单个 pod。禁用 意味着 OVN-Kubernetes 将只分配 MAC 地址并提供第 2 层通信,允许用户为 pod 配置 IP 地址。disabled 仅适用于二级网络。禁用 IPAM 后,任何依赖于 IP 选择 pod 的 Kubernetes 功能将不再起作用(如网络策略、服务等)。此外,附加到这个网络的接口也会禁用 IP 端口安全性。默认为 已启用

2.1.8. .spec.network.layer3

描述
Layer3 是 Layer3 拓扑配置。
类型
object
必填
  • role
  • subnets
Expand
属性类型描述

joinSubnets

数组(字符串)

JoinSubnets 在 OVN 网络拓扑中使用。

双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。此字段仅允许"Primary"网络。不建议在不明确需要和了解 OVN 网络拓扑的情况下设置此字段。省略时,平台将选择一个合理的默认值,该默认值可能会随时间变化。

mtu

整数

MTU 是网络的最大传输单元。

如果没有提供 MTU,则 OVN-Kubernetes 中全局配置的值(默认为 1400)用于网络。

role

string

Role 描述了 pod 中的 network 角色。

允许的值是 "Primary" 和 "Secondary"。主网络会自动分配给在同一命名空间中创建的每个 pod。二级网络只分配给使用 k8s.v1.cni.cncf.io/networks 注解来选择给定网络的 pod。

subnets

数组

子网用于集群中的 pod 网络。

双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。给定子网被分成较小的子网。

subnets[]

object

 

2.1.9. .spec.network.layer3.subnets

描述

子网用于集群中的 pod 网络。

双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。给定子网被分成较小的子网。

类型
数组

2.1.10. .spec.network.layer3.subnets[]

描述
类型
object
必填
  • cidr
Expand
属性类型描述

cidr

string

CIDR 指定 L3Subnet,每个节点被分成较小的子网。

hostSubnet

整数

HostSubnet 指定每个节点的子网大小。

如果没有设置,则会自动分配。

2.1.11. .spec.network.localnet

描述
localnet 是 Localnet 拓扑配置。
类型
object
必填
  • physicalNetworkName
  • role
Expand
属性类型描述

excludeSubnets

数组(字符串)

excludeSubnets 是要从 子网 中指定 CIDR 中删除的 CIDR 列表。此列表中的 CIDR 必须包括在子网 . excludeSubnets 中指定的至少一个 子网 范围内。当省略没有 IP 地址时,子网 中指定的所有 IP 地址都可能会分配。格式应该与标准 CIDR 表示法匹配(例如 "10.128.0.0/16")。如果未设置 子网,或者 ipam.modeDisabled,则必须省略此字段。当 physicalNetworkName 指向具有保留 IP 地址(不应由 OVN-Kubernetes 分配)的网络的 OVS 网桥映射时,不会分配指定的 CIDR。例如:Given: subnets: "10.0.0.0/24", excludeSubnets: "10.0.0.200/30",不会为 pod 分配以下地址: '10.0.0.201,10.0.0.202

ipam

object

network 的 IPAM 配置。ipam 是可选的。省略时,必须指定 子网。当 ipam.modeDisabled 时,必须省略子网ipam.mode 控制 OVN 管理 IP 配置的数量。启用后,OVN-Kubernetes 会将 IP 配置应用到 SDN infra,并将所选子网的 IP 分配给 pod。当禁用 时,OVN-Kubernetes 只分配 MAC 地址并提供 layer2 通信,并允许用户在 pod 上配置 IP 地址。ipam.lifecycle 控制 IP 地址管理生命周期。当设置为 'Persistent' 时,分配的 IP 地址将保留在 ipamclaims.k8s.cni.cncf.io 对象中。对于虚拟机,在重启和迁移后,IP 地址将会被保留。当 ipam.modeEnabled 时支持。

mtu

整数

MTU 是网络的最大传输单元。mtu 是可选的。如果省略时,OVN-Kubernetes 中配置的值(默认为 localnet 拓扑)用于网络。IPv4 子网的最小值是 576,IPv6 子网的值是 1280。最大值为 65536。在场景 physicalNetworkName 指向配置了某些 MTU 设置的网络的 OVS 网桥映射中,此字段允许在 pod 接口上配置相同的 MTU,使 pod MTU 与网络 MTU 保持一致。堆栈中的错误对齐 MTU (例如: pod 具有 MTU X,节点 NIC 具有 MTU Y),可能会导致网络中断和性能不当。

physicalNetworkName

string

physicalNetworkName 指向节点上配置的 OVS 网桥映射的 network-name 需要。最小长度为 1,最大长度为 253,不能包含 ,: 字符。如果 OVS bridge-mapping 由带有 NodeNetworkConfigurationPolicy (NNCP)的 Kubernetes-nmstate 定义,此字段应指向 NNCP spec.desiredState.ovn.bridge-mappings 项的 localnet 值。

role

string

Role 描述了 pod 中需要的网络角色。控制 pod 接口是否充当主要还是次要。localnet 拓扑仅支持 Secondary。网络将分配给具有 k8s.v1.cni.cncf.io/networks 注解的 pod,以指向 subject。

subnets

数组(字符串)

子网是用于集群中此 localnet 网络中 pod 的子网列表。列表可以是 1 个 IPv4 子网、1 IPv6 子网或每个 IP 系列中的 1 个。设置后,OVN-Kubernetes 将指定 CIDR 的 IP 地址分配给连接的 pod,无需手动 IP 分配或依赖外部 IPAM 服务(如 DHCP 服务器)。子网是可选的。当省略 OVN-Kubernetes 时,不会自动分配 IP 地址。双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。格式应该与标准 CIDR 表示法匹配(例如 "10.128.0.0/16")。如果 ipam.modeDisabled,则必须省略此字段。当 physicalNetworkName 指向提供 IPAM 服务(如 DHCP 服务器)的网络的 OVS 网桥映射时,ipam.mode 应该设置为 Disabled。这会关闭 OVN-Kubernetes IPAM,并避免与此 localnet 网络上现有的 IPAM 服务冲突。

vlan

object

network 的 VLAN 配置。vlan.mode 是 VLAN 模式。当设置了 "Access" 时,OVN-Kubernetes 以访问模式配置网络逻辑交换机端口。vlan.access 是访问 VLAN 配置。vlan.access.id 是要在网络逻辑交换机端口上设置的 VLAN ID (VID)。在忽略底层网络默认 VLAN 时,将是可选的。设置后,OVN-Kubernetes 会将 VLAN 配置应用到 SDN infra 并连接到连接的 pod。

2.1.12. .spec.network.localnet.ipam

描述
network 的 IPAM 配置。ipam 是可选的。省略时,必须指定 子网。当 ipam.modeDisabled 时,必须省略子网ipam.mode 控制 OVN 管理 IP 配置的数量。启用后,OVN-Kubernetes 会将 IP 配置应用到 SDN infra,并将所选子网的 IP 分配给 pod。当禁用 时,OVN-Kubernetes 只分配 MAC 地址并提供 layer2 通信,并允许用户在 pod 上配置 IP 地址。ipam.lifecycle 控制 IP 地址管理生命周期。当设置为 'Persistent' 时,分配的 IP 地址将保留在 ipamclaims.k8s.cni.cncf.io 对象中。对于虚拟机,在重启和迁移后,IP 地址将会被保留。当 ipam.modeEnabled 时支持。
类型
object
Expand
属性类型描述

生命周期

string

生命周期控制 IP 地址管理生命周期。

唯一允许的值是 Persistent。设置后,OVN Kubernetes 分配的 IP 地址将保留在 ipamclaims.k8s.cni.cncf.io 对象中。如果请求,其他 pod 将重复使用这些 IP 地址。仅在 启用 模式时支持。

模式

string

模式 控制 OVN 管理 IP 配置的数量。启用 意味着 OVN-Kubernetes 会将 IP 配置应用到 SDN 基础架构,它还会将 IP 从所选子网分配给单个 pod。禁用 意味着 OVN-Kubernetes 将只分配 MAC 地址并提供第 2 层通信,允许用户为 pod 配置 IP 地址。disabled 仅适用于二级网络。禁用 IPAM 后,任何依赖于 IP 选择 pod 的 Kubernetes 功能将不再起作用(如网络策略、服务等)。此外,附加到这个网络的接口也会禁用 IP 端口安全性。默认为 已启用

2.1.13. .spec.network.localnet.vlan

描述
network 的 VLAN 配置。vlan.mode 是 VLAN 模式。当设置了 "Access" 时,OVN-Kubernetes 以访问模式配置网络逻辑交换机端口。vlan.access 是访问 VLAN 配置。vlan.access.id 是要在网络逻辑交换机端口上设置的 VLAN ID (VID)。在忽略底层网络默认 VLAN 时,将是可选的。设置后,OVN-Kubernetes 会将 VLAN 配置应用到 SDN infra 并连接到连接的 pod。
类型
object
必填
  • 模式
Expand
属性类型描述

access

object

访问是访问 VLAN 配置

模式

string

模式描述网络 VLAN 模式。允许的值是 "Access"。访问以访问模式设置网络逻辑交换机端口,具体取决于配置。

2.1.14. .spec.network.localnet.vlan.access

描述
访问是访问 VLAN 配置
类型
object
必填
  • id
Expand
属性类型描述

id

整数

ID 是要为网络设置的 VLAN ID (VID)。id 应高于 0,小于 4095。

2.1.15. .status

描述
ClusterUserDefinedNetworkStatus 包含 ClusterUserDefinedNetwork 的观察状态。
类型
object
Expand
属性类型描述

conditions

数组

指示 ClusterUserDefineNetwork 状态详情的条件对象片段。

conditions[]

object

condition 包含此 API 资源当前状态的一个方面的详细信息。

2.1.16. .status.conditions

描述
指示 ClusterUserDefineNetwork 状态详情的条件对象片段。
类型
array

2.1.17. .status.conditions[]

描述
condition 包含此 API 资源当前状态的一个方面的详细信息。
类型
object
必填
  • lastTransitionTime
  • message
  • reason
  • status
  • type
Expand
属性类型描述

lastTransitionTime

字符串

lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。

message

字符串

Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。

observedGeneration

整数

observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。

reason

字符串

reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。

status

字符串

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

type

字符串

CamelCase 或 foo.example.com/CamelCase 中的条件类型。

2.2. API 端点

可用的 API 端点如下:

  • /apis/k8s.ovn.org/v1/clusteruserdefinednetworks

    • DELETE: 删除 ClusterUserDefinedNetwork 集合
    • GET: 列出 ClusterUserDefinedNetwork 类型的对象
    • POST :创建 ClusterUserDefinedNetwork
  • /apis/k8s.ovn.org/v1/clusteruserdefinednetworks/{name}

    • DELETE :删除 ClusterUserDefinedNetwork
    • GET :读取指定的 ClusterUserDefinedNetwork
    • PATCH: 部分更新指定的 ClusterUserDefinedNetwork
    • PUT :替换指定的 ClusterUserDefinedNetwork
  • /apis/k8s.ovn.org/v1/clusteruserdefinednetworks/{name}/status

    • GET :指定 ClusterUserDefinedNetwork 的读取状态
    • PATCH: 部分更新指定 ClusterUserDefinedNetwork 的状态
    • PUT :替换指定 ClusterUserDefinedNetwork 的状态

2.2.1. /apis/k8s.ovn.org/v1/clusteruserdefinednetworks

HTTP 方法
DELETE
描述
删除 ClusterUserDefinedNetwork 集合
Expand
表 2.1. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出 ClusterUserDefinedNetwork 类型的对象
Expand
表 2.2. HTTP 响应
HTTP 代码响应正文

200 - OK

ClusterUserDefinedNetworkList schema

401 - Unauthorized

HTTP 方法
POST
描述
创建 ClusterUserDefinedNetwork
Expand
表 2.3. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 2.4. 主体参数
参数类型描述

正文(body)

ClusterUserDefinedNetwork schema

 
Expand
表 2.5. HTTP 响应
HTTP 代码响应正文

200 - OK

ClusterUserDefinedNetwork schema

201 - Created

ClusterUserDefinedNetwork schema

202 - Accepted

ClusterUserDefinedNetwork schema

401 - Unauthorized

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

name

string

ClusterUserDefinedNetwork 的名称

HTTP 方法
DELETE
描述
删除 ClusterUserDefinedNetwork
Expand
表 2.7. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 2.8. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的 ClusterUserDefinedNetwork
Expand
表 2.9. HTTP 响应
HTTP 代码响应正文

200 - OK

ClusterUserDefinedNetwork schema

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 ClusterUserDefinedNetwork
Expand
表 2.10. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 2.11. HTTP 响应
HTTP 代码响应正文

200 - OK

ClusterUserDefinedNetwork schema

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 ClusterUserDefinedNetwork
Expand
表 2.12. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 2.13. 主体参数
参数类型描述

正文(body)

ClusterUserDefinedNetwork schema

 
Expand
表 2.14. HTTP 响应
HTTP 代码响应正文

200 - OK

ClusterUserDefinedNetwork schema

201 - Created

ClusterUserDefinedNetwork schema

401 - Unauthorized

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

name

string

ClusterUserDefinedNetwork 的名称

HTTP 方法
GET
描述
指定 ClusterUserDefinedNetwork 的读取状态
Expand
表 2.16. HTTP 响应
HTTP 代码响应正文

200 - OK

ClusterUserDefinedNetwork schema

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 ClusterUserDefinedNetwork 的状态
Expand
表 2.17. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 2.18. HTTP 响应
HTTP 代码响应正文

200 - OK

ClusterUserDefinedNetwork schema

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 ClusterUserDefinedNetwork 的状态
Expand
表 2.19. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 2.20. 主体参数
参数类型描述

正文(body)

ClusterUserDefinedNetwork schema

 
Expand
表 2.21. HTTP 响应
HTTP 代码响应正文

200 - OK

ClusterUserDefinedNetwork schema

201 - Created

ClusterUserDefinedNetwork schema

401 - Unauthorized

描述
AdminNetworkPolicy 是一个集群级别资源,属于 AdminNetworkPolicy API。
类型
object
必填
  • metadata
  • spec

3.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

指定 AdminNetworkPolicy 所需的行为。

status

object

Status 是实现要报告的状态。

3.1.1. .spec

描述
指定 AdminNetworkPolicy 所需的行为。
类型
object
必填
  • priority
  • subject
Expand
属性类型描述

egress

数组

Egress 是要应用到所选 pod 的 Egress 规则列表。每个 ANP 实例中允许总计 100 个规则。单个 ANP 对象(所有共享优先级)中的出口规则的相对优先级将由编写规则的顺序决定。因此,在出口规则顶部出现的规则将具有最高的优先级。没有出口规则的 ANP 不会影响出口流量。

支持:Core

egress[]

object

AdminNetworkPolicyEgressRule 描述了对来自 AdminNetworkPolicy 的 Subject 字段选择的 pod 的特定流量集合执行的操作。<network-policy-api:experimental:validation>

ingress

数组

Ingress 是要应用到所选 pod 的 Ingress 规则列表。每个 ANP 实例中允许总计 100 个规则。单个 ANP 对象(所有共享优先级)中的 ingress 规则的相对优先级将由编写规则的顺序决定。因此,在入口规则顶部出现的规则将具有最高的优先级。没有入口规则的 ANP 不会影响入口流量。

支持:Core

ingress[]

object

AdminNetworkPolicyIngressRule 描述了对由 AdminNetworkPolicy 的 Subject 字段选择的特定流量集合执行的操作。

priority

整数

priority 是从 0 到 1000 的值。优先级值较低的规则具有更高的优先级,并在优先级较高的规则之前检查。所有 AdminNetworkPolicy 规则的优先级高于 NetworkPolicy 或 BaselineAdminNetworkPolicy 规则,如果两个 ANP 对象具有相同的优先级,则行为未定义。

支持:Core

subject

object

subject 定义此 AdminNetworkPolicy 应用到的 pod。请注意,主机网络的 pod 不包含在主题选择中。

支持:Core

3.1.2. .spec.egress

描述

Egress 是要应用到所选 pod 的 Egress 规则列表。每个 ANP 实例中允许总计 100 个规则。单个 ANP 对象(所有共享优先级)中的出口规则的相对优先级将由编写规则的顺序决定。因此,在出口规则顶部出现的规则将具有最高的优先级。没有出口规则的 ANP 不会影响出口流量。

支持:Core

类型
array

3.1.3. .spec.egress[]

描述
AdminNetworkPolicyEgressRule 描述了对来自 AdminNetworkPolicy 的 Subject 字段选择的 pod 的特定流量集合执行的操作。<network-policy-api:experimental:validation>
类型
object
必填
  • action
Expand
属性类型描述

action

string

action 指定此规则对匹配流量的影响。目前支持以下操作: Allow: 允许所选流量(即使被 NetworkPolicy 拒绝拒绝) Deny: 拒绝所选流量 Pass: 指示所选流量跳过任何剩余的 ANP 规则,然后将执行传递给选择 pod 的任何 NetworkPolicies。如果任何 NetworkPolicies 没有选择 pod,则执行会被传递给选择 pod 的任何 BaselineAdminNetworkPolicies。

支持:Core

name

string

name 是此规则的标识符,长度不超过 100 个字符。实现应使用此字段来帮助改进任何应用的 AdminNetworkPolicies 的可观察性、可读性和错误报告。

支持:Core

ports

数组

端口允许根据端口和协议匹配流量。此字段是传出出口流量的目标端口列表。如果没有设置 Ports,则规则不会通过端口过滤流量。

支持:Core

ports[]

object

AdminNetworkPolicyPort 描述了如何选择 pod 上的网络端口。必须设置一个字段。

数组

to 是此规则应用到的目的地列表。如果任何 AdminNetworkPolicyEgressPeer 与传出流量的目的地匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。

支持:Core

to[]

object

AdminNetworkPolicyEgressPeer 定义了一个允许流量的对等点。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。

3.1.4. .spec.egress[].ports

描述

端口允许根据端口和协议匹配流量。此字段是传出出口流量的目标端口列表。如果没有设置 Ports,则规则不会通过端口过滤流量。

支持:Core

类型
array

3.1.5. .spec.egress[].ports[]

描述
AdminNetworkPolicyPort 描述了如何选择 pod 上的网络端口。必须设置一个字段。
类型
object
Expand
属性类型描述

namedPort

string

NamedPort 根据名称选择一个 pod 上的端口。

支持:扩展

<network-policy-api:experimental>

portNumber

object

port 根据数字选择 pod 上的端口。

支持:Core

portRange

object

PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。

支持:Core

3.1.6. .spec.egress[].ports[].portNumber

描述

port 根据数字选择 pod 上的端口。

支持:Core

类型
object
必填
  • port
  • protocol
Expand
属性类型描述

port

整数

number 定义网络端口值。

支持:Core

protocol

string

协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。

支持:Core

3.1.7. .spec.egress[].ports[].portRange

描述

PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。

支持:Core

类型
object
必填
  • end
  • start
Expand
属性类型描述

end

整数

end 定义端口范围末尾的网络端口,End 值必须大于 Start。

支持:Core

protocol

string

协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。

支持:Core

start

整数

start 定义端口范围起始的网络端口,Start 值必须小于 End。

支持:Core

3.1.8. .spec.egress[].to

描述

to 是此规则应用到的目的地列表。如果任何 AdminNetworkPolicyEgressPeer 与传出流量的目的地匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。

支持:Core

类型
array

3.1.9. .spec.egress[].to[]

描述
AdminNetworkPolicyEgressPeer 定义了一个允许流量的对等点。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。
类型
object
Expand
属性类型描述

命名空间

object

命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

networks

数组(字符串)

网络定义了通过 CIDR 块选择对等点的方法。这用于表示集群外部的实体,这些实体不能被 pod、命名空间和节点对等点选择,但请注意,集群内部流量也会针对该规则进行检查。因此,如果您允许或拒绝到 "0.0.0.0/0" 的流量,这将允许或拒绝所有 IPv4 pod 到 pod 流量。如果您不想这样做,请在网络规则前添加传递所有 pod 流量的规则。

Networks 中的每个项目都应该以 CIDR 格式提供,且应为 IPv4 或 IPv6,如 "10.0.0.0/8" 或 "fd00::/8"。

网络可以最多指定 25 个 CIDR。

支持:扩展

<network-policy-api:experimental>

节点

object

节点定义了选择集群中一组节点的方法。此字段遵循标准标签选择器语义;如果存在,它会选择所有节点。

支持:扩展

<network-policy-api:experimental>

pods

object

Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

3.1.10. .spec.egress[].to[].namespaces

描述

命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

3.1.11. .spec.egress[].to[].namespaces.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组

3.1.12. .spec.egress[].to[].namespaces.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

3.1.13. .spec.egress[].to[].nodes

描述

节点定义了选择集群中一组节点的方法。此字段遵循标准标签选择器语义;如果存在,它会选择所有节点。

支持:扩展

<network-policy-api:experimental>

类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

3.1.14. .spec.egress[].to[].nodes.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组

3.1.15. .spec.egress[].to[].nodes.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

3.1.16. .spec.egress[].to[].pods

描述

Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

类型
object
必填
  • namespaceSelector
  • podSelector
Expand
属性类型描述

namespaceSelector

object

namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。

podSelector

object

podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。

3.1.17. .spec.egress[].to[].pods.namespaceSelector

描述
namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

3.1.20. .spec.egress[].to[].pods.podSelector

描述
podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

3.1.23. .spec.ingress

描述

Ingress 是要应用到所选 pod 的 Ingress 规则列表。每个 ANP 实例中允许总计 100 个规则。单个 ANP 对象(所有共享优先级)中的 ingress 规则的相对优先级将由编写规则的顺序决定。因此,在入口规则顶部出现的规则将具有最高的优先级。没有入口规则的 ANP 不会影响入口流量。

支持:Core

类型
array

3.1.24. .spec.ingress[]

描述
AdminNetworkPolicyIngressRule 描述了对由 AdminNetworkPolicy 的 Subject 字段选择的特定流量集合执行的操作。
类型
object
必填
  • action
  • from
Expand
属性类型描述

action

string

action 指定此规则对匹配流量的影响。目前支持以下操作: Allow: 允许所选流量(即使被 NetworkPolicy 拒绝拒绝) Deny: 拒绝所选流量 Pass: 指示所选流量跳过任何剩余的 ANP 规则,然后将执行传递给选择 pod 的任何 NetworkPolicies。如果任何 NetworkPolicies 没有选择 pod,则执行会被传递给选择 pod 的任何 BaselineAdminNetworkPolicies。

支持:Core

from

数组

from 是此规则应用到的源列表。如果任何 AdminNetworkPolicyIngressPeer 与传入流量的来源匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。

支持:Core

from[]

object

AdminNetworkPolicyIngressPeer 定义了一个集群内对等点,以允许来自的流量。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。

name

string

name 是此规则的标识符,长度不超过 100 个字符。实现应使用此字段来帮助改进任何应用的 AdminNetworkPolicies 的可观察性、可读性和错误报告。

支持:Core

ports

数组

端口允许根据端口和协议匹配流量。此字段是一个端口列表,应在针对此策略选择的 pod 上匹配,例如策略的主题。因此,它与入口流量的目标端口上匹配。如果没有设置 Ports,则规则不会通过端口过滤流量。

支持:Core

ports[]

object

AdminNetworkPolicyPort 描述了如何选择 pod 上的网络端口。必须设置一个字段。

3.1.25. .spec.ingress[].from

描述

from 是此规则应用到的源列表。如果任何 AdminNetworkPolicyIngressPeer 与传入流量的来源匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。

支持:Core

类型
array

3.1.26. .spec.ingress[].from[]

描述
AdminNetworkPolicyIngressPeer 定义了一个集群内对等点,以允许来自的流量。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。
类型
object
Expand
属性类型描述

命名空间

object

命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

pods

object

Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

3.1.27. .spec.ingress[].from[].namespaces

描述

命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

3.1.28. .spec.ingress[].from[].namespaces.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

3.1.30. .spec.ingress[].from[].pods

描述

Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

类型
object
必填
  • namespaceSelector
  • podSelector
Expand
属性类型描述

namespaceSelector

object

namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。

podSelector

object

podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。

3.1.31. .spec.ingress[].from[].pods.namespaceSelector

描述
namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

3.1.34. .spec.ingress[].from[].pods.podSelector

描述
podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

3.1.37. .spec.ingress[].ports

描述

端口允许根据端口和协议匹配流量。此字段是一个端口列表,应在针对此策略选择的 pod 上匹配,例如策略的主题。因此,它与入口流量的目标端口上匹配。如果没有设置 Ports,则规则不会通过端口过滤流量。

支持:Core

类型
array

3.1.38. .spec.ingress[].ports[]

描述
AdminNetworkPolicyPort 描述了如何选择 pod 上的网络端口。必须设置一个字段。
类型
object
Expand
属性类型描述

namedPort

string

NamedPort 根据名称选择一个 pod 上的端口。

支持:扩展

<network-policy-api:experimental>

portNumber

object

port 根据数字选择 pod 上的端口。

支持:Core

portRange

object

PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。

支持:Core

3.1.39. .spec.ingress[].ports[].portNumber

描述

port 根据数字选择 pod 上的端口。

支持:Core

类型
object
必填
  • port
  • protocol
Expand
属性类型描述

port

整数

number 定义网络端口值。

支持:Core

protocol

string

协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。

支持:Core

3.1.40. .spec.ingress[].ports[].portRange

描述

PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。

支持:Core

类型
object
必填
  • end
  • start
Expand
属性类型描述

end

整数

end 定义端口范围末尾的网络端口,End 值必须大于 Start。

支持:Core

protocol

string

协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。

支持:Core

start

整数

start 定义端口范围起始的网络端口,Start 值必须小于 End。

支持:Core

3.1.41. .spec.subject

描述

subject 定义此 AdminNetworkPolicy 应用到的 pod。请注意,主机网络的 pod 不包含在主题选择中。

支持:Core

类型
object
Expand
属性类型描述

命名空间

object

命名空间用于通过命名空间选择器选择 pod。

pods

object

Pod 用于通过命名空间 AND pod 选择器选择 pod。

3.1.42. .spec.subject.namespaces

描述
命名空间用于通过命名空间选择器选择 pod。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

3.1.43. .spec.subject.namespaces.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组

3.1.44. .spec.subject.namespaces.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

3.1.45. .spec.subject.pods

描述
Pod 用于通过命名空间 AND pod 选择器选择 pod。
类型
object
必填
  • namespaceSelector
  • podSelector
Expand
属性类型描述

namespaceSelector

object

namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。

podSelector

object

podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。

3.1.46. .spec.subject.pods.namespaceSelector

描述
namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

3.1.49. .spec.subject.pods.podSelector

描述
podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

3.1.50. .spec.subject.pods.podSelector.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组

3.1.51. .spec.subject.pods.podSelector.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

3.1.52. .status

描述
Status 是实现要报告的状态。
类型
object
必填
  • conditions
Expand
属性类型描述

conditions

array

 

conditions[]

对象

条件包含此 API 资源当前状态的一个方面的详情。--- 这个结构旨在直接用作字段路径 .status.conditions 中的数组。例如,

type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: "Available", "Progressing", 和 "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition json:"conditions, omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"

// other fields }

3.1.53. .status.conditions

描述
类型
array

3.1.54. .status.conditions[]

描述

条件包含此 API 资源当前状态的一个方面的详情。--- 这个结构旨在直接用作字段路径 .status.conditions 中的数组。例如,

type FooStatus struct{
    // Represents the observations of a foo's current state.
    // Known .status.conditions.type are: "Available", "Progressing", and "Degraded"
    // +patchMergeKey=type
    // +patchStrategy=merge
    // +listType=map
    // +listMapKey=type
    Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
Copy to Clipboard Toggle word wrap
    // other fields
}
Copy to Clipboard Toggle word wrap
类型
object
必填
  • lastTransitionTime
  • message
  • reason
  • status
  • type
Expand
属性类型描述

lastTransitionTime

字符串

lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。

message

字符串

Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。

observedGeneration

整数

observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。

reason

字符串

reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。

status

字符串

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

type

字符串

CamelCase 或 foo.example.com/CamelCase 中的条件类型。-- Many .condition.type 值在资源间是一致的,但因为任意条件可能很有用(请参阅 .node.status.conditions),deconflict 的能力非常重要。它匹配的正则表达式是 (dns1123SubdomainFmt/)? (qualifiedNameFmt)

3.2. API 端点

可用的 API 端点如下:

  • /apis/policy.networking.k8s.io/v1alpha1/adminnetworkpolicies

    • DELETE :删除 AdminNetworkPolicy 集合
    • GET: 列出类型为 AdminNetworkPolicy 的对象
    • POST :创建 AdminNetworkPolicy
  • /apis/policy.networking.k8s.io/v1alpha1/adminnetworkpolicies/{name}

    • DELETE :删除 AdminNetworkPolicy
    • GET :读取指定的 AdminNetworkPolicy
    • PATCH: 部分更新指定的 AdminNetworkPolicy
    • PUT :替换指定的 AdminNetworkPolicy
  • /apis/policy.networking.k8s.io/v1alpha1/adminnetworkpolicies/{name}/status

    • GET :指定 AdminNetworkPolicy 的读取状态
    • PATCH: 部分更新指定 AdminNetworkPolicy 的状态
    • PUT :替换指定 AdminNetworkPolicy 的状态
HTTP 方法
DELETE
描述
删除 AdminNetworkPolicy 集合
Expand
表 3.1. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出 AdminNetworkPolicy 类型的对象
Expand
表 3.2. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminNetworkPolicyList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 AdminNetworkPolicy
Expand
表 3.3. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 3.4. 主体参数
参数类型描述

正文(body)

AdminNetworkPolicy 模式

 
Expand
表 3.5. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminNetworkPolicy 模式

201 - Created

AdminNetworkPolicy 模式

202 - Accepted

AdminNetworkPolicy 模式

401 - Unauthorized

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

name

string

AdminNetworkPolicy 的名称

HTTP 方法
DELETE
描述
删除 AdminNetworkPolicy
Expand
表 3.7. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 3.8. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的 AdminNetworkPolicy
Expand
表 3.9. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminNetworkPolicy 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 AdminNetworkPolicy
Expand
表 3.10. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 3.11. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminNetworkPolicy 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 AdminNetworkPolicy
Expand
表 3.12. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 3.13. 主体参数
参数类型描述

正文(body)

AdminNetworkPolicy 模式

 
Expand
表 3.14. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminNetworkPolicy 模式

201 - Created

AdminNetworkPolicy 模式

401 - Unauthorized

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

name

string

AdminNetworkPolicy 的名称

HTTP 方法
GET
描述
指定 AdminNetworkPolicy 的读取状态
Expand
表 3.16. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminNetworkPolicy 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 AdminNetworkPolicy 的状态
Expand
表 3.17. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 3.18. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminNetworkPolicy 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 AdminNetworkPolicy 的状态
Expand
表 3.19. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 3.20. 主体参数
参数类型描述

正文(body)

AdminNetworkPolicy 模式

 
Expand
表 3.21. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminNetworkPolicy 模式

201 - Created

AdminNetworkPolicy 模式

401 - Unauthorized

第 4 章 AdminPolicyBasedExternalRoute [k8s.ovn.org/v1]

描述
AdminPolicyBasedExternalRoute 是一个 CRD,集群管理员可以为外部网关 IP 配置策略,应用到所选命名空间中的所有 pod。来自属于集群外部命名空间的 pod 的出口流量通过这些外部网关 IP 路由。
类型
object
必填
  • spec

4.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

AdminPolicyBasedExternalRouteSpec 定义 AdminPolicyBasedExternalRoute 的所需状态

status

object

AdminPolicyBasedRouteStatus 包含 AdminPolicyBased 路由类型的观察状态。

4.1.1. .spec

描述
AdminPolicyBasedExternalRouteSpec 定义 AdminPolicyBasedExternalRoute 的所需状态
类型
object
必填
  • from
  • nextHops
Expand
属性类型描述

from

object

from 定义将决定目标命名空间到此 CR 的选择器。

nextHops

object

NextHops 定义两种类型的跃点: Static 和 Dynamic。每个跃点至少定义一个外部网关 IP。

4.1.2. .spec.from

描述
from 定义将决定目标命名空间到此 CR 的选择器。
类型
object
必填
  • namespaceSelector
Expand
属性类型描述

namespaceSelector

object

namespaceSelector 定义了一个选择器,用于决定此 CR 将针对哪些命名空间

4.1.3. .spec.from.namespaceSelector

描述
namespaceSelector 定义了一个选择器,用于决定此 CR 将针对哪些命名空间
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

4.1.4. .spec.from.namespaceSelector.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组

4.1.5. .spec.from.namespaceSelector.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

4.1.6. .spec.nextHops

描述
NextHops 定义两种类型的跃点: Static 和 Dynamic。每个跃点至少定义一个外部网关 IP。
类型
object
Expand
属性类型描述

dynamic

数组

DynamicHops 定义 DynamicHop 的片段。此字段是可选的。

dynamic[]

object

DynamicHop 定义动态外部网关接口的配置。这些接口围绕位于集群内部的 pod 对象进行嵌套。字段 NetworkAttachmentName 捕获检索要使用的网关 IP 时使用的 multus 网络名称。PodSelector 和 NamespaceSelector 是必填字段。

static

数组

StaticHops 定义了 StaticHop 的一个片段。此字段是可选的。

static[]

object

StaticHop 定义作为外部网关接口的静态 IP 配置。IP 字段是必需的。

4.1.7. .spec.nextHops.dynamic

描述
DynamicHops 定义 DynamicHop 的片段。此字段是可选的。
类型
数组

4.1.8. .spec.nextHops.dynamic[]

描述
DynamicHop 定义动态外部网关接口的配置。这些接口围绕位于集群内部的 pod 对象进行嵌套。字段 NetworkAttachmentName 捕获检索要使用的网关 IP 时使用的 multus 网络名称。PodSelector 和 NamespaceSelector 是必填字段。
类型
object
必填
  • namespaceSelector
  • podSelector
Expand
属性类型描述

bfdEnabled

布尔值

BFDEnabled 确定接口是否实现双向转发检测协议。默认为false。

namespaceSelector

object

namespaceSelector 定义选择器,用于过滤 pod 网关所在的命名空间。

networkAttachmentName

string

NetworkAttachmentName 决定在检索要用作网关 IP 的 pod IP 时使用的 multus 网络名称。当此字段为空时,逻辑假设 pod 被配置为 HostNetwork,并使用节点的 IP 作为网关。

podSelector

object

podSelector 定义选择器来过滤外部网关的 pod。

4.1.9. .spec.nextHops.dynamic[].namespaceSelector

描述
namespaceSelector 定义选择器,用于过滤 pod 网关所在的命名空间。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

4.1.12. .spec.nextHops.dynamic[].podSelector

描述
podSelector 定义选择器来过滤外部网关的 pod。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

4.1.15. .spec.nextHops.static

描述
StaticHops 定义了 StaticHop 的一个片段。此字段是可选的。
类型
数组

4.1.16. .spec.nextHops.static[]

描述
StaticHop 定义作为外部网关接口的静态 IP 配置。IP 字段是必需的。
类型
object
必填
  • ip
Expand
属性类型描述

bfdEnabled

布尔值

BFDEnabled 确定接口是否实现双向转发检测协议。默认为false。

ip

string

IP 定义用于出口流量的静态 IP。IP 可以是 IPv4 或 IPv6。

4.1.17. .status

描述
AdminPolicyBasedRouteStatus 包含 AdminPolicyBased 路由类型的观察状态。
类型
object
Expand
属性类型描述

lastTransitionTime

string

捕获应用上次更改的时间。

messages

数组(字符串)

一个人类可读的消息数组,代表有关对象状态的详细信息。

status

string

简要指示是否成功应用 AdminPolicyBasedRoute 资源

4.2. API 端点

可用的 API 端点如下:

  • /apis/k8s.ovn.org/v1/adminpolicybasedexternalroutes

    • DELETE: 删除 AdminPolicyBasedExternalRoute 集合
    • GET: 列出类型为 AdminPolicyBasedExternalRoute 的对象
    • POST :创建 AdminPolicyBasedExternalRoute
  • /apis/k8s.ovn.org/v1/adminpolicybasedexternalroutes/{name}

    • DELETE: 删除 AdminPolicyBasedExternalRoute
    • GET :读取指定的 AdminPolicyBasedExternalRoute
    • PATCH: 部分更新指定的 AdminPolicyBasedExternalRoute
    • PUT :替换指定的 AdminPolicyBasedExternalRoute
  • /apis/k8s.ovn.org/v1/adminpolicybasedexternalroutes/{name}/status

    • GET :指定 AdminPolicyBasedExternalRoute 的读取状态
    • PATCH: 部分更新指定 AdminPolicyBasedExternalRoute 的状态
    • PUT :替换指定 AdminPolicyBasedExternalRoute 的状态

4.2.1. /apis/k8s.ovn.org/v1/adminpolicybasedexternalroutes

HTTP 方法
DELETE
描述
delete collection of AdminPolicyBasedExternalRoute
Expand
表 4.1. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出类型为 AdminPolicyBasedExternalRoute 的对象
Expand
表 4.2. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminPolicyBasedExternalRouteList schema

401 - Unauthorized

HTTP 方法
POST
描述
create an AdminPolicyBasedExternalRoute
Expand
表 4.3. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 4.4. 主体参数
参数类型描述

正文(body)

AdminPolicyBasedExternalRoute schema

 
Expand
表 4.5. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminPolicyBasedExternalRoute schema

201 - Created

AdminPolicyBasedExternalRoute schema

202 - Accepted

AdminPolicyBasedExternalRoute schema

401 - Unauthorized

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

name

string

AdminPolicyBasedExternalRoute 的名称

HTTP 方法
DELETE
描述
delete an AdminPolicyBasedExternalRoute
Expand
表 4.7. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 4.8. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
读取指定的 AdminPolicyBasedExternalRoute
Expand
表 4.9. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminPolicyBasedExternalRoute schema

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 AdminPolicyBasedExternalRoute
Expand
表 4.10. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 4.11. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminPolicyBasedExternalRoute schema

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 AdminPolicyBasedExternalRoute
Expand
表 4.12. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 4.13. 主体参数
参数类型描述

正文(body)

AdminPolicyBasedExternalRoute schema

 
Expand
表 4.14. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminPolicyBasedExternalRoute schema

201 - Created

AdminPolicyBasedExternalRoute schema

401 - Unauthorized

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

name

string

AdminPolicyBasedExternalRoute 的名称

HTTP 方法
GET
描述
指定 AdminPolicyBasedExternalRoute 的读取状态
Expand
表 4.16. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminPolicyBasedExternalRoute schema

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 AdminPolicyBasedExternalRoute 的状态
Expand
表 4.17. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 4.18. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminPolicyBasedExternalRoute schema

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 AdminPolicyBasedExternalRoute 的状态
Expand
表 4.19. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 4.20. 主体参数
参数类型描述

正文(body)

AdminPolicyBasedExternalRoute schema

 
Expand
表 4.21. HTTP 响应
HTTP 代码响应正文

200 - OK

AdminPolicyBasedExternalRoute schema

201 - Created

AdminPolicyBasedExternalRoute schema

401 - Unauthorized

描述
BaselineAdminNetworkPolicy 是一个集群级别资源,属于 AdminNetworkPolicy API。
类型
object
必填
  • metadata
  • spec

5.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

BaselineAdminNetworkPolicy 所需的行为规格。

status

object

Status 是实现要报告的状态。

5.1.1. .spec

描述
BaselineAdminNetworkPolicy 所需的行为规格。
类型
object
必填
  • subject
Expand
属性类型描述

egress

数组

如果 Egress 规则与任何 AdminNetworkPolicy 或 NetworkPolicy 规则不匹配,则出口(egress)是要应用到所选 pod 的 Egress 规则列表。每个 BANP 实例中都允许总计 100 个 Egress 规则。在单个 BANP 对象中出口规则的相对优先级将由编写规则的顺序决定。因此,在出口规则顶部出现的规则将具有最高的优先级。没有出口规则的 BANP 不会影响出口流量。

支持:Core

egress[]

object

BaselineAdminNetworkPolicyEgressRule 描述了一个操作,它适用于源自 BaselineAdminNetworkPolicy 的 Subject 字段选择的 pod 的特定流量集。<network-policy-api:experimental:validation>

ingress

数组

如果 Ingress 规则与任何 AdminNetworkPolicy 或 NetworkPolicy 规则不匹配,则 Ingress 是要应用到所选 pod 的 Ingress 规则列表。每个 BANP 实例中都允许 100 个 Ingress 规则。单个 BANP 对象中入口规则的相对优先级将由编写规则的顺序决定。因此,在入口规则顶部出现的规则将具有最高的优先级。没有入口规则的 BANP 不会影响入口流量。

支持:Core

ingress[]

object

BaselineAdminNetworkPolicyIngressRule 描述了一个操作,用于由 BaselineAdminNetworkPolicy 的 Subject 字段选择的特定流量集合。

subject

object

subject 定义此 BaselineAdminNetworkPolicy 应用到的 pod。请注意,主机网络的 pod 不包含在主题选择中。

支持:Core

5.1.2. .spec.egress

描述

如果 Egress 规则与任何 AdminNetworkPolicy 或 NetworkPolicy 规则不匹配,则出口(egress)是要应用到所选 pod 的 Egress 规则列表。每个 BANP 实例中都允许总计 100 个 Egress 规则。在单个 BANP 对象中出口规则的相对优先级将由编写规则的顺序决定。因此,在出口规则顶部出现的规则将具有最高的优先级。没有出口规则的 BANP 不会影响出口流量。

支持:Core

类型
array

5.1.3. .spec.egress[]

描述
BaselineAdminNetworkPolicyEgressRule 描述了一个操作,它适用于源自 BaselineAdminNetworkPolicy 的 Subject 字段选择的 pod 的特定流量集。<network-policy-api:experimental:validation>
类型
object
必填
  • action
Expand
属性类型描述

action

string

action 指定此规则对匹配流量的影响。目前支持以下操作: Allow: 允许所选流量 Deny: 拒绝所选流量

支持:Core

name

string

name 是此规则的标识符,长度不超过 100 个字符。实现应使用此字段来帮助改进任何应用的 BaselineAdminNetworkPolicies 的可观察性、可读性和错误报告。

支持:Core

ports

数组

端口允许根据端口和协议匹配流量。此字段是传出出口流量的目标端口列表。如果没有设置 Ports,则规则不会通过端口过滤流量。

ports[]

object

AdminNetworkPolicyPort 描述了如何选择 pod 上的网络端口。必须设置一个字段。

数组

to 是此规则应用到的目的地列表。如果任何 AdminNetworkPolicyEgressPeer 与传出流量的目的地匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。

支持:Core

to[]

object

AdminNetworkPolicyEgressPeer 定义了一个允许流量的对等点。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。

5.1.4. .spec.egress[].ports

描述
端口允许根据端口和协议匹配流量。此字段是传出出口流量的目标端口列表。如果没有设置 Ports,则规则不会通过端口过滤流量。
类型
array

5.1.5. .spec.egress[].ports[]

描述
AdminNetworkPolicyPort 描述了如何选择 pod 上的网络端口。必须设置一个字段。
类型
object
Expand
属性类型描述

namedPort

string

NamedPort 根据名称选择一个 pod 上的端口。

支持:扩展

<network-policy-api:experimental>

portNumber

object

port 根据数字选择 pod 上的端口。

支持:Core

portRange

object

PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。

支持:Core

5.1.6. .spec.egress[].ports[].portNumber

描述

port 根据数字选择 pod 上的端口。

支持:Core

类型
object
必填
  • port
  • protocol
Expand
属性类型描述

port

整数

number 定义网络端口值。

支持:Core

protocol

string

协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。

支持:Core

5.1.7. .spec.egress[].ports[].portRange

描述

PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。

支持:Core

类型
object
必填
  • end
  • start
Expand
属性类型描述

end

整数

end 定义端口范围末尾的网络端口,End 值必须大于 Start。

支持:Core

protocol

string

协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。

支持:Core

start

整数

start 定义端口范围起始的网络端口,Start 值必须小于 End。

支持:Core

5.1.8. .spec.egress[].to

描述

to 是此规则应用到的目的地列表。如果任何 AdminNetworkPolicyEgressPeer 与传出流量的目的地匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。

支持:Core

类型
array

5.1.9. .spec.egress[].to[]

描述
AdminNetworkPolicyEgressPeer 定义了一个允许流量的对等点。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。
类型
object
Expand
属性类型描述

命名空间

object

命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

networks

数组(字符串)

网络定义了通过 CIDR 块选择对等点的方法。这用于表示集群外部的实体,这些实体不能被 pod、命名空间和节点对等点选择,但请注意,集群内部流量也会针对该规则进行检查。因此,如果您允许或拒绝到 "0.0.0.0/0" 的流量,这将允许或拒绝所有 IPv4 pod 到 pod 流量。如果您不想这样做,请在网络规则前添加传递所有 pod 流量的规则。

Networks 中的每个项目都应该以 CIDR 格式提供,且应为 IPv4 或 IPv6,如 "10.0.0.0/8" 或 "fd00::/8"。

网络可以最多指定 25 个 CIDR。

支持:扩展

<network-policy-api:experimental>

节点

object

节点定义了选择集群中一组节点的方法。此字段遵循标准标签选择器语义;如果存在,它会选择所有节点。

支持:扩展

<network-policy-api:experimental>

pods

object

Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

5.1.10. .spec.egress[].to[].namespaces

描述

命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

5.1.11. .spec.egress[].to[].namespaces.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组

5.1.12. .spec.egress[].to[].namespaces.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

5.1.13. .spec.egress[].to[].nodes

描述

节点定义了选择集群中一组节点的方法。此字段遵循标准标签选择器语义;如果存在,它会选择所有节点。

支持:扩展

<network-policy-api:experimental>

类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

5.1.14. .spec.egress[].to[].nodes.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组

5.1.15. .spec.egress[].to[].nodes.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

5.1.16. .spec.egress[].to[].pods

描述

Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

类型
object
必填
  • namespaceSelector
  • podSelector
Expand
属性类型描述

namespaceSelector

object

namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。

podSelector

object

podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。

5.1.17. .spec.egress[].to[].pods.namespaceSelector

描述
namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

5.1.20. .spec.egress[].to[].pods.podSelector

描述
podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

5.1.23. .spec.ingress

描述

如果 Ingress 规则与任何 AdminNetworkPolicy 或 NetworkPolicy 规则不匹配,则 Ingress 是要应用到所选 pod 的 Ingress 规则列表。每个 BANP 实例中都允许 100 个 Ingress 规则。单个 BANP 对象中入口规则的相对优先级将由编写规则的顺序决定。因此,在入口规则顶部出现的规则将具有最高的优先级。没有入口规则的 BANP 不会影响入口流量。

支持:Core

类型
array

5.1.24. .spec.ingress[]

描述
BaselineAdminNetworkPolicyIngressRule 描述了一个操作,用于由 BaselineAdminNetworkPolicy 的 Subject 字段选择的特定流量集合。
类型
object
必填
  • action
  • from
Expand
属性类型描述

action

string

action 指定此规则对匹配流量的影响。目前支持以下操作: Allow: 允许所选流量 Deny: 拒绝所选流量

支持:Core

from

数组

from 是此规则应用到的源列表。如果任何 AdminNetworkPolicyIngressPeer 与传入流量的来源匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。

支持:Core

from[]

object

AdminNetworkPolicyIngressPeer 定义了一个集群内对等点,以允许来自的流量。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。

name

string

name 是此规则的标识符,长度不超过 100 个字符。实现应使用此字段来帮助改进任何应用的 BaselineAdminNetworkPolicies 的可观察性、可读性和错误报告。

支持:Core

ports

数组

端口允许根据端口和协议匹配流量。此字段是一个端口列表,应在针对此策略选择的 pod 上匹配,例如策略的主题。因此,它与入口流量的目标端口上匹配。如果没有设置 Ports,则规则不会通过端口过滤流量。

支持:Core

ports[]

object

AdminNetworkPolicyPort 描述了如何选择 pod 上的网络端口。必须设置一个字段。

5.1.25. .spec.ingress[].from

描述

from 是此规则应用到的源列表。如果任何 AdminNetworkPolicyIngressPeer 与传入流量的来源匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。

支持:Core

类型
array

5.1.26. .spec.ingress[].from[]

描述
AdminNetworkPolicyIngressPeer 定义了一个集群内对等点,以允许来自的流量。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。
类型
object
Expand
属性类型描述

命名空间

object

命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

pods

object

Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

5.1.27. .spec.ingress[].from[].namespaces

描述

命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

5.1.28. .spec.ingress[].from[].namespaces.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

5.1.30. .spec.ingress[].from[].pods

描述

Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。

支持:Core

类型
object
必填
  • namespaceSelector
  • podSelector
Expand
属性类型描述

namespaceSelector

object

namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。

podSelector

object

podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。

5.1.31. .spec.ingress[].from[].pods.namespaceSelector

描述
namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

5.1.34. .spec.ingress[].from[].pods.podSelector

描述
podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

5.1.37. .spec.ingress[].ports

描述

端口允许根据端口和协议匹配流量。此字段是一个端口列表,应在针对此策略选择的 pod 上匹配,例如策略的主题。因此,它与入口流量的目标端口上匹配。如果没有设置 Ports,则规则不会通过端口过滤流量。

支持:Core

类型
array

5.1.38. .spec.ingress[].ports[]

描述
AdminNetworkPolicyPort 描述了如何选择 pod 上的网络端口。必须设置一个字段。
类型
object
Expand
属性类型描述

namedPort

string

NamedPort 根据名称选择一个 pod 上的端口。

支持:扩展

<network-policy-api:experimental>

portNumber

object

port 根据数字选择 pod 上的端口。

支持:Core

portRange

object

PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。

支持:Core

5.1.39. .spec.ingress[].ports[].portNumber

描述

port 根据数字选择 pod 上的端口。

支持:Core

类型
object
必填
  • port
  • protocol
Expand
属性类型描述

port

整数

number 定义网络端口值。

支持:Core

protocol

string

协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。

支持:Core

5.1.40. .spec.ingress[].ports[].portRange

描述

PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。

支持:Core

类型
object
必填
  • end
  • start
Expand
属性类型描述

end

整数

end 定义端口范围末尾的网络端口,End 值必须大于 Start。

支持:Core

protocol

string

协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。

支持:Core

start

整数

start 定义端口范围起始的网络端口,Start 值必须小于 End。

支持:Core

5.1.41. .spec.subject

描述

subject 定义此 BaselineAdminNetworkPolicy 应用到的 pod。请注意,主机网络的 pod 不包含在主题选择中。

支持:Core

类型
object
Expand
属性类型描述

命名空间

object

命名空间用于通过命名空间选择器选择 pod。

pods

object

Pod 用于通过命名空间 AND pod 选择器选择 pod。

5.1.42. .spec.subject.namespaces

描述
命名空间用于通过命名空间选择器选择 pod。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

5.1.43. .spec.subject.namespaces.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组

5.1.44. .spec.subject.namespaces.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

5.1.45. .spec.subject.pods

描述
Pod 用于通过命名空间 AND pod 选择器选择 pod。
类型
object
必填
  • namespaceSelector
  • podSelector
Expand
属性类型描述

namespaceSelector

object

namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。

podSelector

object

podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。

5.1.46. .spec.subject.pods.namespaceSelector

描述
namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

5.1.49. .spec.subject.pods.podSelector

描述
podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

5.1.50. .spec.subject.pods.podSelector.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组

5.1.51. .spec.subject.pods.podSelector.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

5.1.52. .status

描述
Status 是实现要报告的状态。
类型
object
必填
  • conditions
Expand
属性类型描述

conditions

array

 

conditions[]

对象

条件包含此 API 资源当前状态的一个方面的详情。--- 这个结构旨在直接用作字段路径 .status.conditions 中的数组。例如,

type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: "Available", "Progressing", 和 "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition json:"conditions, omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"

// other fields }

5.1.53. .status.conditions

描述
类型
array

5.1.54. .status.conditions[]

描述

条件包含此 API 资源当前状态的一个方面的详情。--- 这个结构旨在直接用作字段路径 .status.conditions 中的数组。例如,

type FooStatus struct{
    // Represents the observations of a foo's current state.
    // Known .status.conditions.type are: "Available", "Progressing", and "Degraded"
    // +patchMergeKey=type
    // +patchStrategy=merge
    // +listType=map
    // +listMapKey=type
    Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
Copy to Clipboard Toggle word wrap
    // other fields
}
Copy to Clipboard Toggle word wrap
类型
object
必填
  • lastTransitionTime
  • message
  • reason
  • status
  • type
Expand
属性类型描述

lastTransitionTime

字符串

lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。

message

字符串

Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。

observedGeneration

整数

observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。

reason

字符串

reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。

status

字符串

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

type

字符串

CamelCase 或 foo.example.com/CamelCase 中的条件类型。-- Many .condition.type 值在资源间是一致的,但因为任意条件可能很有用(请参阅 .node.status.conditions),deconflict 的能力非常重要。它匹配的正则表达式是 (dns1123SubdomainFmt/)? (qualifiedNameFmt)

5.2. API 端点

可用的 API 端点如下:

  • /apis/policy.networking.k8s.io/v1alpha1/baselineadminnetworkpolicies

    • DELETE: 删除 BaselineAdminNetworkPolicy 集合
    • GET: 列出类型为 BaselineAdminNetworkPolicy 的对象
    • POST :创建 BaselineAdminNetworkPolicy
  • /apis/policy.networking.k8s.io/v1alpha1/baselineadminnetworkpolicies/{name}

    • DELETE :删除 BaselineAdminNetworkPolicy
    • GET :读取指定的 BaselineAdminNetworkPolicy
    • PATCH: 部分更新指定的 BaselineAdminNetworkPolicy
    • PUT :替换指定的 BaselineAdminNetworkPolicy
  • /apis/policy.networking.k8s.io/v1alpha1/baselineadminnetworkpolicies/{name}/status

    • GET :指定 BaselineAdminNetworkPolicy 的读取状态
    • PATCH: 部分更新指定 BaselineAdminNetworkPolicy 的状态
    • PUT :替换指定 BaselineAdminNetworkPolicy 的状态
HTTP 方法
DELETE
描述
删除 BaselineAdminNetworkPolicy 集合
Expand
表 5.1. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出类型为 BaselineAdminNetworkPolicy 的对象
Expand
表 5.2. HTTP 响应
HTTP 代码响应正文

200 - OK

BaselineAdminNetworkPolicyList schema

401 - Unauthorized

HTTP 方法
POST
描述
创建 BaselineAdminNetworkPolicy
Expand
表 5.3. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 5.4. 主体参数
参数类型描述

正文(body)

BaselineAdminNetworkPolicy 模式

 
Expand
表 5.5. HTTP 响应
HTTP 代码响应正文

200 - OK

BaselineAdminNetworkPolicy 模式

201 - Created

BaselineAdminNetworkPolicy 模式

202 - Accepted

BaselineAdminNetworkPolicy 模式

401 - Unauthorized

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

name

string

BaselineAdminNetworkPolicy 的名称

HTTP 方法
DELETE
描述
删除 BaselineAdminNetworkPolicy
Expand
表 5.7. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 5.8. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的 BaselineAdminNetworkPolicy
Expand
表 5.9. HTTP 响应
HTTP 代码响应正文

200 - OK

BaselineAdminNetworkPolicy 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 BaselineAdminNetworkPolicy
Expand
表 5.10. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 5.11. HTTP 响应
HTTP 代码响应正文

200 - OK

BaselineAdminNetworkPolicy 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 BaselineAdminNetworkPolicy
Expand
表 5.12. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 5.13. 主体参数
参数类型描述

正文(body)

BaselineAdminNetworkPolicy 模式

 
Expand
表 5.14. HTTP 响应
HTTP 代码响应正文

200 - OK

BaselineAdminNetworkPolicy 模式

201 - Created

BaselineAdminNetworkPolicy 模式

401 - Unauthorized

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

name

string

BaselineAdminNetworkPolicy 的名称

HTTP 方法
GET
描述
指定 BaselineAdminNetworkPolicy 的读取状态
Expand
表 5.16. HTTP 响应
HTTP 代码响应正文

200 - OK

BaselineAdminNetworkPolicy 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 BaselineAdminNetworkPolicy 的状态
Expand
表 5.17. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 5.18. HTTP 响应
HTTP 代码响应正文

200 - OK

BaselineAdminNetworkPolicy 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 BaselineAdminNetworkPolicy 的状态
Expand
表 5.19. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 5.20. 主体参数
参数类型描述

正文(body)

BaselineAdminNetworkPolicy 模式

 
Expand
表 5.21. HTTP 响应
HTTP 代码响应正文

200 - OK

BaselineAdminNetworkPolicy 模式

201 - Created

BaselineAdminNetworkPolicy 模式

401 - Unauthorized

描述

CloudPrivateIPConfig 将私有 IP 地址分配给与云虚拟机关联的主 NIC。这可以通过指定 IP 应该分配给的 IP 和 Kubernetes 节点来完成。此 CRD 旨在由管理集群网络的网络插件使用。spec 端代表网络插件请求的状态,状态端表示此 CRD 控制器执行的当前状态。没有用户修改它的权限,如果 cluster-admin 决定编辑它,则在下次网络插件协调对象时,其更改将被覆盖。注: CR 的名称必须指定请求的私有 IP 地址(可以是 IPv4 或 IPv6)。

兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。

类型
object
必填
  • spec

6.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

spec 是所需专用 IP 请求的定义。

status

object

status 是所需私有 IP 请求的观察状态。只读。

6.1.1. .spec

描述
spec 是所需专用 IP 请求的定义。
类型
object
Expand
属性类型描述

node

string

node 是节点名称,由 Kubernetes 字段指定:node.metadata.name

6.1.2. .status

描述
status 是所需私有 IP 请求的观察状态。只读。
类型
object
必填
  • conditions
Expand
属性类型描述

conditions

数组

condition 是专用 IP 及其状态的分配条件

conditions[]

object

condition 包含此 API 资源当前状态的一个方面的详细信息。

node

string

node 是节点名称,由 Kubernetes 字段指定:node.metadata.name

6.1.3. .status.conditions

描述
condition 是专用 IP 及其状态的分配条件
类型
array

6.1.4. .status.conditions[]

描述
condition 包含此 API 资源当前状态的一个方面的详细信息。
类型
object
必填
  • lastTransitionTime
  • message
  • reason
  • status
  • type
Expand
属性类型描述

lastTransitionTime

字符串

lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。

message

字符串

Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。

observedGeneration

整数

observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。

reason

字符串

reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。

status

字符串

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

type

字符串

CamelCase 或 foo.example.com/CamelCase 中的条件类型。

6.2. API 端点

可用的 API 端点如下:

  • /apis/cloud.network.openshift.io/v1/cloudprivateipconfigs

    • DELETE :删除 CloudPrivateIPConfig 集合
    • GET: 列出类型为 CloudPrivateIPConfig 的对象
    • POST :创建 CloudPrivateIPConfig
  • /apis/cloud.network.openshift.io/v1/cloudprivateipconfigs/{name}

    • DELETE :删除 CloudPrivateIPConfig
    • GET :读取指定的 CloudPrivateIPConfig
    • PATCH: 部分更新指定的 CloudPrivateIPConfig
    • PUT :替换指定的 CloudPrivateIPConfig
  • /apis/cloud.network.openshift.io/v1/cloudprivateipconfigs/{name}/status

    • GET :指定 CloudPrivateIPConfig 的读取状态
    • PATCH: 部分更新指定 CloudPrivateIPConfig 的状态
    • PUT :替换指定 CloudPrivateIPConfig 的状态
HTTP 方法
DELETE
描述
删除 CloudPrivateIPConfig 集合
Expand
表 6.1. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出 CloudPrivateIPConfig 类型的对象
Expand
表 6.2. HTTP 响应
HTTP 代码响应正文

200 - OK

CloudPrivateIPConfigList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 CloudPrivateIPConfig
Expand
表 6.3. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 6.4. 主体参数
参数类型描述

正文(body)

CloudPrivateIPConfig 模式

 
Expand
表 6.5. HTTP 响应
HTTP 代码响应正文

200 - OK

CloudPrivateIPConfig 模式

201 - Created

CloudPrivateIPConfig 模式

202 - Accepted

CloudPrivateIPConfig 模式

401 - Unauthorized

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

name

string

CloudPrivateIPConfig 的名称

HTTP 方法
DELETE
描述
删除 CloudPrivateIPConfig
Expand
表 6.7. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 6.8. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的 CloudPrivateIPConfig
Expand
表 6.9. HTTP 响应
HTTP 代码响应正文

200 - OK

CloudPrivateIPConfig 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 CloudPrivateIPConfig
Expand
表 6.10. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 6.11. HTTP 响应
HTTP 代码响应正文

200 - OK

CloudPrivateIPConfig 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 CloudPrivateIPConfig
Expand
表 6.12. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 6.13. 主体参数
参数类型描述

正文(body)

CloudPrivateIPConfig 模式

 
Expand
表 6.14. HTTP 响应
HTTP 代码响应正文

200 - OK

CloudPrivateIPConfig 模式

201 - Created

CloudPrivateIPConfig 模式

401 - Unauthorized

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

name

string

CloudPrivateIPConfig 的名称

HTTP 方法
GET
描述
指定 CloudPrivateIPConfig 的读取状态
Expand
表 6.16. HTTP 响应
HTTP 代码响应正文

200 - OK

CloudPrivateIPConfig 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 CloudPrivateIPConfig 的状态
Expand
表 6.17. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 6.18. HTTP 响应
HTTP 代码响应正文

200 - OK

CloudPrivateIPConfig 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 CloudPrivateIPConfig 的状态
Expand
表 6.19. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 6.20. 主体参数
参数类型描述

正文(body)

CloudPrivateIPConfig 模式

 
Expand
表 6.21. HTTP 响应
HTTP 代码响应正文

200 - OK

CloudPrivateIPConfig 模式

201 - Created

CloudPrivateIPConfig 模式

401 - Unauthorized

第 7 章 EgressFirewall [k8s.ovn.org/v1]

描述
EgressFirewall 描述了命名空间的当前出口防火墙。系统将针对 pod 的命名空间 EgressFirewall 中的每个 EgressFirewallRule 检查从 pod 到集群外的 IP 地址的流量。如果没有规则匹配(或不存在 EgressFirewall),则默认允许流量。
类型
object
必填
  • spec

7.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

指定 EgressFirewall 所需的行为。

status

object

观察 EgressFirewall 的状态

7.1.1. .spec

描述
指定 EgressFirewall 所需的行为。
类型
object
必填
  • egress
Expand
属性类型描述

egress

数组

出口防火墙规则对象的集合

egress[]

object

EgressFirewallRule 是一个单一的 egressfirewall 规则对象

7.1.2. .spec.egress

描述
出口防火墙规则对象的集合
类型
array

7.1.3. .spec.egress[]

描述
EgressFirewallRule 是一个单一的 egressfirewall 规则对象
类型
object
必填
  • type
Expand
属性类型描述

ports

数组

端口指定规则适用的端口和协议

ports[]

object

EgressFirewallPort 指定允许或拒绝流量的端口

对象

to 是允许/拒绝流量的目标

type

字符串

type 将此标记为 "Allow" 或 "Deny" 规则

7.1.4. .spec.egress[].ports

描述
端口指定规则适用的端口和协议
类型
array

7.1.5. .spec.egress[].ports[]

描述
EgressFirewallPort 指定允许或拒绝流量的端口
类型
object
必填
  • port
  • protocol
Expand
属性类型描述

port

整数

流量必须匹配的端口

protocol

string

流量必须匹配的协议(tcp、udp、sctp)。

7.1.6. .spec.egress[].to

描述
to 是允许/拒绝流量的目标
类型
object
Expand
属性类型描述

cidrSelector

字符串

cidrSelector 是允许/拒绝流量的 CIDR 范围。如果设置了,dnsName 和 nodeSelector 必须取消设置。

dnsName

字符串

dnsName 是允许/拒绝流量的域名。如果设置了,则必须取消设置 cidrSelector 和 nodeSelector。对于通配符 DNS 名称,'' 只会匹配一个标签。另外,在通配符 DNS 名称的开头只能使用一个 ''。例如: '*.example.com' 将匹配 'sub1.example.com',但不匹配 'sub2.sub1.example.com'。

nodeSelector

object

nodeSelector 将允许/拒绝到所选节点的 Kubernetes 节点 IP 的流量。如果设置了,则必须取消设置 cidrSelector 和 DNSName。

7.1.7. .spec.egress[].to.nodeSelector

描述
nodeSelector 将允许/拒绝到所选节点的 Kubernetes 节点 IP 的流量。如果设置了,则必须取消设置 cidrSelector 和 DNSName。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

7.1.8. .spec.egress[].to.nodeSelector.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组

7.1.9. .spec.egress[].to.nodeSelector.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

7.1.10. .status

描述
观察 EgressFirewall 的状态
类型
object
Expand
属性类型描述

messages

数组(字符串)

 

status

string

 

7.2. API 端点

可用的 API 端点如下:

  • /apis/k8s.ovn.org/v1/egressfirewalls

    • GET: 列出 EgressFirewall 类型的对象
  • /apis/k8s.ovn.org/v1/namespaces/{namespace}/egressfirewalls

    • DELETE: 删除 EgressFirewall 集合
    • GET: 列出 EgressFirewall 类型的对象
    • POST :创建 EgressFirewall
  • /apis/k8s.ovn.org/v1/namespaces/{namespace}/egressfirewalls/{name}

    • DELETE :删除 EgressFirewall
    • GET :读取指定的 EgressFirewall
    • PATCH: 部分更新指定的 EgressFirewall
    • PUT :替换指定的 EgressFirewall
  • /apis/k8s.ovn.org/v1/namespaces/{namespace}/egressfirewalls/{name}/status

    • GET :指定 EgressFirewall 的读取状态
    • PATCH: 部分更新指定 EgressFirewall 的状态
    • PUT :替换指定 EgressFirewall 的状态

7.2.1. /apis/k8s.ovn.org/v1/egressfirewalls

HTTP 方法
GET
描述
列出 EgressFirewall 类型的对象
Expand
表 7.1. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressFirewallList 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 EgressFirewall 集合
Expand
表 7.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出 EgressFirewall 类型的对象
Expand
表 7.3. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressFirewallList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 EgressFirewall
Expand
表 7.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 7.5. 主体参数
参数类型描述

正文(body)

EgressFirewall 模式

 
Expand
表 7.6. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressFirewall 模式

201 - Created

EgressFirewall 模式

202 - Accepted

EgressFirewall 模式

401 - Unauthorized

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

name

string

EgressFirewall 的名称

HTTP 方法
DELETE
描述
删除 EgressFirewall
Expand
表 7.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 7.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的 EgressFirewall
Expand
表 7.10. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressFirewall 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 EgressFirewall
Expand
表 7.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 7.12. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressFirewall 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 EgressFirewall
Expand
表 7.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 7.14. 主体参数
参数类型描述

正文(body)

EgressFirewall 模式

 
Expand
表 7.15. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressFirewall 模式

201 - Created

EgressFirewall 模式

401 - Unauthorized

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

name

string

EgressFirewall 的名称

HTTP 方法
GET
描述
指定 EgressFirewall 的读取状态
Expand
表 7.17. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressFirewall 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 EgressFirewall 的状态
Expand
表 7.18. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 7.19. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressFirewall 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 EgressFirewall 的状态
Expand
表 7.20. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 7.21. 主体参数
参数类型描述

正文(body)

EgressFirewall 模式

 
Expand
表 7.22. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressFirewall 模式

201 - Created

EgressFirewall 模式

401 - Unauthorized

第 8 章 EgressIP [k8s.ovn.org/v1]

描述
EgressIP 是一个 CRD,用户可以为其 spec 定义来自与 EgressIP 资源匹配的 pod 的所有出口流量定义固定源 IP。
类型
object
必填
  • spec

8.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

所需 EgressIP 行为的规格。

status

object

观察到 EgressIP 的状态。只读。

8.1.1. .spec

描述
所需 EgressIP 行为的规格。
类型
object
必填
  • egressIPs
  • namespaceSelector
Expand
属性类型描述

egressIPs

数组(字符串)

egressIPs 是请求的出口 IP 地址列表。可以是 IPv4 和/或 IPv6。这个字段是必须的。

namespaceSelector

object

namespaceSelector 仅将出口 IP 应用到与此定义匹配的命名空间。这个字段是必须的。

podSelector

object

podSelector 仅将出口 IP 应用到与此定义匹配的 pod。此字段是可选的,如果未设置,则会将出口 IP 应用到与 NamespaceSelector 匹配的命名空间中的所有 pod。如果它被设置:使用 NamespaceSelector 进行交集,因此将出口 IP 应用到 pod (在与这个 pod 选择器匹配的 NamespaceSelector 中)。

8.1.2. .spec.namespaceSelector

描述
namespaceSelector 仅将出口 IP 应用到与此定义匹配的命名空间。这个字段是必须的。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

8.1.3. .spec.namespaceSelector.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
array

8.1.4. .spec.namespaceSelector.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

8.1.5. .spec.podSelector

描述
podSelector 仅将出口 IP 应用到与此定义匹配的 pod。此字段是可选的,如果未设置,则会将出口 IP 应用到与 NamespaceSelector 匹配的命名空间中的所有 pod。如果它被设置:使用 NamespaceSelector 进行交集,因此将出口 IP 应用到 pod (在与这个 pod 选择器匹配的 NamespaceSelector 中)。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

8.1.6. .spec.podSelector.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组

8.1.7. .spec.podSelector.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

8.1.8. .status

描述
观察到 EgressIP 的状态。只读。
类型
object
必填
  • items
Expand
属性类型描述

items

数组

分配出口 IP 列表及其对应的节点分配。

items[]

object

每个节点状态,用于分配的出口 IP。

8.1.9. .status.items

描述
分配出口 IP 列表及其对应的节点分配。
类型
array

8.1.10. .status.items[]

描述
每个节点状态,用于分配的出口 IP。
类型
object
必填
  • egressIP
  • node
Expand
属性类型描述

egressIP

string

分配的出口 IP

node

string

分配的节点名称

8.2. API 端点

可用的 API 端点如下:

  • /apis/k8s.ovn.org/v1/egressips

    • DELETE :删除 EgressIP 集合
    • GET: 列出 EgressIP 类型的对象
    • POST :创建 EgressIP
  • /apis/k8s.ovn.org/v1/egressips/{name}

    • DELETE :删除 EgressIP
    • GET :读取指定的 EgressIP
    • PATCH: 部分更新指定的 EgressIP
    • PUT :替换指定的 EgressIP

8.2.1. /apis/k8s.ovn.org/v1/egressips

HTTP 方法
DELETE
描述
删除 EgressIP 集合
Expand
表 8.1. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出 EgressIP 类型的对象
Expand
表 8.2. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressIPList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 EgressIP
Expand
表 8.3. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 8.4. 主体参数
参数类型描述

正文(body)

EgressIP 模式

 
Expand
表 8.5. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressIP 模式

201 - Created

EgressIP 模式

202 - Accepted

EgressIP 模式

401 - Unauthorized

8.2.2. /apis/k8s.ovn.org/v1/egressips/{name}

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

name

string

EgressIP 的名称

HTTP 方法
DELETE
描述
删除 EgressIP
Expand
表 8.7. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 8.8. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
读取指定的 EgressIP
Expand
表 8.9. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressIP 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 EgressIP
Expand
表 8.10. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 8.11. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressIP 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 EgressIP
Expand
表 8.12. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 8.13. 主体参数
参数类型描述

正文(body)

EgressIP 模式

 
Expand
表 8.14. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressIP 模式

201 - Created

EgressIP 模式

401 - Unauthorized

第 9 章 EgressQoS [k8s.ovn.org/v1]

描述
egressqos 是一个 CRD,允许用户在其命名空间中为 pod 出口流量定义 DSCP 值到指定的 CIDR。来自这些 pod 的流量将根据命名空间的 EgressQoSRule 中的每个 EgressQoSRule 检查,如果存在与相关 DSCP 值匹配的流量。
类型
object

9.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

EgressQoSSpec 定义所需的 EgressQoS 状态

status

object

EgressQoSStatus 定义 EgressQoS 的观察状态

9.1.1. .spec

描述
EgressQoSSpec 定义所需的 EgressQoS 状态
类型
object
必填
  • egress
Expand
属性类型描述

egress

数组

一组 Egress QoS 规则对象

egress[]

object

 

9.1.2. .spec.egress

描述
一组 Egress QoS 规则对象
类型
array

9.1.3. .spec.egress[]

描述
类型
object
必填
  • dscp
Expand
属性类型描述

dscp

整数

DSCP 标记用于匹配 Pod 流量的值。

dstCIDR

string

DstCIDR 指定目的地的 CIDR。只有到此 CIDR 的流量标题将标记为 DSCP 值。此字段是可选的,如果没有设置该规则,无论目的地是什么,则规则会应用到所有出口流量。

podSelector

object

podSelector 只会将 QoS 规则应用到与这个定义匹配的命名空间中的 pod。此字段是可选的,如果没有设置会导致规则应用到命名空间中的所有 pod。

9.1.4. .spec.egress[].podSelector

描述
podSelector 只会将 QoS 规则应用到与这个定义匹配的命名空间中的 pod。此字段是可选的,如果没有设置会导致规则应用到命名空间中的所有 pod。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

9.1.5. .spec.egress[].podSelector.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组

9.1.6. .spec.egress[].podSelector.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

9.1.7. .status

描述
EgressQoSStatus 定义 EgressQoS 的观察状态
类型
object
Expand
属性类型描述

conditions

数组

条件对象数组,指示 EgressQoS 对象状态的详细信息。

conditions[]

对象

条件包含此 API 资源当前状态的一个方面的详情。--- 这个结构旨在直接用作字段路径 .status.conditions 中的数组。例如,

type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: "Available", "Progressing", 和 "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition json:"conditions, omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"

// other fields }

status

string

简要指示是否成功应用了 EgressQoS 资源。

9.1.8. .status.conditions

描述
条件对象数组,指示 EgressQoS 对象状态的详细信息。
类型
array

9.1.9. .status.conditions[]

描述

条件包含此 API 资源当前状态的一个方面的详情。--- 这个结构旨在直接用作字段路径 .status.conditions 中的数组。例如,

type FooStatus struct{
    // Represents the observations of a foo's current state.
    // Known .status.conditions.type are: "Available", "Progressing", and "Degraded"
    // +patchMergeKey=type
    // +patchStrategy=merge
    // +listType=map
    // +listMapKey=type
    Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
Copy to Clipboard Toggle word wrap
    // other fields
}
Copy to Clipboard Toggle word wrap
类型
object
必填
  • lastTransitionTime
  • message
  • reason
  • status
  • type
Expand
属性类型描述

lastTransitionTime

字符串

lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。

message

字符串

Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。

observedGeneration

整数

observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。

reason

字符串

reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。

status

字符串

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

type

字符串

CamelCase 或 foo.example.com/CamelCase 中的条件类型。-- Many .condition.type 值在资源间是一致的,但因为任意条件可能很有用(请参阅 .node.status.conditions),deconflict 的能力非常重要。它匹配的正则表达式是 (dns1123SubdomainFmt/)? (qualifiedNameFmt)

9.2. API 端点

可用的 API 端点如下:

  • /apis/k8s.ovn.org/v1/egressqoses

    • GET: 列出类型为 EgressQoS 的对象
  • /apis/k8s.ovn.org/v1/namespaces/{namespace}/egressqoses

    • DELETE: 删除 EgressQoS 的集合
    • GET: 列出类型为 EgressQoS 的对象
    • POST :创建 EgressQoS
  • /apis/k8s.ovn.org/v1/namespaces/{namespace}/egressqoses/{name}

    • DELETE :删除 EgressQoS
    • GET :读取指定的 EgressQoS
    • PATCH: 部分更新指定的 EgressQoS
    • PUT :替换指定的 EgressQoS
  • /apis/k8s.ovn.org/v1/namespaces/{namespace}/egressqoses/{name}/status

    • GET :指定 EgressQoS 的读取状态
    • PATCH: 部分更新指定 EgressQoS 的状态
    • PUT :替换指定 EgressQoS 的状态

9.2.1. /apis/k8s.ovn.org/v1/egressqoses

HTTP 方法
GET
描述
列出类型为 EgressQoS 的对象
Expand
表 9.1. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressQoSList 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 EgressQoS 集合
Expand
表 9.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出类型为 EgressQoS 的对象
Expand
表 9.3. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressQoSList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 EgressQoS
Expand
表 9.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 9.5. 主体参数
参数类型描述

正文(body)

egressqos 模式

 
Expand
表 9.6. HTTP 响应
HTTP 代码响应正文

200 - OK

egressqos 模式

201 - Created

egressqos 模式

202 - Accepted

egressqos 模式

401 - Unauthorized

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

name

string

EgressQoS 的名称

HTTP 方法
DELETE
描述
删除 EgressQoS
Expand
表 9.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 9.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的 EgressQoS
Expand
表 9.10. HTTP 响应
HTTP 代码响应正文

200 - OK

egressqos 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 EgressQoS
Expand
表 9.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 9.12. HTTP 响应
HTTP 代码响应正文

200 - OK

egressqos 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 EgressQoS
Expand
表 9.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 9.14. 主体参数
参数类型描述

正文(body)

egressqos 模式

 
Expand
表 9.15. HTTP 响应
HTTP 代码响应正文

200 - OK

egressqos 模式

201 - Created

egressqos 模式

401 - Unauthorized

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

name

string

EgressQoS 的名称

HTTP 方法
GET
描述
指定 EgressQoS 的读取状态
Expand
表 9.17. HTTP 响应
HTTP 代码响应正文

200 - OK

egressqos 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 EgressQoS 的状态
Expand
表 9.18. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 9.19. HTTP 响应
HTTP 代码响应正文

200 - OK

egressqos 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 EgressQoS 的状态
Expand
表 9.20. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 9.21. 主体参数
参数类型描述

正文(body)

egressqos 模式

 
Expand
表 9.22. HTTP 响应
HTTP 代码响应正文

200 - OK

egressqos 模式

201 - Created

egressqos 模式

401 - Unauthorized

第 10 章 EgressService [k8s.ovn.org/v1]

描述
EgressService 是一个 CRD,允许用户请求来自对应 LoadBalancer 服务端点的所有 pod 的出口数据包的源 IP 是其入口 IP。另外,它允许用户请求来自作为 LoadBalancer 服务端点的所有 pod 的出口数据包,并使用与主服务不同的网络。
类型
object

10.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

EgressServiceSpec 定义所需的 EgressService 状态

status

object

EgressServiceStatus 定义 EgressService 的观察状态

10.1.1. .spec

描述
EgressServiceSpec 定义所需的 EgressService 状态
类型
object
Expand
属性类型描述

network

string

此服务应向哪些网络发送出口和对应的入口回复。这通常作为 VRF 映射实现,代表一个由省略使用默认主机路由的路由表的数字 id 或字符串名称。

nodeSelector

object

允许限制可以选择的节点在 sourceIPBy=LoadBalancerIP 时处理服务的流量。当只显示标签与指定选择器匹配的节点时,才能选择处理服务的流量。如果不指定集群中的任何节点,就可以选择它来管理该服务的流量。

sourceIPBy

string

决定源自支持 LoadBalancer 服务的 pod 的出口流量的源 IP。当 LoadBalancerIP 时,源 IP 被设置为其 LoadBalancer 入口 IP。当根据网络的接口设置网络源 IP 时,利用已经可用的 masquerade 规则。通常,这些规则将 SNAT 指定为传出接口的 IP,这意味着数据包通常保留节点的 IP。

10.1.2. .spec.nodeSelector

描述
允许限制可以选择的节点在 sourceIPBy=LoadBalancerIP 时处理服务的流量。当只显示标签与指定选择器匹配的节点时,才能选择处理服务的流量。如果不指定集群中的任何节点,就可以选择它来管理该服务的流量。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

10.1.3. .spec.nodeSelector.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
array

10.1.4. .spec.nodeSelector.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

10.1.5. .status

描述
EgressServiceStatus 定义 EgressService 的观察状态
类型
object
必填
  • 主机
Expand
属性类型描述

主机

string

选择用于处理服务流量的节点名称。如果 sourceIPBy=Network,字段将设置为"ALL"。

10.2. API 端点

可用的 API 端点如下:

  • /apis/k8s.ovn.org/v1/egressservices

    • GET: 列出类型为 EgressService 的对象
  • /apis/k8s.ovn.org/v1/namespaces/{namespace}/egressservices

    • DELETE :删除 EgressService 的集合
    • GET: 列出类型为 EgressService 的对象
    • POST :创建 EgressService
  • /apis/k8s.ovn.org/v1/namespaces/{namespace}/egressservices/{name}

    • DELETE :删除 EgressService
    • GET :读取指定的 EgressService
    • PATCH: 部分更新指定的 EgressService
    • PUT :替换指定的 EgressService
  • /apis/k8s.ovn.org/v1/namespaces/{namespace}/egressservices/{name}/status

    • GET :指定 EgressService 的读取状态
    • PATCH: 部分更新指定 EgressService 的状态
    • PUT :替换指定 EgressService 的状态

10.2.1. /apis/k8s.ovn.org/v1/egressservices

HTTP 方法
GET
描述
列出 EgressService 类型的对象
Expand
表 10.1. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressServiceList 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 EgressService 集合
Expand
表 10.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出 EgressService 类型的对象
Expand
表 10.3. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressServiceList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 EgressService
Expand
表 10.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 10.5. 主体参数
参数类型描述

正文(body)

EgressService 模式

 
Expand
表 10.6. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressService 模式

201 - Created

EgressService 模式

202 - Accepted

EgressService 模式

401 - Unauthorized

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

name

string

EgressService 的名称

HTTP 方法
DELETE
描述
删除 EgressService
Expand
表 10.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 10.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的 EgressService
Expand
表 10.10. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressService 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 EgressService
Expand
表 10.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 10.12. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressService 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 EgressService
Expand
表 10.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 10.14. 主体参数
参数类型描述

正文(body)

EgressService 模式

 
Expand
表 10.15. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressService 模式

201 - Created

EgressService 模式

401 - Unauthorized

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

name

string

EgressService 的名称

HTTP 方法
GET
描述
指定 EgressService 的读取状态
Expand
表 10.17. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressService 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 EgressService 的状态
Expand
表 10.18. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 10.19. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressService 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 EgressService 的状态
Expand
表 10.20. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 10.21. 主体参数
参数类型描述

正文(body)

EgressService 模式

 
Expand
表 10.22. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressService 模式

201 - Created

EgressService 模式

401 - Unauthorized

第 11 章 Endpoints [v1]

描述

端点是实施实际服务的端点集合。Example:

 Name: "mysvc",
 Subsets: [
   {
     Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}],
     Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}]
   },
   {
     Addresses: [{"ip": "10.10.3.3"}],
     Ports: [{"name": "a", "port": 93}, {"name": "b", "port": 76}]
   },
]
Copy to Clipboard Toggle word wrap
类型
object

11.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

子集

array

所有端点的集合是所有子集的联合。根据它们共享的 IP,地址被放入子集中。具有多个端口的单一地址,其中有些地址已就绪,它们没有(因为它们来自不同的容器)将导致不同端口的不同子集中显示地址。同一子集中的 Addresses 和 NotReadyAddresses 中都没有地址。组成服务的地址和端口集合。

subsets[]

对象

EndpointSubset 是一组具有一组通用端口的地址。扩展的端点集是 Addresses x Ports 的 Cartesian 产品。例如,给定:

{ addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}], Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}] }

生成的端点集可视为:

a: [ 10.10.1.1:8675, 10.10.2.2:8675 ], b: [ 10.10.1.1:309, 10.10.2.2:309 ]

11.1.1. .subsets

描述
所有端点的集合是所有子集的联合。根据它们共享的 IP,地址被放入子集中。具有多个端口的单一地址,其中有些地址已就绪,它们没有(因为它们来自不同的容器)将导致不同端口的不同子集中显示地址。同一子集中的 Addresses 和 NotReadyAddresses 中都没有地址。组成服务的地址和端口集合。
类型
array

11.1.2. .subsets[]

描述

EndpointSubset 是一组具有一组通用端口的地址。扩展的端点集是 Addresses x Ports 的 Cartesian 产品。例如,给定:

{
  Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}],
  Ports:     [{"name": "a", "port": 8675}, {"name": "b", "port": 309}]
}
Copy to Clipboard Toggle word wrap

生成的端点集可视为:

a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],
b: [ 10.10.1.1:309, 10.10.2.2:309 ]
Copy to Clipboard Toggle word wrap
类型
object
Expand
属性类型描述

addresses

array

提供标记为就绪的相关端口的 IP 地址。这些端点应该被视为安全的负载均衡器和客户端。

addresses[]

对象

EndpointAddress 是一个描述单个 IP 地址的元组。

notReadyAddresses

array

提供相关端口但当前未标记为就绪的 IP 地址,因为它们尚未完成,并且最近未完成就绪度检查,或者最近失败了存活度检查。

notReadyAddresses[]

对象

EndpointAddress 是一个描述单个 IP 地址的元组。

ports

array

相关 IP 地址上可用的端口号。

ports[]

对象

EndpointPort 是一个描述单个端口的元组。

11.1.3. .subsets[].addresses

描述
提供标记为就绪的相关端口的 IP 地址。这些端点应该被视为安全的负载均衡器和客户端。
类型
array

11.1.4. .subsets[].addresses[]

描述
EndpointAddress 是一个描述单个 IP 地址的元组。
类型
object
必填
  • ip
Expand
属性类型描述

hostname

字符串

此端点的主机名

ip

字符串

此端点的 IP。可能不能是 loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10)或 link-local multicast (224.0.0.0/24 或 ff02::/16)。

nodeName

字符串

可选:托管此端点的节点。这可用于确定本地到节点的端点。

targetRef

对象

ObjectReference 包含足够信息供您检查或修改引用的对象。

11.1.5. .subsets[].addresses[].targetRef

描述
ObjectReference 包含足够信息供您检查或修改引用的对象。
类型
object
Expand
属性类型描述

apiVersion

字符串

引用的 API 版本。

fieldPath

字符串

如果引用的是对象的一部分而非整个对象,则该字符串应包含有效的 JSON/Go 字段访问声明,如 desiredState.manifest.containers[2]。例如,如果对象引用是一个 pod 中的容器,它应该还以下类似: "spec.containers{name}"(其中 "name" 是指触发事件的容器的名称),如果不使用容器名称,则应类似于 "spec.containers[2]"(使用此 pod 中索引值为 2 的容器)。选择这个语法的原因是,为了有一些指向对象部分的正确定义方法。

kind

字符串

引用的类型。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

name

字符串

引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespace

字符串

引用的命名空间。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersion

字符串

指定构成这个引用的 resourceVersion(如果存在)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uid

字符串

引用的 UID。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

11.1.6. .subsets[].notReadyAddresses

描述
提供相关端口但当前未标记为就绪的 IP 地址,因为它们尚未完成,并且最近未完成就绪度检查,或者最近失败了存活度检查。
类型
array

11.1.7. .subsets[].notReadyAddresses[]

描述
EndpointAddress 是一个描述单个 IP 地址的元组。
类型
object
必填
  • ip
Expand
属性类型描述

hostname

字符串

此端点的主机名

ip

字符串

此端点的 IP。可能不能是 loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10)或 link-local multicast (224.0.0.0/24 或 ff02::/16)。

nodeName

字符串

可选:托管此端点的节点。这可用于确定本地到节点的端点。

targetRef

对象

ObjectReference 包含足够信息供您检查或修改引用的对象。

11.1.8. .subsets[].notReadyAddresses[].targetRef

描述
ObjectReference 包含足够信息供您检查或修改引用的对象。
类型
object
Expand
属性类型描述

apiVersion

字符串

引用的 API 版本。

fieldPath

字符串

如果引用的是对象的一部分而非整个对象,则该字符串应包含有效的 JSON/Go 字段访问声明,如 desiredState.manifest.containers[2]。例如,如果对象引用是一个 pod 中的容器,它应该还以下类似: "spec.containers{name}"(其中 "name" 是指触发事件的容器的名称),如果不使用容器名称,则应类似于 "spec.containers[2]"(使用此 pod 中索引值为 2 的容器)。选择这个语法的原因是,为了有一些指向对象部分的正确定义方法。

kind

字符串

引用的类型。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

name

字符串

引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespace

字符串

引用的命名空间。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersion

字符串

指定构成这个引用的 resourceVersion(如果存在)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uid

字符串

引用的 UID。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

11.1.9. .subsets[].ports

描述
相关 IP 地址上可用的端口号。
类型
array

11.1.10. .subsets[].ports[]

描述
EndpointPort 是一个描述单个端口的元组。
类型
object
必填
  • port
Expand
属性类型描述

appProtocol

字符串

此端口的应用程序协议。这用作实现的提示,以便为它们理解的协议提供更丰富的行为。此字段遵循标准 Kubernetes 标签语法。有效值为:

* 未前缀的协议名称 - 为 IANA 标准服务名称保留(如 RFC-6335 和 https://www.iana.org/assignments/service-names)。

* Kubernetes-defined prefixed name: * 'kubernetes.io/h2c' - HTTP/2 before knowledge overtext as https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- * 'kubernetes.io/ws' - WebSocket over cleartext,如 https://www.rfc-editor.org/rfc/rfc6455 * 'kubernetes.io/wss' - WebSocket over TLS 所述

* 其他协议应使用定义实施的前缀名称,如 mycompany.com/my-custom-protocol。

name

字符串

此端口的名称。这必须与对应的 ServicePort 中的 'name' 字段匹配。必须是 DNS_LABEL。仅在定义了一个端口时才可选。

port

整数

端点的端口号。

protocol

字符串

此端口的 IP 协议。必须是 UDP、TCP 或 SCTP。默认为 TCP。

可能枚举值: - "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

11.2. API 端点

可用的 API 端点如下:

  • /api/v1/endpoints

    • GET: 列出或监视类型为 Endpoints 的对象
  • /api/v1/watch/endpoints

    • GET: 观察单个对 Endpoints 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
  • /api/v1/namespaces/{namespace}/endpoints

    • DELETE :删除端点的集合
    • GET: 列出或监视类型为 Endpoints 的对象
    • POST :创建端点
  • /api/v1/watch/namespaces/{namespace}/endpoints

    • GET: 观察单个对 Endpoints 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
  • /api/v1/namespaces/{namespace}/endpoints/{name}

    • DELETE :删除端点
    • GET :读取指定的端点
    • PATCH: 部分更新指定的端点
    • PUT :替换指定的端点
  • /api/v1/watch/namespaces/{namespace}/endpoints/{name}

    • GET: 观察对类型为 Endpoints 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。

11.2.1. /api/v1/endpoints

HTTP 方法
GET
描述
列出或监视类型为 Endpoints 的对象
Expand
表 11.1. HTTP 响应
HTTP 代码响应正文

200 - OK

EndpointsList 模式

401 - Unauthorized

11.2.2. /api/v1/watch/endpoints

HTTP 方法
GET
描述
观察单个对 Endpoints 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
Expand
表 11.2. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

11.2.3. /api/v1/namespaces/{namespace}/endpoints

HTTP 方法
DELETE
描述
删除端点集合
Expand
表 11.3. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 11.4. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出或监视类型为 Endpoints 的对象
Expand
表 11.5. HTTP 响应
HTTP 代码响应正文

200 - OK

EndpointsList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建端点
Expand
表 11.6. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 11.7. 主体参数
参数类型描述

正文(body)

Endpoints 模式

 
Expand
表 11.8. HTTP 响应
HTTP 代码响应正文

200 - OK

Endpoints 模式

201 - Created

Endpoints 模式

202 - Accepted

Endpoints 模式

401 - Unauthorized

11.2.4. /api/v1/watch/namespaces/{namespace}/endpoints

HTTP 方法
GET
描述
观察单个对 Endpoints 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
Expand
表 11.9. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

11.2.5. /api/v1/namespaces/{namespace}/endpoints/{name}

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

name

字符串

端点的名称

HTTP 方法
DELETE
描述
删除端点
Expand
表 11.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 11.12. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
读取指定的端点
Expand
表 11.13. HTTP 响应
HTTP 代码响应正文

200 - OK

Endpoints 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的端点
Expand
表 11.14. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 11.15. HTTP 响应
HTTP 代码响应正文

200 - OK

Endpoints 模式

201 - Created

Endpoints 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的端点
Expand
表 11.16. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 11.17. 主体参数
参数类型描述

正文(body)

Endpoints 模式

 
Expand
表 11.18. HTTP 响应
HTTP 代码响应正文

200 - OK

Endpoints 模式

201 - Created

Endpoints 模式

401 - Unauthorized

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

name

字符串

端点的名称

HTTP 方法
GET
描述
观察对类型为 Endpoints 的对象的更改。已弃用:使用带列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
Expand
表 11.20. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

第 12 章 EndpointSlice [discovery.k8s.io/v1]

描述
EndpointSlice 代表实施服务的端点的子集。对于给定服务,可能有多个 EndpointSlice 对象,它们通过标签选择,必须加入来生成完整的端点。
类型
object
必填
  • addressType
  • 端点

12.1. 规格

Expand
属性类型描述

addressType

字符串

addressType 指定此 EndpointSlice 执行的地址类型。这个片段中的所有地址都必须是相同的类型。此字段在创建后是不可变的。目前支持以下地址类型:* IPv4:代表 IPv4 地址。* IPv6:代表 IPv6 地址。* FQDN:代表完全限定域名。

可能枚举值: - "FQDN" 代表 FQDN。- "IPv4" 代表 IPv4 地址。- "IPv6" 代表 IPv6 地址。

apiVersion

string

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

端点

array

端点是此片段中唯一端点的列表。每个片段最多可能包括 1000 个端点。

endpoints[]

对象

端点代表实施服务的单一逻辑"后端"。

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

标准对象元数据。

ports

array

ports 指定此片段中每个端点公开的网络端口列表。每个端口都必须具有唯一的名称。当端口为空时,这表明没有定义的端口。当使用 nil port 值定义端口时,它表示 "all ports"。每个片段最多可能包括 100 个端口。

ports[]

对象

EndpointPort 代表 EndpointSlice 使用的端口

12.1.1. .endpoints

描述
端点是此片段中唯一端点的列表。每个片段最多可能包括 1000 个端点。
类型
array

12.1.2. .endpoints[]

描述
端点代表实施服务的单一逻辑"后端"。
类型
object
必填
  • addresses
Expand
属性类型描述

addresses

数组(字符串)

此端点的地址。此字段的内容会根据对应的 EndpointSlice addressType 字段进行解释。消费者必须在自身功能的情况下处理不同类型的地址。这必须至少包含一个地址,但没有超过 100 个。这些都假定是非常有的,客户端可能会选择仅使用第一个元素。请参阅 :https://issue.k8s.io/106267

conditions

对象

EndpointConditions 代表端点的当前条件。

deprecatedTopology

对象(字符串)

deprecatedTopology 包含 v1beta1 API 的拓扑信息部分。此字段已弃用,并在 v1beta1 API 被删除时删除(不早于 kubernetes v1.24)。虽然此字段可以保存值,但无法通过 v1 API 写入值,但任何尝试写入它都将静默忽略。拓扑信息可在 zone 和 nodeName 字段中找到。

hints

对象

EndpointHints 提供了描述如何使用端点的提示。

hostname

字符串

此端点的主机名。此字段可由端点使用者使用,以区分不同的端点(例如在 DNS 名称中)。使用相同主机名的多个端点应被视为无限(例如,DNS 中的多个 A 值)。必须是小写并传递 DNS 标签(RFC 1123)验证。

nodeName

字符串

nodeName 代表托管此端点的节点的名称。这可用于确定本地到节点的端点。

targetRef

ObjectReference

TargetRef 是代表此端点的 Kubernetes 对象的引用。

zone

字符串

zone 是此端点所在的区域的名称。

12.1.3. .endpoints[].conditions

描述
EndpointConditions 代表端点的当前条件。
类型
object
Expand
属性类型描述

ready

布尔值

Ready 表示此端点已准备好接收流量,具体取决于任何系统正在管理端点。nil 值表示未知状态。在大多数情况下,消费者应将此未知状态解释为就绪。出于兼容性的原因,对于终止端点,ready 不应该为 "true",但当正常就绪度行为被显式覆盖时,例如,相关服务设置了 publishNotReadyAddresses 标志时。

serving

布尔值

serving 与 ready 相同,除了无论端点终止状态如何设置。对于终止的就绪端点,此条件应设为 true。如果为 nil,消费者应该会延迟到 ready 条件。

Terminating

布尔值

Terminating 表示此端点正在终止。nil 值表示未知状态。消费者应解释这个未知状态,以表示端点没有终止。

12.1.4. .endpoints[].hints

描述
EndpointHints 提供了描述如何使用端点的提示。
类型
object
Expand
属性类型描述

forZones

array

forZones 表示此端点应使用的区域,以启用拓扑感知路由。

forZones[]

对象

ForZone 提供有关哪些区域应使用此端点的信息。

12.1.5. .endpoints[].hints.forZones

描述
forZones 表示此端点应使用的区域,以启用拓扑感知路由。
类型
array

12.1.6. .endpoints[].hints.forZones[]

描述
ForZone 提供有关哪些区域应使用此端点的信息。
类型
object
必填
  • name
Expand
属性类型描述

name

字符串

name 代表区域的名称。

12.1.7. .ports

描述
ports 指定此片段中每个端点公开的网络端口列表。每个端口都必须具有唯一的名称。当端口为空时,这表明没有定义的端口。当使用 nil port 值定义端口时,它表示 "all ports"。每个片段最多可能包括 100 个端口。
类型
array

12.1.8. .ports[]

描述
EndpointPort 代表 EndpointSlice 使用的端口
类型
object
Expand
属性类型描述

appProtocol

字符串

此端口的应用程序协议。这用作实现的提示,以便为它们理解的协议提供更丰富的行为。此字段遵循标准 Kubernetes 标签语法。有效值为:

* 未前缀的协议名称 - 为 IANA 标准服务名称保留(如 RFC-6335 和 https://www.iana.org/assignments/service-names)。

* Kubernetes-defined prefixed name: * 'kubernetes.io/h2c' - HTTP/2 before knowledge overtext as https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- * 'kubernetes.io/ws' - WebSocket over cleartext,如 https://www.rfc-editor.org/rfc/rfc6455 * 'kubernetes.io/wss' - WebSocket over TLS 所述

* 其他协议应使用定义实施的前缀名称,如 mycompany.com/my-custom-protocol。

name

string

name 表示此端口的名称。EndpointSlice 中的所有端口都必须具有唯一的名称。如果 EndpointSlice 派生自 Kubernetes 服务,则对应于 Service.ports[].name。name 必须是空字符串或传递 DNS_LABEL 验证:* 不得超过 63 个字符。* 必须包含小写字母数字字符或 '-'。* 必须以字母数字字符开头和结尾。默认为空字符串。

port

整数

port 代表端点的端口号。如果没有指定,则端口不会被限制,必须在特定消费者的上下文中解释端口。

protocol

string

protocol 代表此端口的 IP 协议。必须是 UDP、TCP 或 SCTP。默认为 TCP。

可能枚举值: - "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

12.2. API 端点

可用的 API 端点如下:

  • /apis/discovery.k8s.io/v1/endpointslices

    • GET: 列出或监视类型为 EndpointSlice 的对象
  • /apis/discovery.k8s.io/v1/watch/endpointslices

    • GET: 观察单个更改 EndpointSlice. deprecated: 改为使用 'watch' 参数及列表操作。
  • /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices

    • DELETE :删除 EndpointSlice 的集合
    • GET: 列出或监视类型为 EndpointSlice 的对象
    • POST :创建 EndpointSlice
  • /apis/discovery.k8s.io/v1/watch/namespaces/{namespace}/endpointslices

    • GET: 观察单个更改 EndpointSlice. deprecated: 改为使用 'watch' 参数及列表操作。
  • /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}

    • DELETE :删除 EndpointSlice
    • GET :读取指定的 EndpointSlice
    • PATCH: 部分更新指定的 EndpointSlice
    • PUT :替换指定的 EndpointSlice
  • /apis/discovery.k8s.io/v1/watch/namespaces/{namespace}/endpointslices/{name}

    • GET: 观察对类型为 EndpointSlice. 的对象的更改已弃用:使用带列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。

12.2.1. /apis/discovery.k8s.io/v1/endpointslices

HTTP 方法
GET
描述
列出或监视 EndpointSlice 类型的对象
Expand
表 12.1. HTTP 响应
HTTP 代码响应正文

200 - OK

EndpointSliceList 模式

401 - Unauthorized

12.2.2. /apis/discovery.k8s.io/v1/watch/endpointslices

HTTP 方法
GET
描述
观察单个对 EndpointSlice 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
Expand
表 12.2. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 EndpointSlice 集合
Expand
表 12.3. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 12.4. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出或监视 EndpointSlice 类型的对象
Expand
表 12.5. HTTP 响应
HTTP 代码响应正文

200 - OK

EndpointSliceList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 EndpointSlice
Expand
表 12.6. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 12.7. 主体参数
参数类型描述

正文(body)

EndpointSlice 模式

 
Expand
表 12.8. HTTP 响应
HTTP 代码响应正文

200 - OK

EndpointSlice 模式

201 - Created

EndpointSlice 模式

202 - Accepted

EndpointSlice 模式

401 - Unauthorized

HTTP 方法
GET
描述
观察单个对 EndpointSlice 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
Expand
表 12.9. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

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

name

字符串

EndpointSlice 的名称

HTTP 方法
DELETE
描述
删除 EndpointSlice
Expand
表 12.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 12.12. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的 EndpointSlice
Expand
表 12.13. HTTP 响应
HTTP 代码响应正文

200 - OK

EndpointSlice 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 EndpointSlice
Expand
表 12.14. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 12.15. HTTP 响应
HTTP 代码响应正文

200 - OK

EndpointSlice 模式

201 - Created

EndpointSlice 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 EndpointSlice
Expand
表 12.16. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 12.17. 主体参数
参数类型描述

正文(body)

EndpointSlice 模式

 
Expand
表 12.18. HTTP 响应
HTTP 代码响应正文

200 - OK

EndpointSlice 模式

201 - Created

EndpointSlice 模式

401 - Unauthorized

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

name

字符串

EndpointSlice 的名称

HTTP 方法
GET
描述
观察对类型为 EndpointSlice 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
Expand
表 12.20. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

描述

EgressRouter 是一种允许用户定义出口路由器的功能,充当 pod 和外部系统间的桥接。出口路由器运行一个服务,它将来自 pod 或一组 pod 的出口流量重定向到远程外部系统或每个配置的多个目的地。

它被 cluster-network-operator 使用。更具体地说,如果一个带有 <name> 的 EgressRouter CR,CNO 将创建和管理: - 名为 <name> 的出口 pod - 名为 <name> 的出口 pod - 名为 <name> 的 NAD

兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。

EgressRouter 是单个 egressrouter pod 配置对象。

类型
object
必填
  • spec

13.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

对象

所需出口路由器的规格。

status

对象

观察到 EgressRouter 的状态。

13.1.1. .spec

描述
所需出口路由器的规格。
类型
object
必填
  • addresses
  • 模式
  • networkInterface
Expand
属性类型描述

addresses

array

要在 pod 二级接口上配置的 IP 地址列表。

addresses[]

对象

EgressRouterAddress 包含要在路由器接口上配置的 IP CIDR 和网关的一对

模式

string

模式描述用于出口路由器的模式。默认模式为 "Redirect",它是目前唯一支持的模式。

networkInterface

对象

要创建/使用的接口规格。默认值为 macvlan。目前只支持 macvlan。

重定向

object

redirect 代表特定于重定向模式的配置参数。

13.1.2. .spec.addresses

描述
要在 pod 二级接口上配置的 IP 地址列表。
类型
array

13.1.3. .spec.addresses[]

描述
EgressRouterAddress 包含要在路由器接口上配置的 IP CIDR 和网关的一对
类型
object
必填
  • ip
Expand
属性类型描述

gateway

字符串

如果无法自动决定下一跃点网关的 IP 地址。可以是 IPv4 或 IPv6。

ip

string

IP 是要在路由器接口上配置的地址。可以是 IPv4 或 IPv6。

13.1.4. .spec.networkInterface

描述
要创建/使用的接口规格。默认值为 macvlan。目前只支持 macvlan。
类型
object
Expand
属性类型描述

macvlan

对象

特定于 interfaceType macvlan 的参数

13.1.5. .spec.networkInterface.macvlan

描述
特定于 interfaceType macvlan 的参数
类型
object
必填
  • 模式
Expand
属性类型描述

master

字符串

master 接口的名称。如果可以从 IP 地址中推断出来,则不需要指定。

模式

string

模式描述了用于 macvlan 接口的模式 ; Bridge|Private|VEPA|Passthru 之一。默认模式为 "Bridge"。

13.1.6. .spec.redirect

描述
redirect 代表特定于重定向模式的配置参数。
类型
object
Expand
属性类型描述

fallbackIP

string

fallbackIP 指定远程目的地的 IP 地址。可以是 IPv4 或 IPv6。如果没有指定重定向规则,则来自路由器的所有流量都会被重定向到此 IP。如果指定了重定向规则,则路由器上的任何其他端口(未定义)上的任何连接都将重定向到此 IP。如果指定了重定向规则,且没有提供回退 IP,则其他端口上的连接将直接被拒绝。

redirectRules

array

L4RedirectRules 列表,在重定向模式中定义从 pod 到目的地的 DNAT 重定向。

redirectRules[]

对象

L4RedirectRule 定义从给定端口到目标 IP 和端口的 DNAT 重定向。

13.1.7. .spec.redirect.redirectRules

描述
L4RedirectRules 列表,在重定向模式中定义从 pod 到目的地的 DNAT 重定向。
类型
array

13.1.8. .spec.redirect.redirectRules[]

描述
L4RedirectRule 定义从给定端口到目标 IP 和端口的 DNAT 重定向。
类型
object
必填
  • destinationIP
  • port
  • protocol
Expand
属性类型描述

destinationIP

字符串

ip 指定远程目标的 IP 地址。可以是 IPv4 或 IPv6。

port

整数

port 是客户端应向其发送流量的端口号。

protocol

string

协议可以是 TCP、SCTP 或 UDP。

targetPort

整数

targetPort 允许指定流量重定向到的远程目的地上的端口号。如果未指定,则使用 "Port" 的值。

13.1.9. .status

描述
观察到 EgressRouter 的状态。
类型
object
必填
  • conditions
Expand
属性类型描述

conditions

array

观察出口路由器的状态

conditions[]

对象

EgressRouterStatusCondition 代表出口路由器的受管和受监控组件的状态。

13.1.10. .status.conditions

描述
观察出口路由器的状态
类型
array

13.1.11. .status.conditions[]

描述
EgressRouterStatusCondition 代表出口路由器的受管和受监控组件的状态。
类型
object
必填
  • status
  • type
Expand
属性类型描述

lastTransitionTime

``

lastTransitionTime 是当前 status 属性最后一次更新的时间。

message

字符串

Message 提供有关当前条件的附加信息。这只能被人类使用。它可以包含行 Feed 字符(U+000A),该字符应作为新行呈现。

reason

字符串

reason 是条件当前状态的 CamelCase 原因。

status

字符串

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

type

string

Type 指定此条件所报告的方面; Available, Progressing, Degraded 之一

13.2. API 端点

可用的 API 端点如下:

  • /apis/network.operator.openshift.io/v1/egressrouters

    • GET: 列出类型为 EgressRouter 的对象
  • /apis/network.operator.openshift.io/v1/namespaces/{namespace}/egressrouters

    • DELETE :删除 EgressRouter 集合
    • GET: 列出类型为 EgressRouter 的对象
    • POST :创建 EgressRouter
  • /apis/network.operator.openshift.io/v1/namespaces/{namespace}/egressrouters/{name}

    • DELETE :删除 EgressRouter
    • GET :读取指定的 EgressRouter
    • PATCH: 部分更新指定的 EgressRouter
    • PUT :替换指定的 EgressRouter
  • /apis/network.operator.openshift.io/v1/namespaces/{namespace}/egressrouters/{name}/status

    • GET :指定 EgressRouter 的读取状态
    • PATCH: 部分更新指定 EgressRouter 的状态
    • PUT :替换指定 EgressRouter 的状态
HTTP 方法
GET
描述
列出 EgressRouter 类型的对象
Expand
表 13.1. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressRouterList 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 EgressRouter 集合
Expand
表 13.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出 EgressRouter 类型的对象
Expand
表 13.3. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressRouterList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 EgressRouter
Expand
表 13.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 13.5. 主体参数
参数类型描述

正文(body)

EgressRouter 模式

 
Expand
表 13.6. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressRouter 模式

201 - Created

EgressRouter 模式

202 - Accepted

EgressRouter 模式

401 - Unauthorized

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

name

字符串

EgressRouter 的名称

HTTP 方法
DELETE
描述
删除 EgressRouter
Expand
表 13.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 13.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的 EgressRouter
Expand
表 13.10. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressRouter 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 EgressRouter
Expand
表 13.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 13.12. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressRouter 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 EgressRouter
Expand
表 13.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 13.14. 主体参数
参数类型描述

正文(body)

EgressRouter 模式

 
Expand
表 13.15. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressRouter 模式

201 - Created

EgressRouter 模式

401 - Unauthorized

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

name

字符串

EgressRouter 的名称

HTTP 方法
GET
描述
指定 EgressRouter 的读取状态
Expand
表 13.17. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressRouter 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 EgressRouter 的状态
Expand
表 13.18. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 13.19. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressRouter 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 EgressRouter 的状态
Expand
表 13.20. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 13.21. 主体参数
参数类型描述

正文(body)

EgressRouter 模式

 
Expand
表 13.22. HTTP 响应
HTTP 代码响应正文

200 - OK

EgressRouter 模式

201 - Created

EgressRouter 模式

401 - Unauthorized

第 14 章 GRPCRoute [gateway.networking.k8s.io/v1]

描述

GRPCRoute 提供路由 gRPC 请求的方法。这包括通过主机名、gRPC 服务、gRPC 方法或 HTTP/2 标头来匹配请求的能力。过滤器可用于指定其他处理步骤。后端指定匹配请求的位置。

GRPCRoute 在网关 API 内受扩展支持。在以下规格中,单词 "MUST" 表示支持 GRPCRoute 的实施必须符合指定要求,但不支持此路由类型的实施不需要遵循要求,除非明确指示。

支持带有 HTTPS ProtocolTypeGRPCRoute 的实施必须接受 HTTP/2 连接,而无需从 HTTP/1.1 进行初始升级,例如通过 ALPN。如果实现不支持此功能,则必须将受影响监听器的 "Accepted" 条件设置为 "False",原因为 "UnsupportedProtocol"。实施 MAY 也接受来自 HTTP/1 的 HTTP/2 连接。

支持带有 HTTP ProtocolTypeGRPCRoute 的实现,在没有从 HTTP/1.1 进行初始升级的情况下,通过明文 TCP (h2c、 https://www.rfc-editor.org/rfc/rfc7540#section-3.4)支持 HTTP/2。如果实现不支持此功能,则必须将受影响监听器的 "Accepted" 条件设置为 "False",原因为 "UnsupportedProtocol"。实施 MAY 还接受从 HTTP/1 升级的 HTTP/2 连接,即无需事先了解。

类型
object

14.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

spec 定义 GRPCRoute 的所需状态。

status

object

Status 定义 GRPCRoute 的当前状态。

14.1.1. .spec

描述
spec 定义 GRPCRoute 的所需状态。
类型
object
Expand
属性类型描述

hostnames

数组(字符串)

hostnames 定义一组与 GRPC Host 标头匹配的主机名,以选择处理请求的 GRPCRoute。这与主机名的 RFC 1123 定义匹配,并带有 2 值得例外:

1.不允许使用 IP。2.主机名可以带有通配符标签前缀(.<)。通配符标签需要自行显示,作为第一个标签。

如果主机名由 Listener 和 GRPCRoute 指定,则必须至少有一个用于 GRPCRoute 的交集主机名才能附加到 Listener。例如:

* 使用 test.example.com 作为主机名的 Listener 与未指定任何主机名的 GRPCRoutes 匹配,或者至少指定了 test.example.com 或 3.0. example.com 之一。* 带有 2.2. example.com 作为主机名的 Listener 与未指定任何主机名的 GRPCRoutes 匹配,或者至少指定了与 Listener 主机名匹配的主机名。例如: test.example.com\*.example.com 均匹配。另一方面,example.comtest.example.net 不匹配。

带有通配符标签(MyPlaybooks)前缀的主机名被解释为后缀匹配。这意味着,对于 2.2. example.com 的匹配 将匹配 test.example.comfoo.test.example.com,但不匹配 example.com

如果 Listener 和 GRPCRoute 都指定了主机名,则忽略任何与 Listener 主机名不匹配的 GRPCRoute 主机名。例如,如果指定了 Listener. example.com,并且 GRPCRoute 指定 test.example.comtest.example.net,则test.example.net 必须被视为匹配项。

如果 Listener 和 GRPCRoute 都指定了主机名,并且与上述条件都不匹配,则实施不接受 GRPCRoute MUST。实现 MUST 引发 'Accepted' Condition,其状态在对应的 RouteParentStatus 中。

如果类型为 HTTPRoute 或 GRPCRoute 的 Route (A)附加到 Listener,并且侦听器已附加了其他类型的路由(B),并且 A 和 B 主机名的交集是非空的,那么实施 MUST 接受这两个路由之一,具体由以下条件确定:

* 基于创建时间戳的最旧的路由。* 路由以字母顺序按 "{namespace}/{name}" 开头。

拒绝的路由在对应的 RouteParentStatus 中引发 'Accepted' 条件,状态为 'False'。

支持:Core

parentRefs

数组

ParentRefs 引用路由要附加到的资源(通常为 Gateway)。请注意,引用的父资源需要允许此附加完成。对于网关,这意味着网关需要允许从此类和命名空间的 Routes 进行附加。对于服务,这意味着 Service 必须位于同一命名空间中用于 "producer" 路由,或者网格实现必须支持并允许所引用服务的 "consumer" 路由。ReferenceGrant 不适用于管理对 Services 的 ParentRefs to Services - 无法在与 Route 不同的命名空间中为服务创建 "producer" 路由。

支持"Core"支持的父资源有两种:

* gateway (Gateway conformance profile)* Service (Mesh conformance profile, only ClusterIP Services)

以后可能会扩展此 API,以支持其他类型的父资源。

ParentRefs 必须 不同。这意味着:

* 它们选择不同的对象。如果是这种情况,则 parentRef 条目会有所不同。就字段而言,这意味着由 ,kind,namespace, 和 name 定义的多部分键必须在 Route 中的所有 parentRef 条目中唯一。* 它们没有选择不同的对象,但每个可选字段都使用的每个可选字段,每个选择同一对象的 ParentRef 都必须将相同的可选字段设置为不同的值。如果一个 ParentRef 设置可选字段的组合,则所有字段都必须设置相同的组合。

一些示例:

* 如果一个 ParentRef 设置 sectionName,则引用同一对象的所有 ParentRefs 还必须设置 sectionName。* 如果一个 ParentRef 设置 端口,则引用同一对象的所有 ParentRefs 也必须设置 端口。* 如果一个 ParentRef 设置 sectionName 和端口,则引用同一对象的所有 ParentRefs 还必须设置 sectionName 和端口

可以单独引用多个不同的对象,这些对象可能会被实施折叠。例如,一些实现可能会选择将兼容的网关 Listeners 合并在一起。如果是这种情况,则也应合并附加到这些资源的路由列表。

请注意,对于跨命名空间边界的 ParentRefs,有特定的规则。只有跨命名空间引用被引用的命名空间中明确允许时才有效。例如,Gateway 具有 AllowedRoutes 字段,ReferenceGrant 提供了启用其他类型的跨命名空间参考的通用方法。

parentRefs[]

object

ParentReference 识别一个 API 对象(通常是网关),它被视为此资源的父项(通常是路由)。支持"Core"支持的父资源有两种:

* gateway (Gateway conformance profile)* Service (Mesh conformance profile, only ClusterIP Services)

以后可能会扩展此 API,以支持其他类型的父资源。

API 对象必须在集群中有效;集群中必须注册 Group 和 Kind,以便此引用有效。

rules

数组

规则是 GRPC 匹配器、过滤器和操作的列表。

rules[]

object

GRPCRouteRule 根据条件(匹配)、处理它(filters)并将请求转发到 API 对象(backendRefs),定义与 gRPC 请求匹配的语义。

14.1.2. .spec.parentRefs

描述

ParentRefs 引用路由要附加到的资源(通常为 Gateway)。请注意,引用的父资源需要允许此附加完成。对于网关,这意味着网关需要允许从此类和命名空间的 Routes 进行附加。对于服务,这意味着 Service 必须位于同一命名空间中用于 "producer" 路由,或者网格实现必须支持并允许所引用服务的 "consumer" 路由。ReferenceGrant 不适用于管理对 Services 的 ParentRefs to Services - 无法在与 Route 不同的命名空间中为服务创建 "producer" 路由。

支持"Core"支持的父资源有两种:

  • gateway (Gateway conformance profile)
  • 服务(Mesh conformance 配置集,仅限 ClusterIP 服务)

以后可能会扩展此 API,以支持其他类型的父资源。

ParentRefs 必须 不同。这意味着:

  • 它们选择不同的对象。如果是这种情况,则 parentRef 条目会有所不同。就字段而言,这意味着由 ,kind,namespace, 和 name 定义的多部分键必须在 Route 中的所有 parentRef 条目中唯一。
  • 它们没有选择不同的对象,但每个可选字段都使用的每个可选字段,每个选择同一对象的 ParentRef 都必须将相同的可选字段设置为不同的值。如果一个 ParentRef 设置可选字段的组合,则所有字段都必须设置相同的组合。

一些示例:

  • 如果一个 ParentRef set sectionName,则引用同一对象的所有 ParentRefs 还必须设置 sectionName
  • 如果一个 ParentRef 设置 端口,则引用同一对象的所有 ParentRefs 也必须设置 端口
  • 如果一个 ParentRef 设置 sectionName 和端口,则引用同一对象的所有 ParentRefs 还必须设置 sectionName 和端口

可以单独引用多个不同的对象,这些对象可能会被实施折叠。例如,一些实现可能会选择将兼容的网关 Listeners 合并在一起。如果是这种情况,则也应合并附加到这些资源的路由列表。

请注意,对于跨命名空间边界的 ParentRefs,有特定的规则。只有跨命名空间引用被引用的命名空间中明确允许时才有效。例如,Gateway 具有 AllowedRoutes 字段,ReferenceGrant 提供了启用其他类型的跨命名空间参考的通用方法。

类型
数组

14.1.3. .spec.parentRefs[]

描述

ParentReference 识别一个 API 对象(通常是网关),它被视为此资源的父项(通常是路由)。支持"Core"支持的父资源有两种:

  • gateway (Gateway conformance profile)
  • 服务(Mesh conformance 配置集,仅限 ClusterIP 服务)

以后可能会扩展此 API,以支持其他类型的父资源。

API 对象必须在集群中有效;集群中必须注册 Group 和 Kind,以便此引用有效。

类型
object
必填
  • name
Expand
属性类型描述

group

string

组是引用的组。如果未指定,"gateway.networking.k8s.io" 将推断出来。要设置核心 API 组(如 "Service" kind referent),Group 必须明确设置为 "" (空字符串)。

支持:Core

kind

string

kind 是引用的类型。

支持"Core"支持的父资源有两种:

* gateway (Gateway conformance profile)* Service (Mesh conformance profile, only ClusterIP Services)

对其他资源的支持是特定于实施的。

name

string

name 是引用的名称。

支持:Core

namespace

string

namespace 是引用的命名空间。如果未指定,这指的是 Route 的本地命名空间。

请注意,对于跨命名空间边界的 ParentRefs 有特定的规则。只有跨命名空间引用被引用的命名空间中明确允许时才有效。例如: Gateway 具有 AllowedRoutes 字段,ReferenceGrant 提供了一种通用方法来启用其他类型的跨命名空间引用。

支持:Core

port

整数

port 是此 Route 目标的网络端口。它可以根据父资源的类型进行解释。

当父资源是网关时,此目标是在支持此类 Route (并选择此路由)的指定端口上侦听所有的监听程序。不建议设置 Port,除非 Route 中指定的网络行为必须应用到特定端口,而不是可以更改其端口的监听程序。当同时指定了 Port 和 sectionName 时,所选监听器的名称和端口必须与两个指定的值匹配。

实施 MAY 选择支持其他父资源。支持其他类型的父资源的实施必须清楚地记录/如果端口的解释方式。

对于状态,只要父资源接受部分,则附加被视为成功。例如,网关监听程序可以通过 Route kind、namespace 或 hostname 来限制哪些 Routes 可以附加到它们。如果 2 网关监听程序的 1 个接受来自引用路由的附件,则路由必须被视为成功附加。如果没有网关监听程序接受来自此 Route 的附件,则路由必须被视为与网关分离。

支持:扩展

sectionName

string

SectionName 是目标资源中的一个部分的名称。在以下资源中,sectionName 被解释为:

* gateway: Listener 名称。当同时指定了 Port (experimental)和 SectionName 时,所选监听器的名称和端口必须与两个指定的值匹配。* service: 端口名称。当同时指定了 Port (experimental)和 SectionName 时,所选监听器的名称和端口必须与两个指定的值匹配。

实施 MAY 选择支持将路由附加到其他资源。如果是这种情况,它们必须清楚地记录 SectionName 的解释方式。

如果未指定(空字符串),这将引用整个资源。对于状态,如果父资源中的至少一个部分接受它,则附加被视为成功。例如,网关监听程序可以通过 Route kind、namespace 或 hostname 来限制哪些 Routes 可以附加到它们。如果 2 网关监听程序的 1 个接受来自引用路由的附件,则路由必须被视为成功附加。如果没有网关监听程序接受来自此 Route 的附件,则路由必须被视为与网关分离。

支持:Core

14.1.4. .spec.rules

描述
规则是 GRPC 匹配器、过滤器和操作的列表。
类型
array

14.1.5. .spec.rules[]

描述
GRPCRouteRule 根据条件(匹配)、处理它(filters)并将请求转发到 API 对象(backendRefs),定义与 gRPC 请求匹配的语义。
类型
object
Expand
属性类型描述

backendRefs

数组

BackendRefs 定义应发送匹配的请求的后端。

此处的故障行为取决于指定的 BackendRefs 数量以及无效的后端。

如果 BackendRefs 中的所有 条目都无效,且没有在此路由规则中指定过滤器,则 与这个 规则匹配的所有流量都必须接收 UNAVAILABLE 状态。

有关使单个 GRPCBackendRef 无效的规则,请参阅 GRPCBackendRef 定义。

当 GRPCBackendRef 无效时,必须为其他路由到无效后端的请求返回 UNAVAILABLE 状态。如果指定了多个后端,一些后端无效,否则将路由到无效的后端所需的请求比例需要接收 UNAVAILABLE 状态。

例如,如果指定了两个后端,并带有相等的权重,一个无效,50% 的流量需要接收 UNAVAILABLE 状态。实施可能会选择 50% 的决定方式。

支持 :Kubernetes Service 的核心

支持:特定于任何其他资源的实现

对权重的支持: Core

backendRefs[]

object

GRPCBackendRef 定义 GRPCRoute 如何转发 gRPC 请求。

请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。

过滤器

数组

过滤器定义应用到与此规则匹配的请求的过滤器。

当前未指定多个行为的排序效果。这可以根据 alpha 阶段中的反馈来改变。

此级别上的一致性级别会根据过滤器类型定义:

- 所有核心过滤器都必须受到支持 GRPCRoute 的所有实现支持。- 鼓励实施器支持扩展过滤器。- 特定于实施的自定义过滤器在实现过程中没有 API 保证。

除非在过滤器中明确指定,否则不支持多次指定同一过滤器。

如果实施无法支持过滤器的组合,它必须清楚地记录该限制。如果指定了不兼容或不支持的过滤器,并导致 Accepted 条件被设置为 False 状态,则实现可能会使用 IncompatibleFilters reason 来指定此配置错误。

支持:Core

filters[]

object

GRPCRouteFilter 定义在请求或响应生命周期内必须完成的处理步骤。GRPCRouteFilters 充当一个扩展点,用于表达在网关实施中可能完成的处理。有些示例包括请求或响应修改、实施身份验证策略、速率限制和流量控制。API 保证/格式根据过滤器的类型定义。

matches

数组

matches 定义用于与传入 gRPC 请求匹配的规则的条件。每个匹配项都独立,例如,如果 满足任何 其中一个匹配项,则此规则将匹配。

例如,使用以下内容匹配配置:

matches: - method: service: foo.bar headers: values: version: 2 - method: service: foo.bar.v2

要针对此规则匹配请求,它必须满足两个条件的 EITHER:

- foo.bar AND 的服务包含标头 版本:2- service of foo.bar.v2

有关如何指定要同时指定多个匹配条件的信息,请参阅 GRPCRouteMatch 文档。

如果没有指定匹配项,实施必须匹配每个 gRPC 请求。

从 GRPCRoutes MUST 生成的代理或负载均衡器路由配置根据以下条件确定规则的优先级,继续绑定。GRPCRoutes 和 HTTPRoutes 之间不进行合并。优先级必须为具有最大数量的规则指定:

* 在匹配非通配符主机名中的字符。* 匹配主机名中的字符。* 匹配服务中的字符。* 匹配方法中的字符。* 标头匹配。

如果绑定仍存在于多个路由中,则按以下条件顺序确定匹配的优先级,继续绑定:

* 基于创建时间戳的最旧的路由。* 路由以字母顺序按 "{namespace}/{name}" 开头。

如果绑定仍存在于给定优先级的路由中,则必须为满足上述条件的第一个匹配规则授予匹配的优先级。

matches[]

object

GRPCRouteMatch 定义用于将请求与给定操作匹配的 predicate。多个匹配类型是 AND,即仅在满足所有条件时,匹配才会评估为 true。

例如,只有在服务是 foo 且包含 version: v1 标头时,以下匹配才会与 gRPC 请求匹配:

matches: - method: type: Exact service: "foo" headers: - name: "version" value "v1"

14.1.6. .spec.rules[].backendRefs

描述

BackendRefs 定义应发送匹配的请求的后端。

此处的故障行为取决于指定的 BackendRefs 数量以及无效的后端。

如果 BackendRefs 中的所有 条目都无效,且没有在此路由规则中指定过滤器,则 与这个 规则匹配的所有流量都必须接收 UNAVAILABLE 状态。

有关使单个 GRPCBackendRef 无效的规则,请参阅 GRPCBackendRef 定义。

当 GRPCBackendRef 无效时,必须为其他路由到无效后端的请求返回 UNAVAILABLE 状态。如果指定了多个后端,一些后端无效,否则将路由到无效的后端所需的请求比例需要接收 UNAVAILABLE 状态。

例如,如果指定了两个后端,并带有相等的权重,一个无效,50% 的流量需要接收 UNAVAILABLE 状态。实施可能会选择 50% 的决定方式。

支持 :Kubernetes Service 的核心

支持:特定于任何其他资源的实现

对权重的支持: Core

类型
数组

14.1.7. .spec.rules[].backendRefs[]

描述

GRPCBackendRef 定义 GRPCRoute 如何转发 gRPC 请求。

请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。

类型
object
必填
  • name
Expand
属性类型描述

过滤器

数组

只有当请求被转发到此处定义的后端时,才会执行此级别中定义的过滤器。

支持:特定于实现的(对于更广泛的过滤器支持,请使用 GRPCRouteRule 中的 Filters 字段。)

filters[]

object

GRPCRouteFilter 定义在请求或响应生命周期内必须完成的处理步骤。GRPCRouteFilters 充当一个扩展点,用于表达在网关实施中可能完成的处理。有些示例包括请求或响应修改、实施身份验证策略、速率限制和流量控制。API 保证/格式根据过滤器的类型定义。

group

string

组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。

kind

string

kind 是引用的 Kubernetes 资源类型。例如 "Service"。

如果没有指定,则默认为 "Service"。

ExternalName 服务可以引用集群中可能位于的 CNAME DNS 记录,因此很难考虑一致性。它们也可能不安全(请参阅 CVE-2021-25740 了解更多信息)。实施 SHOULD 不支持 ExternalName 服务。

Support: Core (带有 ExternalName 以外的类型的服务)

支持:特定于实现的(类型为 ExternalName 的服务)

name

string

name 是引用的名称。

namespace

string

namespace 是后端的命名空间。如果未指定,本地命名空间将被推断出来。

请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。

支持:Core

port

整数

port 指定用于此资源的目标端口号。当引用是 Kubernetes 服务时,需要端口。在本例中,端口号是服务端口号,而不是目标端口。对于其他资源,目的地端口可能源自引用资源或此字段。

weight

整数

weight 指定转发到引用的后端的请求的比例。这被计算为 weight/ (这个 BackendRefs 列表中有所有权重)。对于非零值,可能会有一些来自此处定义的确切比例的 epsilon,具体取决于实施支持的精度。weight 不是一个百分比,权重的总和不需要等于 100。

如果只指定一个后端,且它的权重大于 0,则会将 100% 的流量转发到那个后端。如果 weight 设为 0,则不应为这个条目转发流量。如果未指定,则权重默认为 1。

对此字段的支持因使用的上下文而异。

14.1.8. .spec.rules[].backendRefs[].filters

描述

只有当请求被转发到此处定义的后端时,才会执行此级别中定义的过滤器。

支持:特定于实现的(对于更广泛的过滤器支持,请使用 GRPCRouteRule 中的 Filters 字段。)

类型
数组

14.1.9. .spec.rules[].backendRefs[].filters[]

描述
GRPCRouteFilter 定义在请求或响应生命周期内必须完成的处理步骤。GRPCRouteFilters 充当一个扩展点,用于表达在网关实施中可能完成的处理。有些示例包括请求或响应修改、实施身份验证策略、速率限制和流量控制。API 保证/格式根据过滤器的类型定义。
类型
object
必填
  • type
Expand
属性类型描述

extensionRef

object

ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。

支持:特定于实施

此过滤器可以在同一规则内多次使用。

requestHeaderModifier

object

RequestHeaderModifier 定义修改请求标头的过滤器的模式。

支持:Core

requestMirror

object

RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。

此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。

支持:扩展

responseHeaderModifier

object

ResponseHeaderModifier 为修改响应标头的过滤器定义模式。

支持:扩展

type

string

Type 标识要应用的过滤器类型。与其他 API 字段一样,类型被分为三个一致性级别:

- core :过滤类型及其在这个软件包中"Support: Core"定义的相应配置,例如:"RequestHeaderModifier".支持 GRPCRoute 的所有实施都必须支持核心过滤器。

- Extended: Filter type 及其对应的配置由这个软件包中的"Support: Extended"定义,例如:"RequestMirror"。我们鼓励实施人员支持扩展过滤器。

- 特定于实现的:由特定供应商定义和支持的过滤器。未来,显示多个实施中行为的过滤器将被视为扩展或核心一致性级别。这些过滤器的特定于过滤器的配置使用 ExtensionRef 字段指定。对于自定义 过滤器,type MUST 设置为 "ExtensionRef"。

我们鼓励实施人员定义自定义实施类型,以使用特定于实施的行为来扩展核心 API。

如果无法解析对自定义过滤器类型的引用,则不会跳过过滤器。相反,已由该过滤器处理的请求接收 HTTP 错误响应。

14.1.10. .spec.rules[].backendRefs[].filters[].extensionRef

描述

ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。

支持:特定于实施

此过滤器可以在同一规则内多次使用。

类型
object
必填
  • group
  • kind
  • name
Expand
属性类型描述

group

string

组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。

kind

string

kind 是引用的类型。例如 "HTTPRoute" 或 "Service"。

name

string

name 是引用的名称。

描述

RequestHeaderModifier 定义修改请求标头的过滤器的模式。

支持:Core

类型
object
Expand
属性类型描述

add

数组

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

add[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

remove

数组(字符串)

在操作前,从 HTTP 请求中删除给定标头。Remove 的值是 HTTP 标头名称列表。请注意,标头名称区分大小写(请参阅 https://datatracker.ietf.org/doc/html/rfc2616#section-4.2)。

input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz

config: remove: ["my-header1", "my-header3"]

输出:GET /foo HTTP/1.1 my-header2: bar

set

数组

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

set[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

描述

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

描述

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

描述

RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。

此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。

支持:扩展

类型
object
必填
  • backendRef
Expand
属性类型描述

backendRef

object

BackendRef 引用发送镜像请求的资源。

镜像请求必须只发送到此 BackendRef 中的单个目标端点,无论此 BackendRef 中有多少端点。

如果无法找到引用,则此 BackendRef 无效,且必须从网关中丢弃。控制器必须确保将 Route 状态上的 "ResolvedRefs" 条件设置为 status: False,而不是在底层实现中配置此后端。

如果对 ReferenceGrant 不允许 的现有 对象有一个跨命名空间引用,控制器必须确保 Route 上的 "ResolvedRefs" 条件被设置为 status: False,并带有 "RefNotPermitted" 原因,且不会在底层实现中配置此后端。

在任一错误情况下,应该使用 ResolvedRefs Condition 的消息来提供有关此问题的更多详情。

支持:为 Kubernetes Service 扩展

支持:特定于任何其他资源的实现

部分

object

fraction 代表应镜像到 BackendRef 的请求的比例。

只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。

百分比

整数

percent 代表应镜像到 BackendRef 的请求百分比。其最小值为 0 (代表请求 0%,其最大值为 100 (代表 100% 的请求)。

只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。

描述

BackendRef 引用发送镜像请求的资源。

镜像请求必须只发送到此 BackendRef 中的单个目标端点,无论此 BackendRef 中有多少端点。

如果无法找到引用,则此 BackendRef 无效,且必须从网关中丢弃。控制器必须确保将 Route 状态上的 "ResolvedRefs" 条件设置为 status: False,而不是在底层实现中配置此后端。

如果对 ReferenceGrant 不允许 的现有 对象有一个跨命名空间引用,控制器必须确保 Route 上的 "ResolvedRefs" 条件被设置为 status: False,并带有 "RefNotPermitted" 原因,且不会在底层实现中配置此后端。

在任一错误情况下,应该使用 ResolvedRefs Condition 的消息来提供有关此问题的更多详情。

支持:为 Kubernetes Service 扩展

支持:特定于任何其他资源的实现

类型
object
必填
  • name
Expand
属性类型描述

group

string

组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。

kind

string

kind 是引用的 Kubernetes 资源类型。例如 "Service"。

如果没有指定,则默认为 "Service"。

ExternalName 服务可以引用集群中可能位于的 CNAME DNS 记录,因此很难考虑一致性。它们也可能不安全(请参阅 CVE-2021-25740 了解更多信息)。实施 SHOULD 不支持 ExternalName 服务。

Support: Core (带有 ExternalName 以外的类型的服务)

支持:特定于实现的(类型为 ExternalName 的服务)

name

string

name 是引用的名称。

namespace

string

namespace 是后端的命名空间。如果未指定,本地命名空间将被推断出来。

请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。

支持:Core

port

整数

port 指定用于此资源的目标端口号。当引用是 Kubernetes 服务时,需要端口。在本例中,端口号是服务端口号,而不是目标端口。对于其他资源,目的地端口可能源自引用资源或此字段。

描述

fraction 代表应镜像到 BackendRef 的请求的比例。

只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。

类型
object
必填
  • numerator
Expand
属性类型描述

denominator

整数

 

numerator

整数

 
描述

ResponseHeaderModifier 为修改响应标头的过滤器定义模式。

支持:扩展

类型
object
Expand
属性类型描述

add

数组

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

add[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

remove

数组(字符串)

在操作前,从 HTTP 请求中删除给定标头。Remove 的值是 HTTP 标头名称列表。请注意,标头名称区分大小写(请参阅 https://datatracker.ietf.org/doc/html/rfc2616#section-4.2)。

input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz

config: remove: ["my-header1", "my-header3"]

输出:GET /foo HTTP/1.1 my-header2: bar

set

数组

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

set[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

描述

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

描述

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

14.1.24. .spec.rules[].filters

描述

过滤器定义应用到与此规则匹配的请求的过滤器。

当前未指定多个行为的排序效果。这可以根据 alpha 阶段中的反馈来改变。

此级别上的一致性级别会根据过滤器类型定义:

  • 所有核心过滤器都必须由支持 GRPCRoute 的所有实现支持。
  • 我们鼓励实施人员支持扩展过滤器。
  • 特定于实现的自定义过滤器在实现过程中没有 API 保证。

除非在过滤器中明确指定,否则不支持多次指定同一过滤器。

如果实施无法支持过滤器的组合,它必须清楚地记录该限制。如果指定了不兼容或不支持的过滤器,并导致 Accepted 条件被设置为 False 状态,则实现可能会使用 IncompatibleFilters reason 来指定此配置错误。

支持:Core

类型
数组

14.1.25. .spec.rules[].filters[]

描述
GRPCRouteFilter 定义在请求或响应生命周期内必须完成的处理步骤。GRPCRouteFilters 充当一个扩展点,用于表达在网关实施中可能完成的处理。有些示例包括请求或响应修改、实施身份验证策略、速率限制和流量控制。API 保证/格式根据过滤器的类型定义。
类型
object
必填
  • type
Expand
属性类型描述

extensionRef

object

ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。

支持:特定于实施

此过滤器可以在同一规则内多次使用。

requestHeaderModifier

object

RequestHeaderModifier 定义修改请求标头的过滤器的模式。

支持:Core

requestMirror

object

RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。

此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。

支持:扩展

responseHeaderModifier

object

ResponseHeaderModifier 为修改响应标头的过滤器定义模式。

支持:扩展

type

string

Type 标识要应用的过滤器类型。与其他 API 字段一样,类型被分为三个一致性级别:

- core :过滤类型及其在这个软件包中"Support: Core"定义的相应配置,例如:"RequestHeaderModifier".支持 GRPCRoute 的所有实施都必须支持核心过滤器。

- Extended: Filter type 及其对应的配置由这个软件包中的"Support: Extended"定义,例如:"RequestMirror"。我们鼓励实施人员支持扩展过滤器。

- 特定于实现的:由特定供应商定义和支持的过滤器。未来,显示多个实施中行为的过滤器将被视为扩展或核心一致性级别。这些过滤器的特定于过滤器的配置使用 ExtensionRef 字段指定。对于自定义 过滤器,type MUST 设置为 "ExtensionRef"。

我们鼓励实施人员定义自定义实施类型,以使用特定于实施的行为来扩展核心 API。

如果无法解析对自定义过滤器类型的引用,则不会跳过过滤器。相反,已由该过滤器处理的请求接收 HTTP 错误响应。

14.1.26. .spec.rules[].filters[].extensionRef

描述

ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。

支持:特定于实施

此过滤器可以在同一规则内多次使用。

类型
object
必填
  • group
  • kind
  • name
Expand
属性类型描述

group

string

组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。

kind

string

kind 是引用的类型。例如 "HTTPRoute" 或 "Service"。

name

string

name 是引用的名称。

14.1.27. .spec.rules[].filters[].requestHeaderModifier

描述

RequestHeaderModifier 定义修改请求标头的过滤器的模式。

支持:Core

类型
object
Expand
属性类型描述

add

数组

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

add[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

remove

数组(字符串)

在操作前,从 HTTP 请求中删除给定标头。Remove 的值是 HTTP 标头名称列表。请注意,标头名称区分大小写(请参阅 https://datatracker.ietf.org/doc/html/rfc2616#section-4.2)。

input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz

config: remove: ["my-header1", "my-header3"]

输出:GET /foo HTTP/1.1 my-header2: bar

set

数组

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

set[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

14.1.28. .spec.rules[].filters[].requestHeaderModifier.add

描述

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

14.1.30. .spec.rules[].filters[].requestHeaderModifier.set

描述

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

14.1.32. .spec.rules[].filters[].requestMirror

描述

RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。

此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。

支持:扩展

类型
object
必填
  • backendRef
Expand
属性类型描述

backendRef

object

BackendRef 引用发送镜像请求的资源。

镜像请求必须只发送到此 BackendRef 中的单个目标端点,无论此 BackendRef 中有多少端点。

如果无法找到引用,则此 BackendRef 无效,且必须从网关中丢弃。控制器必须确保将 Route 状态上的 "ResolvedRefs" 条件设置为 status: False,而不是在底层实现中配置此后端。

如果对 ReferenceGrant 不允许 的现有 对象有一个跨命名空间引用,控制器必须确保 Route 上的 "ResolvedRefs" 条件被设置为 status: False,并带有 "RefNotPermitted" 原因,且不会在底层实现中配置此后端。

在任一错误情况下,应该使用 ResolvedRefs Condition 的消息来提供有关此问题的更多详情。

支持:为 Kubernetes Service 扩展

支持:特定于任何其他资源的实现

部分

object

fraction 代表应镜像到 BackendRef 的请求的比例。

只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。

百分比

整数

percent 代表应镜像到 BackendRef 的请求百分比。其最小值为 0 (代表请求 0%,其最大值为 100 (代表 100% 的请求)。

只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。

14.1.33. .spec.rules[].filters[].requestMirror.backendRef

描述

BackendRef 引用发送镜像请求的资源。

镜像请求必须只发送到此 BackendRef 中的单个目标端点,无论此 BackendRef 中有多少端点。

如果无法找到引用,则此 BackendRef 无效,且必须从网关中丢弃。控制器必须确保将 Route 状态上的 "ResolvedRefs" 条件设置为 status: False,而不是在底层实现中配置此后端。

如果对 ReferenceGrant 不允许 的现有 对象有一个跨命名空间引用,控制器必须确保 Route 上的 "ResolvedRefs" 条件被设置为 status: False,并带有 "RefNotPermitted" 原因,且不会在底层实现中配置此后端。

在任一错误情况下,应该使用 ResolvedRefs Condition 的消息来提供有关此问题的更多详情。

支持:为 Kubernetes Service 扩展

支持:特定于任何其他资源的实现

类型
object
必填
  • name
Expand
属性类型描述

group

string

组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。

kind

string

kind 是引用的 Kubernetes 资源类型。例如 "Service"。

如果没有指定,则默认为 "Service"。

ExternalName 服务可以引用集群中可能位于的 CNAME DNS 记录,因此很难考虑一致性。它们也可能不安全(请参阅 CVE-2021-25740 了解更多信息)。实施 SHOULD 不支持 ExternalName 服务。

Support: Core (带有 ExternalName 以外的类型的服务)

支持:特定于实现的(类型为 ExternalName 的服务)

name

string

name 是引用的名称。

namespace

string

namespace 是后端的命名空间。如果未指定,本地命名空间将被推断出来。

请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。

支持:Core

port

整数

port 指定用于此资源的目标端口号。当引用是 Kubernetes 服务时,需要端口。在本例中,端口号是服务端口号,而不是目标端口。对于其他资源,目的地端口可能源自引用资源或此字段。

14.1.34. .spec.rules[].filters[].requestMirror.fraction

描述

fraction 代表应镜像到 BackendRef 的请求的比例。

只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。

类型
object
必填
  • numerator
Expand
属性类型描述

denominator

整数

 

numerator

整数

 

14.1.35. .spec.rules[].filters[].responseHeaderModifier

描述

ResponseHeaderModifier 为修改响应标头的过滤器定义模式。

支持:扩展

类型
object
Expand
属性类型描述

add

数组

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

add[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

remove

数组(字符串)

在操作前,从 HTTP 请求中删除给定标头。Remove 的值是 HTTP 标头名称列表。请注意,标头名称区分大小写(请参阅 https://datatracker.ietf.org/doc/html/rfc2616#section-4.2)。

input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz

config: remove: ["my-header1", "my-header3"]

输出:GET /foo HTTP/1.1 my-header2: bar

set

数组

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

set[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

14.1.36. .spec.rules[].filters[].responseHeaderModifier.add

描述

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

14.1.38. .spec.rules[].filters[].responseHeaderModifier.set

描述

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

14.1.40. .spec.rules[].matches

描述

matches 定义用于与传入 gRPC 请求匹配的规则的条件。每个匹配项都独立,例如,如果 满足任何 其中一个匹配项,则此规则将匹配。

例如,使用以下内容匹配配置:

matches: - method: service: foo.bar headers: values: version: 2 - method: service: foo.bar.v2

要针对此规则匹配请求,它必须满足两个条件的 EITHER:

  • foo.bar AND 的服务包含标头 版本:2
  • foo.bar.v2 服务

有关如何指定要同时指定多个匹配条件的信息,请参阅 GRPCRouteMatch 文档。

如果没有指定匹配项,实施必须匹配每个 gRPC 请求。

从 GRPCRoutes MUST 生成的代理或负载均衡器路由配置根据以下条件确定规则的优先级,继续绑定。GRPCRoutes 和 HTTPRoutes 之间不进行合并。优先级必须为具有最大数量的规则指定:

  • 匹配非通配符主机名中的字符。
  • 匹配主机名中的字符.
  • 匹配服务中的字符。
  • 匹配方法中的字符。
  • 标头匹配.

如果绑定仍存在于多个路由中,则按以下条件顺序确定匹配的优先级,继续绑定:

  • 基于创建时间戳的最旧的路由。
  • 路由首先以字母顺序显示,使用 "{namespace}/{name}"。

如果绑定仍存在于给定优先级的路由中,则必须为满足上述条件的第一个匹配规则授予匹配的优先级。

类型
数组

14.1.41. .spec.rules[].matches[]

描述

GRPCRouteMatch 定义用于将请求与给定操作匹配的 predicate。多个匹配类型是 AND,即仅在满足所有条件时,匹配才会评估为 true。

例如,只有在服务是 foo 且包含 version: v1 标头时,以下匹配才会与 gRPC 请求匹配:

matches: - method: type: Exact service: "foo" headers: - name: "version" value "v1"

类型
object
Expand
属性类型描述

标头

数组

标头指定 gRPC 请求标头匹配器。多个匹配值是 ANDed,这意味着请求需要匹配所有指定的标头才能选择路由。

headers[]

object

GRPCHeaderMatch 描述了如何通过匹配 gRPC 请求标头来选择 gRPC 路由。

方法

object

method 指定 gRPC 请求服务/方法匹配器。如果没有指定此字段,则所有服务和方法都将匹配。

14.1.42. .spec.rules[].matches[].headers

描述
标头指定 gRPC 请求标头匹配器。多个匹配值是 ANDed,这意味着请求需要匹配所有指定的标头才能选择路由。
类型
数组

14.1.43. .spec.rules[].matches[].headers[]

描述
GRPCHeaderMatch 描述了如何通过匹配 gRPC 请求标头来选择 gRPC 路由。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 gRPC 标头的名称。

如果多个条目指定了等同的标头名称,则只有具有等同名称的第一个条目才被认为是匹配的。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

type

string

type 指定如何与标头值匹配。

value

string

value 是要匹配的 gRPC 标头的值。

14.1.44. .spec.rules[].matches[].method

描述
method 指定 gRPC 请求服务/方法匹配器。如果没有指定此字段,则所有服务和方法都将匹配。
类型
object
Expand
属性类型描述

method

string

要匹配的方法值。如果留空或省略,将匹配所有服务。

至少一个服务和方法必须是非空字符串。

service

string

要匹配的服务的值。如果留空或省略,将匹配任何服务。

至少一个服务和方法必须是非空字符串。

type

string

type 指定如何与服务和/或方法匹配。支持:Core (指定服务和方法)

支持:特定于实现的(使用指定的方法,未指定服务)

支持:特定于实施(RegularExpression)

14.1.45. .status

描述
Status 定义 GRPCRoute 的当前状态。
类型
object
必填
  • parents
Expand
属性类型描述

parents

数组

parents 是与路由关联的父资源(通常是网关)的列表,以及每个父对象的路由的状态。当此路由附加到父路由时,管理父路由的控制器必须在控制器第一次看到路由时向这个列表添加一个条目,并在修改路由或网关时更新条目。

请注意,无法通过此 API 实现解析的父引用不会添加到此列表中。此 API 的实现只能为它们负责的网关/父资源填充 Route 状态。

此列表中最多表示 32 个网关。空列表表示路由尚未附加到任何网关。

parents[]

object

RouteParentStatus 描述了与相关 Parent 相关的路由的状态。

14.1.46. .status.parents

描述

parents 是与路由关联的父资源(通常是网关)的列表,以及每个父对象的路由的状态。当此路由附加到父路由时,管理父路由的控制器必须在控制器第一次看到路由时向这个列表添加一个条目,并在修改路由或网关时更新条目。

请注意,无法通过此 API 实现解析的父引用不会添加到此列表中。此 API 的实现只能为它们负责的网关/父资源填充 Route 状态。

此列表中最多表示 32 个网关。空列表表示路由尚未附加到任何网关。

类型
数组

14.1.47. .status.parents[]

描述
RouteParentStatus 描述了与相关 Parent 相关的路由的状态。
类型
object
必填
  • controllerName
  • parentRef
Expand
属性类型描述

conditions

数组

conditions 描述了与网关相关的路由状态。请注意,路由的可用性也取决于网关自己的状态条件和侦听器状态。

如果 Route 的 ParentRef 指定支持路由路由的现有网关,且网关的控制器有足够的访问权限,那么该网关的控制器必须在 Route 上设置 "Accepted" 条件,以指示网关接受或拒绝该路由,以及原因。

如果网关实施至少一个 Route 规则,则路由必须被视为"接受"。

有些情况下,因为缺少控制器可见性,可能无法设置 "Accepted" 条件,其中包括:

* Route 指的是不存在的父对象。* Route 是控制器不支持的类型。* Route 位于控制器无法访问的命名空间中。

conditions[]

object

condition 包含此 API 资源当前状态的一个方面的详细信息。

controllerName

string

ControllerName 是一个 domain/path 字符串,表示写入此状态的控制器的名称。这与 GatewayClass 上的 controllerName 字段对应。

示例:"example.net/gateway-controller"。

此字段的格式是 DOMAIN "/" PATH,其中 DOMAIN 和 PATH 是有效的 Kubernetes 名称(https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names)。

在编写状态时,控制器需要填充此字段。当不再需要时,控制器应确保清理填充其 ControllerName 状态的条目。

parentRef

object

ParentRef 与 spec 中的 ParentRef 对应,这个 RouteParentStatus struct 描述其状态。

14.1.48. .status.parents[].conditions

描述

conditions 描述了与网关相关的路由状态。请注意,路由的可用性也取决于网关自己的状态条件和侦听器状态。

如果 Route 的 ParentRef 指定支持路由路由的现有网关,且网关的控制器有足够的访问权限,那么该网关的控制器必须在 Route 上设置 "Accepted" 条件,以指示网关接受或拒绝该路由,以及原因。

如果网关实施至少一个 Route 规则,则路由必须被视为"接受"。

有些情况下,因为缺少控制器可见性,可能无法设置 "Accepted" 条件,其中包括:

  • Route 指的是不存在的父项。
  • Route 是控制器不支持的类型。
  • Route 位于控制器无法访问的命名空间中。
类型
数组

14.1.49. .status.parents[].conditions[]

描述
condition 包含此 API 资源当前状态的一个方面的详细信息。
类型
object
必填
  • lastTransitionTime
  • message
  • reason
  • status
  • type
Expand
属性类型描述

lastTransitionTime

字符串

lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。

message

字符串

Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。

observedGeneration

整数

observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。

reason

字符串

reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。

status

字符串

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

type

字符串

CamelCase 或 foo.example.com/CamelCase 中的条件类型。

14.1.50. .status.parents[].parentRef

描述
ParentRef 与 spec 中的 ParentRef 对应,这个 RouteParentStatus struct 描述其状态。
类型
object
必填
  • name
Expand
属性类型描述

group

string

组是引用的组。如果未指定,"gateway.networking.k8s.io" 将推断出来。要设置核心 API 组(如 "Service" kind referent),Group 必须明确设置为 "" (空字符串)。

支持:Core

kind

string

kind 是引用的类型。

支持"Core"支持的父资源有两种:

* gateway (Gateway conformance profile)* Service (Mesh conformance profile, only ClusterIP Services)

对其他资源的支持是特定于实施的。

name

string

name 是引用的名称。

支持:Core

namespace

string

namespace 是引用的命名空间。如果未指定,这指的是 Route 的本地命名空间。

请注意,对于跨命名空间边界的 ParentRefs 有特定的规则。只有跨命名空间引用被引用的命名空间中明确允许时才有效。例如: Gateway 具有 AllowedRoutes 字段,ReferenceGrant 提供了一种通用方法来启用其他类型的跨命名空间引用。

支持:Core

port

整数

port 是此 Route 目标的网络端口。它可以根据父资源的类型进行解释。

当父资源是网关时,此目标是在支持此类 Route (并选择此路由)的指定端口上侦听所有的监听程序。不建议设置 Port,除非 Route 中指定的网络行为必须应用到特定端口,而不是可以更改其端口的监听程序。当同时指定了 Port 和 sectionName 时,所选监听器的名称和端口必须与两个指定的值匹配。

实施 MAY 选择支持其他父资源。支持其他类型的父资源的实施必须清楚地记录/如果端口的解释方式。

对于状态,只要父资源接受部分,则附加被视为成功。例如,网关监听程序可以通过 Route kind、namespace 或 hostname 来限制哪些 Routes 可以附加到它们。如果 2 网关监听程序的 1 个接受来自引用路由的附件,则路由必须被视为成功附加。如果没有网关监听程序接受来自此 Route 的附件,则路由必须被视为与网关分离。

支持:扩展

sectionName

string

SectionName 是目标资源中的一个部分的名称。在以下资源中,sectionName 被解释为:

* gateway: Listener 名称。当同时指定了 Port (experimental)和 SectionName 时,所选监听器的名称和端口必须与两个指定的值匹配。* service: 端口名称。当同时指定了 Port (experimental)和 SectionName 时,所选监听器的名称和端口必须与两个指定的值匹配。

实施 MAY 选择支持将路由附加到其他资源。如果是这种情况,它们必须清楚地记录 SectionName 的解释方式。

如果未指定(空字符串),这将引用整个资源。对于状态,如果父资源中的至少一个部分接受它,则附加被视为成功。例如,网关监听程序可以通过 Route kind、namespace 或 hostname 来限制哪些 Routes 可以附加到它们。如果 2 网关监听程序的 1 个接受来自引用路由的附件,则路由必须被视为成功附加。如果没有网关监听程序接受来自此 Route 的附件,则路由必须被视为与网关分离。

支持:Core

14.2. API 端点

可用的 API 端点如下:

  • /apis/gateway.networking.k8s.io/v1/grpcroutes

    • GET: 列出类型为 GRPCRoute 的对象
  • /apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/grpcroutes

    • DELETE: 删除 GRPCRoute 集合
    • GET: 列出类型为 GRPCRoute 的对象
    • POST :创建 GRPCRoute
  • /apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/grpcroutes/{name}

    • DELETE :删除 GRPCRoute
    • GET :读取指定的 GRPCRoute
    • PATCH: 部分更新指定的 GRPCRoute
    • PUT :替换指定的 GRPCRoute
  • /apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/grpcroutes/{name}/status

    • GET :指定 GRPCRoute 的读取状态
    • PATCH: 部分更新指定 GRPCRoute 的状态
    • PUT :替换指定 GRPCRoute 的状态

14.2.1. /apis/gateway.networking.k8s.io/v1/grpcroutes

HTTP 方法
GET
描述
列出类型为 GRPCRoute 的对象
Expand
表 14.1. HTTP 响应
HTTP 代码响应正文

200 - OK

GRPCRouteList 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 GRPCRoute 集合
Expand
表 14.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出类型为 GRPCRoute 的对象
Expand
表 14.3. HTTP 响应
HTTP 代码响应正文

200 - OK

GRPCRouteList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 GRPCRoute
Expand
表 14.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 14.5. 主体参数
参数类型描述

正文(body)

GRPCRoute 模式

 
Expand
表 14.6. HTTP 响应
HTTP 代码响应正文

200 - OK

GRPCRoute 模式

201 - Created

GRPCRoute 模式

202 - Accepted

GRPCRoute 模式

401 - Unauthorized

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

name

string

GRPCRoute 的名称

HTTP 方法
DELETE
描述
删除 GRPCRoute
Expand
表 14.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 14.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
读取指定的 GRPCRoute
Expand
表 14.10. HTTP 响应
HTTP 代码响应正文

200 - OK

GRPCRoute 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 GRPCRoute
Expand
表 14.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 14.12. HTTP 响应
HTTP 代码响应正文

200 - OK

GRPCRoute 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 GRPCRoute
Expand
表 14.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 14.14. 主体参数
参数类型描述

正文(body)

GRPCRoute 模式

 
Expand
表 14.15. HTTP 响应
HTTP 代码响应正文

200 - OK

GRPCRoute 模式

201 - Created

GRPCRoute 模式

401 - Unauthorized

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

name

string

GRPCRoute 的名称

HTTP 方法
GET
描述
指定 GRPCRoute 的读取状态
Expand
表 14.17. HTTP 响应
HTTP 代码响应正文

200 - OK

GRPCRoute 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 GRPCRoute 的状态
Expand
表 14.18. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 14.19. HTTP 响应
HTTP 代码响应正文

200 - OK

GRPCRoute 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 GRPCRoute 的状态
Expand
表 14.20. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 14.21. 主体参数
参数类型描述

正文(body)

GRPCRoute 模式

 
Expand
表 14.22. HTTP 响应
HTTP 代码响应正文

200 - OK

GRPCRoute 模式

201 - Created

GRPCRoute 模式

401 - Unauthorized

第 15 章 Gateway [gateway.networking.k8s.io/v1]

描述
gateway 通过将 Listeners 绑定到一组 IP 地址来代表服务流量处理基础架构的实例。
类型
object
必填
  • spec

15.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

spec 定义网关的所需状态。

status

object

Status 定义网关的当前状态。

15.1.1. .spec

描述
spec 定义网关的所需状态。
类型
object
必填
  • gatewayClassName
  • 监听器
Expand
属性类型描述

addresses

数组

为此网关请求的地址。这是可选的,行为取决于实现。如果在 spec 中设置值并且请求的地址无效或不可用,实施必须指示在 GatewayStatus.Addresses 中的关联条目中指明这一点。

Addresses 字段表示在网关"外面"地址的请求,此网关绑定的流量将使用。这可以是外部负载均衡器或其他网络基础架构的 IP 地址或主机名,或者流量将发送到的一些其他地址。

如果没有指定地址,实施 MAY 以特定于实施的方式调度网关,分配适当的地址集合。

实现 MUST 将所有 Listeners 绑定到分配给网关的每个网关Address,并在 GatewayStatus.Addresses 中添加对应的条目。

支持:扩展

addresses[]

object

GatewayAddress 描述了可绑定到网关的地址。

gatewayClassName

string

用于此网关的 GatewayClassName。这是 GatewayClass 资源的名称。

infrastructure

object

基础架构定义了有关此网关实例的基础架构级属性。

支持:扩展

监听器

数组

与此网关关联的监听器.侦听器定义在这个网关地址上绑定的逻辑端点。至少指定一个 Listener 必须指定。

不同的 Listeners

一组 Listeners (例如在单个网关中)中的每个 Listener 都有所不同,其中流量流需要能够完全分配给一个侦听器。(本节使用 "Listeners" 而不是 "Listeners in a single Gateway",因为实现 MAY 合并配置从多个网关合并到单个数据平面,在这种情况下也会应用这些规则。

实际上,这意味着集合中的每个监听程序都必须具有 Port, Protocol, 和 if the protocol, Hostname 的唯一组合。

一些端口、协议和 TLS 设置组合被视为核心支持,且实施必须根据它们支持的对象支持:

HTTPRoute

1.HTTPRoute,端口:80,协议:HTTP 2.HTTPRoute, Port: 443, Protocol: HTTPS, TLS Mode: Terminate, TLS keypair provided

TLSRoute

1.TLSRoute, Port: 443, Protocol: TLS, TLS Mode: Passthrough

"distinct" Listeners 具有以下属性:

该实施可以将入站请求与单个不同的 Listener 匹配

当多个 Listeners 共享字段的值(例如,具有相同 Port 值的两个 Listeners)时,实现只能使用其他 Listener 字段将请求与其中一个 Listeners 匹配。

当多个监听器对于 Protocol 字段的值相同时,每个带有匹配协议值的 Listeners 值都需要为其他字段有不同的值。

Listener 的 MUST 不同字段集合因协议而异。以下规则定义了哪些字段需要被认为 Listeners 的规则与当前在 Gateway API spec 中定义的每个协议不同。

所有共享协议值都必须使用 不同的值 的监听程序集对于 至少其中一个 字段是不同的:

* HTTP, HTTPS, TLS: Port, Hostname * TCP, UDP: Port

调用 的一个重要 规则涉及在实施时发生:

* 支持 TCP 协议 Listeners,以及 HTTP、HTTPS 或 TLS 协议 Listeners,而 * 会看到与 TCP 协议相同的 端口的 HTTP、HTTPS 或 TLS 协议。

在这种情况下,所有与 TCP Listener 共享端口的 Listeners 并不不同,因此不接受它。

如果实现不支持 TCP 协议 Listeners,则不会应用前面的规则,并且不接受 TCP Listeners SHOULD。

请注意,tls 字段不用于确定监听器是否是不同的,因为 仅在 TLS 配置上有所不同的 Listeners 仍会在所有情况下都冲突。

# 监听程序只通过主机名不同

当 Listeners 只根据主机名不同时,入站请求主机名需要与最具体的特定主机名值匹配,以选择正确的 Listener 及其相关路由集合。

在通配符匹配前,需要处理完全匹配,在回退(空主机名值)匹配前,会处理通配符匹配。例如: "foo.example.com" 优先于 "*.example.com",而 "\*.example.com" 优先于 ""

此外,如果有多个通配符条目,必须在较少的特定通配符条目之前处理更具体的通配符条目。例如: "*.foo.example.com" 优先于 "\*.example.com "。

这里的精确定义是通配符字符右侧的点数越高,优先级越高。

通配符字符会将任意数量的字符和 与左侧匹配,因此 "*.example.com" 将同时与 "foo.bar.example.com" "bar.example.com" 匹配。

处理不一致的 Listeners

如果一组 Listeners 包含不不同的 Listeners,则这些 Listeners 为冲突,并且实施 MUST 将 Listener 状态中的 " Conflicted " 条件设置为 "True"。

对于本文档的目的,单词 "indistinct" 和 "conflicted" 被视为等效的内容。

实现 MAY 只有在只接受不包含冲突的 Listeners 的部分 Listener 集时,才选择接受带有某些冲突的 Listeners 的网关。

具体来说,实施 MAY 接受部分 Listener 设置,具体取决于以下规则:

* 实施必须选择一个有冲突的 Listener 作为主办者。不接受 ALL indistinct Listeners 进行处理。* 至少有一个不同的 Listener 必须存在,否则网关有效地包含 Listeners,且必须拒绝整个处理。

当网关包含冲突的 Listenered Listeners 是否接受网关时,在网关状态上设置 "ListenersNotValid" 条件。该条件 SHOULD 明确表示消息中哪些 Listeners 被冲突,哪些被接受。另外,这些监听器 SHOULD 的 Listener 状态表示哪些 Listeners 被冲突且没有接受。

常规 Listener 行为

请注意,对于所有不同的 Listener,请求 SHOULD 匹配最多一个 Listener。例如,如果为 "foo.example.com" 和 "*.example.com" 定义 Listeners,则对 "foo.example.com" SHOULD 的请求只使用附加到 "foo.example.com" Listener 的路由。

这个概念被称为 "Listener Isolation",它是网关 API 的扩展功能。不支持 Listener 隔离功能的实现有明确记录,但必须声明支持 GatewayHTTPListenerIsolation 功能。

支持 Listener 隔离 SHOULD 声明对扩展 网关HTTPListener 隔离功能的 实现,并传递相关的一致性测试。

兼容 Listeners

如果出现以下情况,网关的 Listeners 被视为 兼容

1.它们与众不同。2.该实施可以满足所有所分配的地址上可用的地址要求。

扩展支持中的兼容组合因实施而异。与一个实现兼容的组合可能与另一个实现不兼容。

例如,一个不能在同一地址上提供 TCP 和 UDP 侦听器的实现,或者无法混合 HTTPS 和通用 TLS 侦听同一端口,也不会考虑兼容这些情况,即使它们不同。

如果所有网关中的所有 Listeners 都兼容,则实施 MAY 将单独的网关合并到一组地址上。

在以后的发行版本中,MinItems=1 要求被丢弃。

支持:Core

listeners[]

object

侦听器传播网关接受网络连接的逻辑端点的概念。

15.1.2. .spec.addresses

描述

为此网关请求的地址。这是可选的,行为取决于实现。如果在 spec 中设置值并且请求的地址无效或不可用,实施必须指示在 GatewayStatus.Addresses 中的关联条目中指明这一点。

Addresses 字段表示在网关"外面"地址的请求,此网关绑定的流量将使用。这可以是外部负载均衡器或其他网络基础架构的 IP 地址或主机名,或者流量将发送到的一些其他地址。

如果没有指定地址,实施 MAY 以特定于实施的方式调度网关,分配适当的地址集合。

实现 MUST 将所有 Listeners 绑定到分配给网关的每个网关Address,并在 GatewayStatus.Addresses 中添加对应的条目。

支持:扩展

类型
array

15.1.3. .spec.addresses[]

描述
GatewayAddress 描述了可绑定到网关的地址。
类型
object
必填
  • value
Expand
属性类型描述

type

string

地址的类型。

value

string

地址值。值的有效性取决于控制器的类型和支持。

示例:1.2. 3.4,128::1,my-ip-address.

15.1.4. .spec.infrastructure

描述

基础架构定义了有关此网关实例的基础架构级属性。

支持:扩展

类型
object
Expand
属性类型描述

annotations

对象(字符串)

将 SHOULD 应用到响应此网关创建的任何资源的注解。

对于创建其他 Kubernetes 对象的实现,这应该是对资源的 metadata.annotations 字段。对于其他实现,这指的是任何相关的(特定于实现特定)概念。

实施可能会选择添加其他特定于实施的注解,因为它们认为适合。

支持:扩展

labels

对象(字符串)

SHOULD 应用于响应此网关创建的任何资源的标签。

对于创建其他 Kubernetes 对象的实现,这应该是资源上的 metadata.labels 字段。对于其他实施,这指的是任何相关的(特定于实施的)"标签"概念。

实施可能会选择添加其他特定于实施的标签,因为它们认为适合。

如果实现将这些标签映射到 Pod,或者在标签更改时重新创建任何其他资源,则 SHOULD 会明确警告文档中此行为。

支持:扩展

parametersRef

object

ParametersRef 是对包含与网关对应的配置参数的资源的引用。如果控制器不需要任何其他配置,则这是可选的。

这与 GatewayClass 的 parameter Ref 的参数 相同,但基于每个Gateway

网关的 GatewayClass 可以提供自己的 参数Ref。当两者都被指定时,合并行为是特定于实现的。通常建议 GatewayClass 提供可由网关覆盖的默认值。

如果无法找到引用,请参阅不支持的类型,或者当该资源中的数据格式时,网关 SHOULD 将被拒绝,并将 "Accepted" 状态条件设置为 "False",以及 "InvalidParameters" 原因。

支持:特定于实施

15.1.5. .spec.infrastructure.parametersRef

描述

ParametersRef 是对包含与网关对应的配置参数的资源的引用。如果控制器不需要任何其他配置,则这是可选的。

这与 GatewayClass 的 parameter Ref 的参数 相同,但基于每个Gateway

网关的 GatewayClass 可以提供自己的 参数Ref。当两者都被指定时,合并行为是特定于实现的。通常建议 GatewayClass 提供可由网关覆盖的默认值。

如果无法找到引用,请参阅不支持的类型,或者当该资源中的数据格式时,网关 SHOULD 将被拒绝,并将 "Accepted" 状态条件设置为 "False",以及 "InvalidParameters" 原因。

支持:特定于实施

类型
object
必填
  • group
  • kind
  • name
Expand
属性类型描述

group

string

组是引用的组。

kind

string

kind 是引用的类型。

name

string

name 是引用的名称。

15.1.6. .spec.listeners

描述

与此网关关联的监听器.侦听器定义在这个网关地址上绑定的逻辑端点。至少指定一个 Listener 必须指定。

BarbicanP different Listeners

一组 Listeners (例如在单个网关中)中的每个 Listener 都有所不同,其中流量流需要能够完全分配给一个侦听器。(本节使用 "Listeners" 而不是 "Listeners in a single Gateway",因为实现 MAY 合并配置从多个网关合并到单个数据平面,在这种情况下也会应用这些规则。

实际上,这意味着集合中的每个监听程序都必须具有 Port, Protocol, 和 if the protocol, Hostname 的唯一组合。

一些端口、协议和 TLS 设置组合被视为核心支持,且实施必须根据它们支持的对象支持:

HTTPRoute

  1. HTTPRoute, Port: 80, Protocol: HTTP
  2. HTTPRoute, Port: 443, Protocol: HTTPS, TLS Mode: Terminate, TLS keypair provided

TLSRoute

  1. TLSRoute, Port: 443, Protocol: TLS, TLS Mode: Passthrough

"distinct" Listeners 具有以下属性:

该实施可以将入站请求与单个不同的 Listener 匹配

当多个 Listeners 共享字段的值(例如,具有相同 Port 值的两个 Listeners)时,实现只能使用其他 Listener 字段将请求与其中一个 Listeners 匹配。

当多个监听器对于 Protocol 字段的值相同时,每个带有匹配协议值的 Listeners 值都需要为其他字段有不同的值。

Listener 的 MUST 不同字段集合因协议而异。以下规则定义了哪些字段需要被认为 Listeners 的规则与当前在 Gateway API spec 中定义的每个协议不同。

所有共享协议值都必须使用 不同的值 的监听程序集对于 至少其中一个 字段是不同的:

  • HTTP, HTTPS, TLS: Port, Hostname
  • TCP, UDP: 端口

调用 的一个重要 规则涉及在实施时发生:

  • 支持 TCP 协议 Listeners 以及 HTTP、HTTPS 或 TLS 协议 Listeners 以及
  • 请参阅 HTTP、HTTPS 或者 TLS 协议,其端口 与 TCP 协议相同。

在这种情况下,所有与 TCP Listener 共享端口的 Listeners 并不不同,因此不接受它。

如果实现不支持 TCP 协议 Listeners,则不会应用前面的规则,并且不接受 TCP Listeners SHOULD。

请注意,tls 字段不用于确定监听器是否是不同的,因为 仅在 TLS 配置上有所不同的 Listeners 仍会在所有情况下都冲突。

# 监听程序只通过主机名不同

当 Listeners 只根据主机名不同时,入站请求主机名需要与最具体的特定主机名值匹配,以选择正确的 Listener 及其相关路由集合。

在通配符匹配前,需要处理完全匹配,在回退(空主机名值)匹配前,会处理通配符匹配。例如: "foo.example.com" 优先于 "*.example.com",而 "\*.example.com" 优先于 ""

此外,如果有多个通配符条目,必须在较少的特定通配符条目之前处理更具体的通配符条目。例如: "*.foo.example.com" 优先于 "\*.example.com "。

这里的精确定义是通配符字符右侧的点数越高,优先级越高。

通配符字符会将任意数量的字符和 与左侧匹配,因此 "\*.example.com" 将同时与 "foo.bar.example.com" "bar.example.com" 匹配。

BarbicanP processing indistinct Listeners

如果一组 Listeners 包含不不同的 Listeners,则这些 Listeners 为冲突,并且实施 MUST 将 Listener 状态中的 " Conflicted " 条件设置为 "True"。

对于本文档的目的,单词 "indistinct" 和 "conflicted" 被视为等效的内容。

实现 MAY 只有在只接受不包含冲突的 Listeners 的部分 Listener 集时,才选择接受带有某些冲突的 Listeners 的网关。

具体来说,实施 MAY 接受部分 Listener 设置,具体取决于以下规则:

  • 该实施不能选一个冲突的 Listener 作为优胜者。不接受 ALL indistinct Listeners 进行处理。
  • 至少存在一个不同的 Listener 必须存在,否则网关有效地包含 Listeners,且必须拒绝整个处理。

当网关包含冲突的 Listenered Listeners 是否接受网关时,在网关状态上设置 "ListenersNotValid" 条件。该条件 SHOULD 明确表示消息中哪些 Listeners 被冲突,哪些被接受。另外,这些监听器 SHOULD 的 Listener 状态表示哪些 Listeners 被冲突且没有接受。

swig 常规 Listener 行为

请注意,对于所有不同的 Listener,请求 SHOULD 匹配最多一个 Listener。例如,如果为 "foo.example.com" 和 ".example.com" 定义了 Listeners,则对 "foo.example.com" SHOULD 的请求只使用附加到 "foo.example.com" Listener 的路由

这个概念被称为 "Listener Isolation",它是网关 API 的扩展功能。不支持 Listener 隔离功能的实现有明确记录,但必须声明支持 GatewayHTTPListenerIsolation 功能。

支持 Listener 隔离 SHOULD 声明对扩展 网关HTTPListener 隔离功能的 实现,并传递相关的一致性测试。

swig 兼容 Listeners

如果出现以下情况,网关的 Listeners 被视为 兼容

  1. 它们与众不同。
  2. 该实施可以满足所有所分配的地址上可用的地址要求。

扩展支持中的兼容组合因实施而异。与一个实现兼容的组合可能与另一个实现不兼容。

例如,一个不能在同一地址上提供 TCP 和 UDP 侦听器的实现,或者无法混合 HTTPS 和通用 TLS 侦听同一端口,也不会考虑兼容这些情况,即使它们不同。

如果所有网关中的所有 Listeners 都兼容,则实施 MAY 将单独的网关合并到一组地址上。

在以后的发行版本中,MinItems=1 要求被丢弃。

支持:Core

类型
数组

15.1.7. .spec.listeners[]

描述
侦听器传播网关接受网络连接的逻辑端点的概念。
类型
object
必填
  • name
  • port
  • protocol
Expand
属性类型描述

allowedRoutes

object

allowedRoutes 定义 MAY 附加到 Listener 和存在这些 Route 资源的可信命名空间的路由类型。

虽然客户端请求可能与多个路由规则匹配,但只有一条规则最终可能会收到请求。匹配优先级必须按以下条件顺序决定:

* 根据 Route 类型定义的最具体匹配。* 基于创建时间戳的最旧的路由。例如,创建时间戳为 "2020-09-08 01:02:03" 的路由优先于创建时间戳为 "2020-09-08 01:02:04"。* 如果其它内容都等同,则路由应以字母顺序(命名空间/名称)首先显示。例如,foo/bar 优先于 foo/baz。

应实施附加到此 Listener 的 Route 中的所有有效规则。可以忽略无效的 Route 规则(有时意味着完整的路由)。如果 Route 规则从 valid 转换为无效,则应该丢弃对该 Route 规则的支持以确保一致性。例如,即使 Route 规则指定的过滤器无效,该路由中的其余规则应该仍然被支持。

支持:Core

hostname

string

hostname 指定与定义此概念的协议类型匹配的虚拟主机名。如果未指定,则所有主机名都匹配。对于不需要基于主机名的匹配的协议,会忽略此字段。

实现必须针对以下每个协议正确应用主机名匹配:

* TLS:Listener Hostname 必须与 SNI 匹配。* HTTP: Listener Hostname 必须与请求的 Host 标头匹配。* HTTPS:Listener Hostname SHOULD 与 SNI 和 Host 标头匹配。请注意,这不需要 SNI 和 Host 标头相同。下面更详细地描述了这种情况的语义。

为确保安全性,RFC-6066 的第 11.1 节强调了依赖 SNI 主机名匹配的服务器实施,也会验证应用程序协议中的主机名。

RFC-7540 章节 9.1.2 提供了通过响应 HTTP 421 Misdirected Request status 代码来拒绝重复使用连接的机制。这表示原始服务器已拒绝请求,因为它似乎被错误直接。

要检测错误直接的请求,Gateways SHOULD 与在同一端口和协议上的所有 SNI 主机名中配置的请求授权匹配:

* 如果另一个 Listener 具有完全匹配或更具体的通配符条目,则网关 SHOULD 会返回 421。* 如果当前 Listener (在 ClientHello 期间由 SNI 匹配)与 Host: * 不匹配,如果另一个 Listener 与主机匹配,则网关 SHOULD 返回 421。* 如果没有其他 Listener 匹配主机,则网关必须返回一个 404。

对于 HTTPRoute 和 TLSRoute 资源,有与 spec.hostnames 数组的交互。当监听程序和路由都指定主机名时,接受 Route 的值之间需要有一个交集。如需更多信息,请参阅特定于路由的主机名文档。

带有通配符标签(MyPlaybooks)前缀的主机名被解释为后缀匹配。这意味着,对于 2.2. example.com 的匹配 将匹配 test.example.comfoo.test.example.com,但不匹配 example.com

支持:Core

name

string

name 是 Listener 的名称。此名称必须在网关内唯一。

支持:Core

port

整数

port 是网络端口。多个监听器可能会使用相同的端口,受 Listener 兼容性规则。

支持:Core

protocol

string

protocol 指定此监听器希望接收的网络协议。

支持:Core

tls

object

TLS 是 Listener 的 TLS 配置。如果 Protocol 字段是 "HTTPS" 或 "TLS",则需要此字段。如果 Protocol 字段是 "HTTP", "TCP", 或 "UDP",则设置此字段无效。

GatewayTLSConfig 中定义的 SNI 与 GatewayTLSConfig 中定义的证书根据此监听程序的 Hostname 字段定义。

GatewayClass MUST 对任何 TLS 握手使用与所有可用证书匹配的最长 SNI。

支持:Core

15.1.8. .spec.listeners[].allowedRoutes

描述

allowedRoutes 定义 MAY 附加到 Listener 和存在这些 Route 资源的可信命名空间的路由类型。

虽然客户端请求可能与多个路由规则匹配,但只有一条规则最终可能会收到请求。匹配优先级必须按以下条件顺序决定:

  • 最具体的匹配,如 Route 类型所定义。
  • 基于创建时间戳的最旧的路由。例如,创建时间戳为 "2020-09-08 01:02:03" 的路由优先于创建时间戳为 "2020-09-08 01:02:04"。
  • 如果其余内容都等效,则路由以字母顺序(命名空间/名称)首先显示。例如,foo/bar 优先于 foo/baz。

应实施附加到此 Listener 的 Route 中的所有有效规则。可以忽略无效的 Route 规则(有时意味着完整的路由)。如果 Route 规则从 valid 转换为无效,则应该丢弃对该 Route 规则的支持以确保一致性。例如,即使 Route 规则指定的过滤器无效,该路由中的其余规则应该仍然被支持。

支持:Core

类型
object
Expand
属性类型描述

kind

数组

kind 指定允许绑定到此网关 Listener 的组和路由类型。如果未指定或为空,则使用 Listener 协议决定选择的路由类型。

RouteGroupKind MUST 与 Listener 协议 字段中指定的应用程序协议兼容的路由类型对应。如果实现不支持或识别此资源类型,则必须将这个 Listener 的 "ResolvedRefs" 条件设置为 False,原因为 "InvalidRouteKinds"。

支持:Core

kinds[]

object

RouteGroupKind 表示组和 Route 资源的类型。

命名空间

object

命名空间表示可以从哪个路由附加到此 Listener 的命名空间。默认情况下,这仅限于此网关的命名空间。

支持:Core

15.1.9. .spec.listeners[].allowedRoutes.kinds

描述

kind 指定允许绑定到此网关 Listener 的组和路由类型。如果未指定或为空,则使用 Listener 协议决定选择的路由类型。

RouteGroupKind MUST 与 Listener 协议 字段中指定的应用程序协议兼容的路由类型对应。如果实现不支持或识别此资源类型,则必须将这个 Listener 的 "ResolvedRefs" 条件设置为 False,原因为 "InvalidRouteKinds"。

支持:Core

类型
数组

15.1.10. .spec.listeners[].allowedRoutes.kinds[]

描述
RouteGroupKind 表示组和 Route 资源的类型。
类型
object
必填
  • kind
Expand
属性类型描述

group

string

group 是 Route 的组。

kind

string

kind 是 Route 的种类。

15.1.11. .spec.listeners[].allowedRoutes.namespaces

描述

命名空间表示可以从哪个路由附加到此 Listener 的命名空间。默认情况下,这仅限于此网关的命名空间。

支持:Core

类型
object
Expand
属性类型描述

from

string

from 表示为这个网关选择 Routes 的位置。可能的值有:

:此网关都可以使用所有命名空间中的 all: 路由。* selector: 由选择器选择的命名空间中的路由可以被此网关使用。* 相同:只有同一命名空间中的路由可以被这个网关使用。

支持:Core

selector

object

当 From 设置为 "Selector" 时,必须指定选择器。在这种情况下,只有与这个 Selector 匹配的命名空间中的 Routes 才会被这个网关选择。对于"From"的其他值,会忽略此字段。

支持:Core

描述

当 From 设置为 "Selector" 时,必须指定选择器。在这种情况下,只有与这个 Selector 匹配的命名空间中的 Routes 才会被这个网关选择。对于"From"的其他值,会忽略此字段。

支持:Core

类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

15.1.15. .spec.listeners[].tls

描述

TLS 是 Listener 的 TLS 配置。如果 Protocol 字段是 "HTTPS" 或 "TLS",则需要此字段。如果 Protocol 字段是 "HTTP", "TCP", 或 "UDP",则设置此字段无效。

GatewayTLSConfig 中定义的 SNI 与 GatewayTLSConfig 中定义的证书根据此监听程序的 Hostname 字段定义。

GatewayClass MUST 对任何 TLS 握手使用与所有可用证书匹配的最长 SNI。

支持:Core

类型
object
Expand
属性类型描述

certificateRefs

数组

CertificateRefs 包含一系列对包含 TLS 证书和私钥的 Kubernetes 对象的引用。这些证书用于为与关联监听程序的主机名匹配的请求建立 TLS 握手。

对 Kubernetes Secret 的单个 CertificateRef 具有 "Core" 支持。实现 MAY 选择支持将多个证书附加到 Listener,但此行为是特定于实现的。

对不同命名空间中的资源的引用是无效的 UNLESS,目标命名空间中有一个参考Grant,允许附加证书。如果 ReferenceGrant 不允许此引用,则此监听器的 "ResolvedRefs" 条件必须为 False,原因为 "RefNotPermitted"。

当模式被设置为 "Terminate" (默认),且是可选的时,需要至少有一个元素。

CertificateRefs 可以引用标准 Kubernetes 资源,如 Secret 或特定于实现的自定义资源。

Support: Core - 对类型为 kubernetes.io/tls 的 Kubernetes Secret 的单一引用

支持:特定于实施的(而不是一个参考或其他资源类型)

certificateRefs[]

object

SecretObjectReference 识别一个 API 对象,包括其命名空间,默认为 Secret。

API 对象必须在集群中有效;集群中必须注册 Group 和 Kind,以便此引用有效。

对具有无效 Group 和 Kind 的对象的引用无效,且必须由实施被拒绝,并在包含对象上设置适当的 Conditions。

模式

string

mode 定义客户端启动的 TLS 会话的 TLS 行为。有两种可能模式:

- 终止:下游客户端和网关之间的 TLS 会话在网关终止。此模式需要以某种方式指定证书,如填充 certificateRefs 字段。- Passthrough:TLS 会话不会由网关终止。这意味着网关无法解码 TLS 流,但 TLS 协议的 ClientHello 消息除外。这个模式中会忽略 certificateRefs 字段。

支持:Core

options

对象(字符串)

选项是键/值对列表,用于为每个实现启用扩展 TLS 配置。例如,配置最小 TLS 版本或支持的密码套件。

API 将定义一组通用密钥 MAY。为了避免任何模糊的实现特定实施定义,需要使用域前缀名称,如 example.com/my-custom-option。未前缀的名称为网关 API 定义的密钥名称保留。

支持:特定于实施

15.1.16. .spec.listeners[].tls.certificateRefs

描述

CertificateRefs 包含一系列对包含 TLS 证书和私钥的 Kubernetes 对象的引用。这些证书用于为与关联监听程序的主机名匹配的请求建立 TLS 握手。

对 Kubernetes Secret 的单个 CertificateRef 具有 "Core" 支持。实现 MAY 选择支持将多个证书附加到 Listener,但此行为是特定于实现的。

对不同命名空间中的资源的引用是无效的 UNLESS,目标命名空间中有一个参考Grant,允许附加证书。如果 ReferenceGrant 不允许此引用,则此监听器的 "ResolvedRefs" 条件必须为 False,原因为 "RefNotPermitted"。

当模式被设置为 "Terminate" (默认),且是可选的时,需要至少有一个元素。

CertificateRefs 可以引用标准 Kubernetes 资源,如 Secret 或特定于实现的自定义资源。

Support: Core - 对类型为 kubernetes.io/tls 的 Kubernetes Secret 的单一引用

支持:特定于实施的(而不是一个参考或其他资源类型)

类型
数组

15.1.17. .spec.listeners[].tls.certificateRefs[]

描述

SecretObjectReference 识别一个 API 对象,包括其命名空间,默认为 Secret。

API 对象必须在集群中有效;集群中必须注册 Group 和 Kind,以便此引用有效。

对具有无效 Group 和 Kind 的对象的引用无效,且必须由实施被拒绝,并在包含对象上设置适当的 Conditions。

类型
object
必填
  • name
Expand
属性类型描述

group

string

组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。

kind

string

kind 是引用的类型。例如 "Secret"。

name

string

name 是引用的名称。

namespace

string

namespace 是引用对象的命名空间。如果未指定,本地命名空间将被推断出来。

请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。

支持:Core

15.1.18. .status

描述
Status 定义网关的当前状态。
类型
object
Expand
属性类型描述

addresses

数组

addresses 列出已绑定到网关的网络地址。

这个列表可能与某些条件下 spec 中提供的地址不同:

* 没有指定地址,所有地址都会被动态分配为指定地址的组合,并分配动态地址的 * 一个指定的地址不可用(例如已在使用中)

addresses[]

object

GatewayStatusAddress 描述了绑定到网关的网络地址。

conditions

数组

条件描述了网关的当前条件。

实现应该更喜欢使用 GatewayConditionTypeGatewayConditionReason 常量来表达网关条件,以便操作员和工具可以聚合到通用 vocabulary 来描述网关状态。

已知条件类型是:

* "accepted" * "Programmed" * "Ready"

conditions[]

object

condition 包含此 API 资源当前状态的一个方面的详细信息。

监听器

数组

监听器为 Spec 中定义的每个唯一监听程序端口提供状态。

listeners[]

object

ListenerStatus 是与 Listener 关联的状态。

15.1.19. .status.addresses

描述

addresses 列出已绑定到网关的网络地址。

这个列表可能与某些条件下 spec 中提供的地址不同:

  • 未指定地址,将动态分配所有地址
  • 分配指定和动态地址的组合
  • 指定的地址不可用(例如已在使用中)
类型
array

15.1.20. .status.addresses[]

描述
GatewayStatusAddress 描述了绑定到网关的网络地址。
类型
object
必填
  • value
Expand
属性类型描述

type

string

地址的类型。

value

string

地址值。值的有效性取决于控制器的类型和支持。

示例:1.2. 3.4,128::1,my-ip-address.

15.1.21. .status.conditions

描述

条件描述了网关的当前条件。

实现应该更喜欢使用 GatewayConditionTypeGatewayConditionReason 常量来表达网关条件,以便操作员和工具可以聚合到通用 vocabulary 来描述网关状态。

已知条件类型是:

  • "accepted"
  • "programmed"
  • "ready"
类型
array

15.1.22. .status.conditions[]

描述
condition 包含此 API 资源当前状态的一个方面的详细信息。
类型
object
必填
  • lastTransitionTime
  • message
  • reason
  • status
  • type
Expand
属性类型描述

lastTransitionTime

字符串

lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。

message

字符串

Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。

observedGeneration

整数

observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。

reason

字符串

reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。

status

字符串

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

type

字符串

CamelCase 或 foo.example.com/CamelCase 中的条件类型。

15.1.23. .status.listeners

描述
监听器为 Spec 中定义的每个唯一监听程序端口提供状态。
类型
数组

15.1.24. .status.listeners[]

描述
ListenerStatus 是与 Listener 关联的状态。
类型
object
必填
  • attachedRoutes
  • conditions
  • name
  • supportedKinds
Expand
属性类型描述

attachedRoutes

整数

AttachedRoutes 代表已成功附加到此 Listener 的路由总数。

成功将路由附加到 Listener 只会基于相应 Listener 和 Route 的 ParentRefs 字段上的 AllowedRoutes 字段的组合。当一个 Route 被 Listener 的 AllowedRoutes 字段选择,并且 Route 有一个有效的 ParentRef 选择整个网关资源,或一个特定的 Listener 作为父资源(可在各种 Route 类型 ParentRefs 字段的文档中找到它)。监听器或 Route 状态不会影响成功附加,即对于带有 condition Accepted: false 和 MUST 计数的 Listeners 设置 AttachedRoutes 字段数。

此字段使用包括对 Route 附加进行故障排除,并测量对 Listener 的更改的影响。

conditions

数组

条件描述了此侦听器的当前条件。

conditions[]

object

condition 包含此 API 资源当前状态的一个方面的详细信息。

name

string

name 是此状态对应的 Listener 的名称。

supportedKinds

数组

SupportedKinds 是指示此监听程序支持的 Kinds 的列表。这必须代表支持该 Listener 配置的实施。

如果在不支持的 Spec 中指定类型,它们必须不会出现在此列表中,并且实施必须将 "ResolvedRefs" 条件设置为 "False",并带有 "InvalidRouteKinds" 原因。如果同时指定了有效和无效的 Route 类型,实现必须引用指定的有效 Route 类型。

supportedKinds[]

object

RouteGroupKind 表示组和 Route 资源的类型。

15.1.25. .status.listeners[].conditions

描述
条件描述了此侦听器的当前条件。
类型
数组

15.1.26. .status.listeners[].conditions[]

描述
condition 包含此 API 资源当前状态的一个方面的详细信息。
类型
object
必填
  • lastTransitionTime
  • message
  • reason
  • status
  • type
Expand
属性类型描述

lastTransitionTime

字符串

lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。

message

字符串

Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。

observedGeneration

整数

observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。

reason

字符串

reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。

status

字符串

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

type

字符串

CamelCase 或 foo.example.com/CamelCase 中的条件类型。

15.1.27. .status.listeners[].supportedKinds

描述

SupportedKinds 是指示此监听程序支持的 Kinds 的列表。这必须代表支持该 Listener 配置的实施。

如果在不支持的 Spec 中指定类型,它们必须不会出现在此列表中,并且实施必须将 "ResolvedRefs" 条件设置为 "False",并带有 "InvalidRouteKinds" 原因。如果同时指定了有效和无效的 Route 类型,实现必须引用指定的有效 Route 类型。

类型
数组

15.1.28. .status.listeners[].supportedKinds[]

描述
RouteGroupKind 表示组和 Route 资源的类型。
类型
object
必填
  • kind
Expand
属性类型描述

group

string

group 是 Route 的组。

kind

string

kind 是 Route 的种类。

15.2. API 端点

可用的 API 端点如下:

  • /apis/gateway.networking.k8s.io/v1/gateways

    • GET: 列出类型为网关的对象
  • /apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/gateways

    • DELETE :删除网关集合
    • GET: 列出类型为网关的对象
    • POST :创建网关
  • /apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/gateways/{name}

    • DELETE :删除网关
    • GET :读取指定的网关
    • PATCH: 部分更新指定的网关
    • PUT :替换指定的网关
  • /apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/gateways/{name}/status

    • GET :指定网关的读取状态
    • PATCH: 部分更新指定网关的状态
    • PUT :替换指定网关的状态

15.2.1. /apis/gateway.networking.k8s.io/v1/gateways

HTTP 方法
GET
描述
列出类型为网关的对象
Expand
表 15.1. HTTP 响应
HTTP 代码响应正文

200 - OK

GatewayList 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除网关集合
Expand
表 15.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出类型为网关的对象
Expand
表 15.3. HTTP 响应
HTTP 代码响应正文

200 - OK

GatewayList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建网关
Expand
表 15.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 15.5. 主体参数
参数类型描述

正文(body)

gateway 模式

 
Expand
表 15.6. HTTP 响应
HTTP 代码响应正文

200 - OK

gateway 模式

201 - Created

gateway 模式

202 - Accepted

gateway 模式

401 - Unauthorized

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

name

string

网关的名称

HTTP 方法
DELETE
描述
删除网关
Expand
表 15.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 15.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
读取指定的网关
Expand
表 15.10. HTTP 响应
HTTP 代码响应正文

200 - OK

gateway 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的网关
Expand
表 15.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 15.12. HTTP 响应
HTTP 代码响应正文

200 - OK

gateway 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的网关
Expand
表 15.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 15.14. 主体参数
参数类型描述

正文(body)

gateway 模式

 
Expand
表 15.15. HTTP 响应
HTTP 代码响应正文

200 - OK

gateway 模式

201 - Created

gateway 模式

401 - Unauthorized

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

name

string

网关的名称

HTTP 方法
GET
描述
指定网关的读取状态
Expand
表 15.17. HTTP 响应
HTTP 代码响应正文

200 - OK

gateway 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定网关的状态
Expand
表 15.18. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 15.19. HTTP 响应
HTTP 代码响应正文

200 - OK

gateway 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定网关的状态
Expand
表 15.20. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 15.21. 主体参数
参数类型描述

正文(body)

gateway 模式

 
Expand
表 15.22. HTTP 响应
HTTP 代码响应正文

200 - OK

gateway 模式

201 - Created

gateway 模式

401 - Unauthorized

第 16 章 GatewayClass [gateway.networking.k8s.io/v1]

描述

GatewayClass 描述了可供用户创建网关资源的网关类。

建议将此资源用作网关的模板。这意味着网关是基于创建 GatewayClass 的状态,并且对 GatewayClass 或关联参数的更改不会传播到现有网关。这个建议旨在限制 GatewayClass 或相关参数的更改。如果实现选择将 GatewayClass 更改传播到现有网关,则实施中必须明确记录该网关。

每当一个或多个网关使用 GatewayClass 时,实现 SHOULD 会在关联的 GatewayClass 上添加 gateway-exists-finalizer.gateway.networking.k8s.io finalizer。这样可确保在使用时不会删除与网关关联的 GatewayClass。

GatewayClass 是一个集群级别资源。

类型
object
必填
  • spec

16.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

spec 定义 GatewayClass 所需的状态。

status

object

Status 定义 GatewayClass 的当前状态。

实现需要为所有 GatewayClass 资源填充状态,以指定其控制器名称。

16.1.1. .spec

描述
spec 定义 GatewayClass 所需的状态。
类型
object
必填
  • controllerName
Expand
属性类型描述

controllerName

string

ControllerName 是管理此类网关的控制器的名称。此字段的值必须是域前缀路径。

示例:"example.net/gateway-controller"。

此字段不可可变,不能为空。

支持:Core

description

string

描述可帮助描述 GatewayClass,其更多详情。

parametersRef

object

ParametersRef 是对包含与 GatewayClass 对应的配置参数的资源的引用。如果控制器不需要任何其他配置,则这是可选的。

ParametersRef 可以引用标准 Kubernetes 资源,如 ConfigMap 或特定于实现的自定义资源。资源可以是集群范围的,也可以是命名空间范围的。

如果无法找到引用,请参阅不支持的 kind 或当该资源中的数据格式不正确时,GatewayClass SHOULD 将被拒绝,并将 "Accepted" 状态条件设置为 "False",以及 "InvalidParameters" 原因。

此网关Class 的网关可能会提供自己的 参数Ref。当两者都被指定时,合并行为是特定于实现的。通常建议 GatewayClass 提供可由网关覆盖的默认值。

支持:特定于实施

16.1.2. .spec.parametersRef

描述

ParametersRef 是对包含与 GatewayClass 对应的配置参数的资源的引用。如果控制器不需要任何其他配置,则这是可选的。

ParametersRef 可以引用标准 Kubernetes 资源,如 ConfigMap 或特定于实现的自定义资源。资源可以是集群范围的,也可以是命名空间范围的。

如果无法找到引用,请参阅不支持的 kind 或当该资源中的数据格式不正确时,GatewayClass SHOULD 将被拒绝,并将 "Accepted" 状态条件设置为 "False",以及 "InvalidParameters" 原因。

此网关Class 的网关可能会提供自己的 参数Ref。当两者都被指定时,合并行为是特定于实现的。通常建议 GatewayClass 提供可由网关覆盖的默认值。

支持:特定于实施

类型
object
必填
  • group
  • kind
  • name
Expand
属性类型描述

group

string

组是引用的组。

kind

string

kind 是引用的类型。

name

string

name 是引用的名称。

namespace

string

namespace 是引用的命名空间。当引用命名空间范围的资源时,需要此字段,在引用集群范围的资源时必须取消设置。

16.1.3. .status

描述

Status 定义 GatewayClass 的当前状态。

实现需要为所有 GatewayClass 资源填充状态,以指定其控制器名称。

类型
object
Expand
属性类型描述

conditions

数组

条件是此 GatewayClass 的控制器中的当前状态。

控制器应更喜欢为每个 Condition 类型使用 GatewayClassConditionType 值发布条件。

conditions[]

object

condition 包含此 API 资源当前状态的一个方面的详细信息。

16.1.4. .status.conditions

描述

条件是此 GatewayClass 的控制器中的当前状态。

控制器应更喜欢为每个 Condition 类型使用 GatewayClassConditionType 值发布条件。

类型
array

16.1.5. .status.conditions[]

描述
condition 包含此 API 资源当前状态的一个方面的详细信息。
类型
object
必填
  • lastTransitionTime
  • message
  • reason
  • status
  • type
Expand
属性类型描述

lastTransitionTime

字符串

lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。

message

字符串

Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。

observedGeneration

整数

observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。

reason

字符串

reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。

status

字符串

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

type

字符串

CamelCase 或 foo.example.com/CamelCase 中的条件类型。

16.2. API 端点

可用的 API 端点如下:

  • /apis/gateway.networking.k8s.io/v1/gatewayclasses

    • DELETE: 删除 GatewayClass 集合
    • GET: 列出类型为 GatewayClass 的对象
    • POST :创建 GatewayClass
  • /apis/gateway.networking.k8s.io/v1/gatewayclasses/{name}

    • DELETE :删除 GatewayClass
    • GET :读取指定的 GatewayClass
    • PATCH: 部分更新指定的 GatewayClass
    • PUT :替换指定的 GatewayClass
  • /apis/gateway.networking.k8s.io/v1/gatewayclasses/{name}/status

    • GET :指定 GatewayClass 的读取状态
    • PATCH: 部分更新指定 GatewayClass 的状态
    • PUT :替换指定 GatewayClass 的状态

16.2.1. /apis/gateway.networking.k8s.io/v1/gatewayclasses

HTTP 方法
DELETE
描述
删除 GatewayClass 集合
Expand
表 16.1. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出 kind GatewayClass 的对象
Expand
表 16.2. HTTP 响应
HTTP 代码响应正文

200 - OK

GatewayClassList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 GatewayClass
Expand
表 16.3. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 16.4. 主体参数
参数类型描述

正文(body)

GatewayClass 模式

 
Expand
表 16.5. HTTP 响应
HTTP 代码响应正文

200 - OK

GatewayClass 模式

201 - Created

GatewayClass 模式

202 - Accepted

GatewayClass 模式

401 - Unauthorized

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

name

string

GatewayClass 的名称

HTTP 方法
DELETE
描述
删除 GatewayClass
Expand
表 16.7. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 16.8. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
读取指定的 GatewayClass
Expand
表 16.9. HTTP 响应
HTTP 代码响应正文

200 - OK

GatewayClass 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 GatewayClass
Expand
表 16.10. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 16.11. HTTP 响应
HTTP 代码响应正文

200 - OK

GatewayClass 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 GatewayClass
Expand
表 16.12. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 16.13. 主体参数
参数类型描述

正文(body)

GatewayClass 模式

 
Expand
表 16.14. HTTP 响应
HTTP 代码响应正文

200 - OK

GatewayClass 模式

201 - Created

GatewayClass 模式

401 - Unauthorized

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

name

string

GatewayClass 的名称

HTTP 方法
GET
描述
指定 GatewayClass 的读取状态
Expand
表 16.16. HTTP 响应
HTTP 代码响应正文

200 - OK

GatewayClass 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 GatewayClass 的状态
Expand
表 16.17. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 16.18. HTTP 响应
HTTP 代码响应正文

200 - OK

GatewayClass 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 GatewayClass 的状态
Expand
表 16.19. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 16.20. 主体参数
参数类型描述

正文(body)

GatewayClass 模式

 
Expand
表 16.21. HTTP 响应
HTTP 代码响应正文

200 - OK

GatewayClass 模式

201 - Created

GatewayClass 模式

401 - Unauthorized

第 17 章 HTTPRoute [gateway.networking.k8s.io/v1]

描述
HTTPRoute 提供路由 HTTP 请求的方式。这包括按主机名、路径、标头或查询参数匹配请求的能力。过滤器可用于指定其他处理步骤。后端指定应该路由匹配的请求。
类型
object
必填
  • spec

17.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

spec 定义 HTTPRoute 的所需状态。

status

object

Status 定义 HTTPRoute 的当前状态。

17.1.1. .spec

描述
spec 定义 HTTPRoute 的所需状态。
类型
object
Expand
属性类型描述

hostnames

数组(字符串)

hostnames 定义一组主机名,它们应当与 HTTP 主机标头匹配,以选择用于处理请求的 HTTPRoute。实施必须忽略 HTTP 主机标头中指定的任何端口值,同时执行匹配项和(任何适用的标头修改配置的absent)必须将此标头未修改转发到后端。

主机名的有效值由带有 2 值得例外的主机名的 RFC 1123 定义决定:

1.不允许使用 IP。2.主机名可以带有通配符标签前缀(.<)。通配符标签必须本身作为第一个标签出现。

如果主机名同时由 Listener 和 HTTPRoute 指定,则必须至少有一个交集主机名,以便 HTTPRoute 才能附加到 Listener。例如:

* 使用 test.example.com 作为主机名的 Listener 与没有指定任何主机名的 HTTPRoutes 匹配,或者至少指定了 test.example.com 或 3.0. example.com 之一。* 带有 2.2. example.com 作为主机名的 Listener 与没有指定任何主机名的 HTTPRoutes 匹配,或者至少指定了与 Listener 主机名匹配的主机名。例如: \*.example.comtest.example.comfoo.test.example.com 都匹配。另一方面,example.comtest.example.net 不匹配。

带有通配符标签(MyPlaybooks)前缀的主机名被解释为后缀匹配。这意味着,对于 2.2. example.com 的匹配 将匹配 test.example.comfoo.test.example.com,但不匹配 example.com

如果 Listener 和 HTTPRoute 都指定了主机名,则所有与 Listener 主机名不匹配的 HTTPRoute 主机名都会被忽略。例如,如果指定了 Listener. example.com,并且 HTTPRoute 指定 test.example.comtest.example.net,则不能考虑test.example.net

如果 Listener 和 HTTPRoute 都指定了主机名,并且与上述条件都不匹配,则不接受 HTTPRoute。实现必须引发 'Accepted' Condition 状态,其状态在对应的 RouteParentStatus 中。

如果多个 HTTPRoutes 指定交集主机名(例如,重叠通配符匹配和完全匹配主机名),则必须将优先级提供给 HTTPRoute 中带有最大数量的 HTTPRoute 的规则:

* 在匹配非通配符主机名中的字符。* 匹配主机名中的字符。

如果在多个路由间有绑定,HTTPRouteMatches 的匹配优先级规则会接管。

支持:Core

parentRefs

数组

ParentRefs 引用路由要附加到的资源(通常为 Gateway)。请注意,引用的父资源需要允许此附加完成。对于网关,这意味着网关需要允许从此类和命名空间的 Routes 进行附加。对于服务,这意味着 Service 必须位于同一命名空间中用于 "producer" 路由,或者网格实现必须支持并允许所引用服务的 "consumer" 路由。ReferenceGrant 不适用于管理对 Services 的 ParentRefs to Services - 无法在与 Route 不同的命名空间中为服务创建 "producer" 路由。

支持"Core"支持的父资源有两种:

* gateway (Gateway conformance profile)* Service (Mesh conformance profile, only ClusterIP Services)

以后可能会扩展此 API,以支持其他类型的父资源。

ParentRefs 必须 不同。这意味着:

* 它们选择不同的对象。如果是这种情况,则 parentRef 条目会有所不同。就字段而言,这意味着由 ,kind,namespace, 和 name 定义的多部分键必须在 Route 中的所有 parentRef 条目中唯一。* 它们没有选择不同的对象,但每个可选字段都使用的每个可选字段,每个选择同一对象的 ParentRef 都必须将相同的可选字段设置为不同的值。如果一个 ParentRef 设置可选字段的组合,则所有字段都必须设置相同的组合。

一些示例:

* 如果一个 ParentRef 设置 sectionName,则引用同一对象的所有 ParentRefs 还必须设置 sectionName。* 如果一个 ParentRef 设置 端口,则引用同一对象的所有 ParentRefs 也必须设置 端口。* 如果一个 ParentRef 设置 sectionName 和端口,则引用同一对象的所有 ParentRefs 还必须设置 sectionName 和端口

可以单独引用多个不同的对象,这些对象可能会被实施折叠。例如,一些实现可能会选择将兼容的网关 Listeners 合并在一起。如果是这种情况,则也应合并附加到这些资源的路由列表。

请注意,对于跨命名空间边界的 ParentRefs,有特定的规则。只有跨命名空间引用被引用的命名空间中明确允许时才有效。例如,Gateway 具有 AllowedRoutes 字段,ReferenceGrant 提供了启用其他类型的跨命名空间参考的通用方法。

parentRefs[]

object

ParentReference 识别一个 API 对象(通常是网关),它被视为此资源的父项(通常是路由)。支持"Core"支持的父资源有两种:

* gateway (Gateway conformance profile)* Service (Mesh conformance profile, only ClusterIP Services)

以后可能会扩展此 API,以支持其他类型的父资源。

API 对象必须在集群中有效;集群中必须注册 Group 和 Kind,以便此引用有效。

rules

数组

规则是 HTTP 匹配器、过滤器和操作的列表。

rules[]

object

HTTPRouteRule 根据条件(matches)定义与 HTTP 请求匹配的语义,处理它(filters),并将请求转发到 API 对象(backendRefs)。

17.1.2. .spec.parentRefs

描述

ParentRefs 引用路由要附加到的资源(通常为 Gateway)。请注意,引用的父资源需要允许此附加完成。对于网关,这意味着网关需要允许从此类和命名空间的 Routes 进行附加。对于服务,这意味着 Service 必须位于同一命名空间中用于 "producer" 路由,或者网格实现必须支持并允许所引用服务的 "consumer" 路由。ReferenceGrant 不适用于管理对 Services 的 ParentRefs to Services - 无法在与 Route 不同的命名空间中为服务创建 "producer" 路由。

支持"Core"支持的父资源有两种:

  • gateway (Gateway conformance profile)
  • 服务(Mesh conformance 配置集,仅限 ClusterIP 服务)

以后可能会扩展此 API,以支持其他类型的父资源。

ParentRefs 必须 不同。这意味着:

  • 它们选择不同的对象。如果是这种情况,则 parentRef 条目会有所不同。就字段而言,这意味着由 ,kind,namespace, 和 name 定义的多部分键必须在 Route 中的所有 parentRef 条目中唯一。
  • 它们没有选择不同的对象,但每个可选字段都使用的每个可选字段,每个选择同一对象的 ParentRef 都必须将相同的可选字段设置为不同的值。如果一个 ParentRef 设置可选字段的组合,则所有字段都必须设置相同的组合。

一些示例:

  • 如果一个 ParentRef set sectionName,则引用同一对象的所有 ParentRefs 还必须设置 sectionName
  • 如果一个 ParentRef 设置 端口,则引用同一对象的所有 ParentRefs 也必须设置 端口
  • 如果一个 ParentRef 设置 sectionName 和端口,则引用同一对象的所有 ParentRefs 还必须设置 sectionName 和端口

可以单独引用多个不同的对象,这些对象可能会被实施折叠。例如,一些实现可能会选择将兼容的网关 Listeners 合并在一起。如果是这种情况,则也应合并附加到这些资源的路由列表。

请注意,对于跨命名空间边界的 ParentRefs,有特定的规则。只有跨命名空间引用被引用的命名空间中明确允许时才有效。例如,Gateway 具有 AllowedRoutes 字段,ReferenceGrant 提供了启用其他类型的跨命名空间参考的通用方法。

类型
数组

17.1.3. .spec.parentRefs[]

描述

ParentReference 识别一个 API 对象(通常是网关),它被视为此资源的父项(通常是路由)。支持"Core"支持的父资源有两种:

  • gateway (Gateway conformance profile)
  • 服务(Mesh conformance 配置集,仅限 ClusterIP 服务)

以后可能会扩展此 API,以支持其他类型的父资源。

API 对象必须在集群中有效;集群中必须注册 Group 和 Kind,以便此引用有效。

类型
object
必填
  • name
Expand
属性类型描述

group

string

组是引用的组。如果未指定,"gateway.networking.k8s.io" 将推断出来。要设置核心 API 组(如 "Service" kind referent),Group 必须明确设置为 "" (空字符串)。

支持:Core

kind

string

kind 是引用的类型。

支持"Core"支持的父资源有两种:

* gateway (Gateway conformance profile)* Service (Mesh conformance profile, only ClusterIP Services)

对其他资源的支持是特定于实施的。

name

string

name 是引用的名称。

支持:Core

namespace

string

namespace 是引用的命名空间。如果未指定,这指的是 Route 的本地命名空间。

请注意,对于跨命名空间边界的 ParentRefs 有特定的规则。只有跨命名空间引用被引用的命名空间中明确允许时才有效。例如: Gateway 具有 AllowedRoutes 字段,ReferenceGrant 提供了一种通用方法来启用其他类型的跨命名空间引用。

支持:Core

port

整数

port 是此 Route 目标的网络端口。它可以根据父资源的类型进行解释。

当父资源是网关时,此目标是在支持此类 Route (并选择此路由)的指定端口上侦听所有的监听程序。不建议设置 Port,除非 Route 中指定的网络行为必须应用到特定端口,而不是可以更改其端口的监听程序。当同时指定了 Port 和 sectionName 时,所选监听器的名称和端口必须与两个指定的值匹配。

实施 MAY 选择支持其他父资源。支持其他类型的父资源的实施必须清楚地记录/如果端口的解释方式。

对于状态,只要父资源接受部分,则附加被视为成功。例如,网关监听程序可以通过 Route kind、namespace 或 hostname 来限制哪些 Routes 可以附加到它们。如果 2 网关监听程序的 1 个接受来自引用路由的附件,则路由必须被视为成功附加。如果没有网关监听程序接受来自此 Route 的附件,则路由必须被视为与网关分离。

支持:扩展

sectionName

string

SectionName 是目标资源中的一个部分的名称。在以下资源中,sectionName 被解释为:

* gateway: Listener 名称。当同时指定了 Port (experimental)和 SectionName 时,所选监听器的名称和端口必须与两个指定的值匹配。* service: 端口名称。当同时指定了 Port (experimental)和 SectionName 时,所选监听器的名称和端口必须与两个指定的值匹配。

实施 MAY 选择支持将路由附加到其他资源。如果是这种情况,它们必须清楚地记录 SectionName 的解释方式。

如果未指定(空字符串),这将引用整个资源。对于状态,如果父资源中的至少一个部分接受它,则附加被视为成功。例如,网关监听程序可以通过 Route kind、namespace 或 hostname 来限制哪些 Routes 可以附加到它们。如果 2 网关监听程序的 1 个接受来自引用路由的附件,则路由必须被视为成功附加。如果没有网关监听程序接受来自此 Route 的附件,则路由必须被视为与网关分离。

支持:Core

17.1.4. .spec.rules

描述
规则是 HTTP 匹配器、过滤器和操作的列表。
类型
array

17.1.5. .spec.rules[]

描述
HTTPRouteRule 根据条件(matches)定义与 HTTP 请求匹配的语义,处理它(filters),并将请求转发到 API 对象(backendRefs)。
类型
object
Expand
属性类型描述

backendRefs

数组

BackendRefs 定义应发送匹配的请求的后端。

此处的故障行为取决于指定的 BackendRefs 数量以及无效的后端。

如果 BackendRefs 中的所有 条目都无效,且没有在此路由规则中指定过滤器,则与这个规则匹配的所有流量都必须收到 500 状态代码。

有关使单个 HTTPBackendRef 无效的规则,请参阅 HTTPBackendRef 定义。

当 HTTPBackendRef 无效时,必须为其他路由到无效后端的请求返回 500 状态代码。如果指定了多个后端,一些后端无效,否则将路由到无效后端的请求比例接收 500 状态代码。

例如,如果指定了两个后端,且权重相等,且一个无效,则 50% 的流量必须接收 500 个。实施可能会选择 50% 的决定方式。

当 HTTPBackendRef 指的是没有就绪端点的服务时,实现 SHOULD 会改为为该后端返回 503。如果实施选择这样做,则上述所有上述规则都必须针对 500 个响应,对于返回 503 的响应也同样适用于返回 503 的响应。

支持 :Kubernetes Service 的核心

Support: Extended for Kubernetes ServiceImport

支持:特定于任何其他资源的实现

对权重的支持: Core

backendRefs[]

object

HTTPBackendRef 定义 HTTPRoute 如何转发 HTTP 请求。

请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。

过滤器

数组

过滤器定义应用到与此规则匹配的请求的过滤器。

在可能的情况下,实施 SHOULD 按指定的顺序实施过滤器。

实施 MAY 选择严格实施此排序,从而拒绝不支持的任何过滤器组合或顺序。如果实现选择对过滤排序的严格解释,则它们必须清楚地记录该行为。

要拒绝无效的过滤器组合或过滤器顺序,实现 SHOULD 会考虑带有此配置的 Route 规则无效。如果路由中的所有路由规则都无效,则整个路由将被视为无效。如果只有一部分 Route 规则无效,则实现必须为 Route 设置 "PartiallyInvalid" 条件。

此级别上的一致性级别会根据过滤器类型定义:

- 所有核心过滤器都必须由所有实现支持。- 鼓励实现的实现来支持扩展过滤器。- 特定于实现的自定义过滤器在实现过程中没有 API 保证。

除非在过滤器中明确指定,否则不支持多次指定同一过滤器。

除 URLRewrite 和 RequestRedirect 过滤器外,所有过滤器都应该相互兼容,但可能无法组合使用。如果实施不支持其他过滤器组合,它们必须清楚地记录那个限制。如果指定了不兼容或不支持的过滤器,并导致 Accepted 条件被设置为 False 状态,则实现可能会使用 IncompatibleFilters reason 来指定此配置错误。

支持:Core

filters[]

object

HTTPRouteFilter 定义在请求或响应生命周期内必须完成的处理步骤。HTTPRouteFilters 充当一个扩展点,用于表达在网关实施中可能完成的处理。有些示例包括请求或响应修改、实施身份验证策略、速率限制和流量控制。API 保证/格式根据过滤器的类型定义。

matches

数组

matches 定义用于与传入 HTTP 请求匹配的规则的条件。每个匹配项都独立,例如,如果 满足任何 其中一个匹配项,则此规则将匹配。

例如,使用以下内容匹配配置:

matches: - path: value: "/foo" headers: - name: "version" value: "v2" - path: value: "/v2/foo"

要与此规则匹配的请求,请求必须满足两个条件的 EITHER:

- 带有 /foo AND 前缀的路径包含标头 version: v2- path prefix of /v2/foo

有关如何指定应同时存在的多个匹配条件的信息,请参阅 HTTPRouteMatch 文档。

如果没有指定匹配项,则默认值是前缀路径与"/"匹配,其效果与每个 HTTP 请求匹配。

根据以下条件,从 HTTPRoutes MUST 生成的代理或 Load Balancer 路由配置会按照以下条件继续匹配。在适用路由中指定的所有规则中,必须为匹配项提供优先级:

* "exact" 路径匹配。* "prefix" 路径与最大字符数匹配。* 方法匹配。* 最大的标头匹配数。* 的最大查询参数数匹配。

注: RegularExpression 路径匹配的优先级是特定于实现的。

如果绑定仍存在于多个路由中,则按以下条件顺序确定匹配的优先级,继续绑定:

* 基于创建时间戳的最旧的路由。* 路由以字母顺序按 "{namespace}/{name}" 开头。

如果 HTTPRoute 中仍然存在 ties,则匹配的优先级必须授予 FIRST 匹配规则(按列表顺序),符合上述条件。

如果没有与请求成功附加到父请求的规则时,将返回 HTTP 404 状态代码 MUST。

matches[]

object

HTTPRouteMatch 定义用于将请求与给定操作匹配的 predicate。多个匹配类型是 AND,即仅在满足所有条件时,匹配才会评估为 true。

例如,只有在其路径以 /foo AND 开头且包含 version: v1 标头时,以下匹配才会匹配 HTTP 请求:

match:

path: value: "/foo" headers: - name: "version" value "v1"

超时

object

超时定义可以为 HTTP 请求配置的超时。

支持:扩展

17.1.6. .spec.rules[].backendRefs

描述

BackendRefs 定义应发送匹配的请求的后端。

此处的故障行为取决于指定的 BackendRefs 数量以及无效的后端。

如果 BackendRefs 中的所有 条目都无效,且没有在此路由规则中指定过滤器,则与这个规则匹配的所有流量都必须收到 500 状态代码。

有关使单个 HTTPBackendRef 无效的规则,请参阅 HTTPBackendRef 定义。

当 HTTPBackendRef 无效时,必须为其他路由到无效后端的请求返回 500 状态代码。如果指定了多个后端,一些后端无效,否则将路由到无效后端的请求比例接收 500 状态代码。

例如,如果指定了两个后端,且权重相等,且一个无效,则 50% 的流量必须接收 500 个。实施可能会选择 50% 的决定方式。

当 HTTPBackendRef 指的是没有就绪端点的服务时,实现 SHOULD 会改为为该后端返回 503。如果实施选择这样做,则上述所有上述规则都必须针对 500 个响应,对于返回 503 的响应也同样适用于返回 503 的响应。

支持 :Kubernetes Service 的核心

Support: Extended for Kubernetes ServiceImport

支持:特定于任何其他资源的实现

对权重的支持: Core

类型
数组

17.1.7. .spec.rules[].backendRefs[]

描述

HTTPBackendRef 定义 HTTPRoute 如何转发 HTTP 请求。

请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。

类型
object
必填
  • name
Expand
属性类型描述

过滤器

数组

只有在请求被转发到此处定义的后端时,才应执行此级别中定义的过滤器。

支持:特定于实现的(对于更广泛的过滤器支持,请使用 HTTPRouteRule 中的 Filters 字段。)

filters[]

object

HTTPRouteFilter 定义在请求或响应生命周期内必须完成的处理步骤。HTTPRouteFilters 充当一个扩展点,用于表达在网关实施中可能完成的处理。有些示例包括请求或响应修改、实施身份验证策略、速率限制和流量控制。API 保证/格式根据过滤器的类型定义。

group

string

组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。

kind

string

kind 是引用的 Kubernetes 资源类型。例如 "Service"。

如果没有指定,则默认为 "Service"。

ExternalName 服务可以引用集群中可能位于的 CNAME DNS 记录,因此很难考虑一致性。它们也可能不安全(请参阅 CVE-2021-25740 了解更多信息)。实施 SHOULD 不支持 ExternalName 服务。

Support: Core (带有 ExternalName 以外的类型的服务)

支持:特定于实现的(类型为 ExternalName 的服务)

name

string

name 是引用的名称。

namespace

string

namespace 是后端的命名空间。如果未指定,本地命名空间将被推断出来。

请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。

支持:Core

port

整数

port 指定用于此资源的目标端口号。当引用是 Kubernetes 服务时,需要端口。在本例中,端口号是服务端口号,而不是目标端口。对于其他资源,目的地端口可能源自引用资源或此字段。

weight

整数

weight 指定转发到引用的后端的请求的比例。这被计算为 weight/ (这个 BackendRefs 列表中有所有权重)。对于非零值,可能会有一些来自此处定义的确切比例的 epsilon,具体取决于实施支持的精度。weight 不是一个百分比,权重的总和不需要等于 100。

如果只指定一个后端,且它的权重大于 0,则会将 100% 的流量转发到那个后端。如果 weight 设为 0,则不应为这个条目转发流量。如果未指定,则权重默认为 1。

对此字段的支持因使用的上下文而异。

17.1.8. .spec.rules[].backendRefs[].filters

描述

只有在请求被转发到此处定义的后端时,才应执行此级别中定义的过滤器。

支持:特定于实现的(对于更广泛的过滤器支持,请使用 HTTPRouteRule 中的 Filters 字段。)

类型
数组

17.1.9. .spec.rules[].backendRefs[].filters[]

描述
HTTPRouteFilter 定义在请求或响应生命周期内必须完成的处理步骤。HTTPRouteFilters 充当一个扩展点,用于表达在网关实施中可能完成的处理。有些示例包括请求或响应修改、实施身份验证策略、速率限制和流量控制。API 保证/格式根据过滤器的类型定义。
类型
object
必填
  • type
Expand
属性类型描述

extensionRef

object

ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。

此过滤器可以在同一规则内多次使用。

支持:特定于实施

requestHeaderModifier

object

RequestHeaderModifier 定义修改请求标头的过滤器的模式。

支持:Core

requestMirror

object

RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。

此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。

支持:扩展

requestRedirect

object

RequestRedirect 定义通过 HTTP 重定向响应请求的过滤器的模式。

支持:Core

responseHeaderModifier

object

ResponseHeaderModifier 为修改响应标头的过滤器定义模式。

支持:扩展

type

string

Type 标识要应用的过滤器类型。与其他 API 字段一样,类型被分为三个一致性级别:

- core :过滤类型及其在这个软件包中"Support: Core"定义的相应配置,例如:"RequestHeaderModifier".所有实施都必须支持核心过滤器。

- Extended: Filter type 及其对应的配置由这个软件包中的"Support: Extended"定义,例如:"RequestMirror"。我们鼓励实施人员支持扩展过滤器。

- 特定于实现的:由特定供应商定义和支持的过滤器。未来,显示多个实施中行为的过滤器将被视为扩展或核心一致性级别。这些过滤器的特定于过滤器的配置使用 ExtensionRef 字段指定。对于自定义 过滤器,type 应该设置为 "ExtensionRef"。

我们鼓励实施人员定义自定义实施类型,以使用特定于实施的行为来扩展核心 API。

如果无法解析对自定义过滤器类型的引用,则不会跳过过滤器。相反,已由该过滤器处理的请求接收 HTTP 错误响应。

请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。

此处的未知值必须实现将 Route 的 Accepted Condition 设置为 status: False,Reason 为 UnsupportedValue

urlRewrite

object

URLRewrite 为过滤器定义了一个 schema,用于在转发过程中修改请求。

支持:扩展

17.1.10. .spec.rules[].backendRefs[].filters[].extensionRef

描述

ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。

此过滤器可以在同一规则内多次使用。

支持:特定于实施

类型
object
必填
  • group
  • kind
  • name
Expand
属性类型描述

group

string

组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。

kind

string

kind 是引用的类型。例如 "HTTPRoute" 或 "Service"。

name

string

name 是引用的名称。

描述

RequestHeaderModifier 定义修改请求标头的过滤器的模式。

支持:Core

类型
object
Expand
属性类型描述

add

数组

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

add[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

remove

数组(字符串)

在操作前,从 HTTP 请求中删除给定标头。Remove 的值是 HTTP 标头名称列表。请注意,标头名称区分大小写(请参阅 https://datatracker.ietf.org/doc/html/rfc2616#section-4.2)。

input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz

config: remove: ["my-header1", "my-header3"]

输出:GET /foo HTTP/1.1 my-header2: bar

set

数组

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

set[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

描述

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

描述

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

描述

RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。

此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。

支持:扩展

类型
object
必填
  • backendRef
Expand
属性类型描述

backendRef

object

BackendRef 引用发送镜像请求的资源。

镜像请求必须只发送到此 BackendRef 中的单个目标端点,无论此 BackendRef 中有多少端点。

如果无法找到引用,则此 BackendRef 无效,且必须从网关中丢弃。控制器必须确保将 Route 状态上的 "ResolvedRefs" 条件设置为 status: False,而不是在底层实现中配置此后端。

如果对 ReferenceGrant 不允许 的现有 对象有一个跨命名空间引用,控制器必须确保 Route 上的 "ResolvedRefs" 条件被设置为 status: False,并带有 "RefNotPermitted" 原因,且不会在底层实现中配置此后端。

在任一错误情况下,应该使用 ResolvedRefs Condition 的消息来提供有关此问题的更多详情。

支持:为 Kubernetes Service 扩展

支持:特定于任何其他资源的实现

部分

object

fraction 代表应镜像到 BackendRef 的请求的比例。

只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。

百分比

整数

percent 代表应镜像到 BackendRef 的请求百分比。其最小值为 0 (代表请求 0%,其最大值为 100 (代表 100% 的请求)。

只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。

描述

BackendRef 引用发送镜像请求的资源。

镜像请求必须只发送到此 BackendRef 中的单个目标端点,无论此 BackendRef 中有多少端点。

如果无法找到引用,则此 BackendRef 无效,且必须从网关中丢弃。控制器必须确保将 Route 状态上的 "ResolvedRefs" 条件设置为 status: False,而不是在底层实现中配置此后端。

如果对 ReferenceGrant 不允许 的现有 对象有一个跨命名空间引用,控制器必须确保 Route 上的 "ResolvedRefs" 条件被设置为 status: False,并带有 "RefNotPermitted" 原因,且不会在底层实现中配置此后端。

在任一错误情况下,应该使用 ResolvedRefs Condition 的消息来提供有关此问题的更多详情。

支持:为 Kubernetes Service 扩展

支持:特定于任何其他资源的实现

类型
object
必填
  • name
Expand
属性类型描述

group

string

组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。

kind

string

kind 是引用的 Kubernetes 资源类型。例如 "Service"。

如果没有指定,则默认为 "Service"。

ExternalName 服务可以引用集群中可能位于的 CNAME DNS 记录,因此很难考虑一致性。它们也可能不安全(请参阅 CVE-2021-25740 了解更多信息)。实施 SHOULD 不支持 ExternalName 服务。

Support: Core (带有 ExternalName 以外的类型的服务)

支持:特定于实现的(类型为 ExternalName 的服务)

name

string

name 是引用的名称。

namespace

string

namespace 是后端的命名空间。如果未指定,本地命名空间将被推断出来。

请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。

支持:Core

port

整数

port 指定用于此资源的目标端口号。当引用是 Kubernetes 服务时,需要端口。在本例中,端口号是服务端口号,而不是目标端口。对于其他资源,目的地端口可能源自引用资源或此字段。

描述

fraction 代表应镜像到 BackendRef 的请求的比例。

只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。

类型
object
必填
  • numerator
Expand
属性类型描述

denominator

整数

 

numerator

整数

 
描述

RequestRedirect 定义通过 HTTP 重定向响应请求的过滤器的模式。

支持:Core

类型
object
Expand
属性类型描述

hostname

string

hostname 是响应中 Location 标头值中使用的主机名。如果为空,则使用请求的 Host 标头中的 hostname。

支持:Core

path

object

path 定义用于修改传入请求路径的参数。然后,使用修改后的路径来构建 Location 标头。如果为空,请求路径将按原样使用。

支持:扩展

port

整数

port 是响应中 Location 标头值中使用的端口。

如果没有指定端口,则使用以下规则派生重定向端口 MUST:

* 如果重定向方案不是空的,则重定向端口 MUST 是与重定向方案关联的已知端口。特别是"http"到端口 80 和 "https" 到端口 443。如果重定向方案没有已知的端口,则使用网关 SHOULD 的监听程序端口。* 如果重定向方案为空,则重定向端口需要是网关 Listener 端口。

在以下情况下,实现 SHOULD 不会在 'Location' 标头中添加端口号:

:将使用 HTTP 的 Location 标头(无论是通过 Listener 协议或 Scheme 字段决定),并使用 端口 80。:将使用 HTTPS 的 Location 标头(无论是通过 Listener 协议或 Scheme 字段决定),并使用 端口 443。

支持:扩展

scheme

string

scheme 是响应中 Location 标头值中使用的方案。如果为空,则使用请求的方案。

方案重定向可能会影响重定向的端口,如需更多信息,请参阅此过滤器的 port 字段的文档。

请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。

此处的未知值必须实现将 Route 的 Accepted Condition 设置为 status: False,Reason 为 UnsupportedValue

支持:扩展

statusCode

整数

statusCode 是要响应的 HTTP 状态代码。

请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。

此处的未知值必须实现将 Route 的 Accepted Condition 设置为 status: False,Reason 为 UnsupportedValue

支持:Core

描述

path 定义用于修改传入请求路径的参数。然后,使用修改后的路径来构建 Location 标头。如果为空,请求路径将按原样使用。

支持:扩展

类型
object
必填
  • type
Expand
属性类型描述

replaceFullPath

string

ReplaceFullPath 指定在重写或重定向期间替换请求的完整路径的值。

replacePrefixMatch

string

replacePrefixMatch 指定在重写或重定向期间替换请求的前缀匹配的值。例如,对 "/foo/bar" 的请求具有与 "/foo" 匹配的前缀,而 替换PrefixMatch 为 "/xyz" 将会被修改为 "/xyz/bar"。

请注意,这与 PathPrefix 匹配类型的行为匹配。这与完整 path 元素匹配。path 元素引用由 / 分隔符分割路径中的标签列表。指定后,忽略结尾 /。例如,路径 /abc/abc//abc/def 都与前缀 /abc 相匹配,但路径 /abcd 则不会。

replacePrefixMatch 仅与 PathPrefix HTTPRouteMatch 兼容。在同一 HTTPRouteRule 上使用任何其他 HTTPRouteMatch 类型将导致实施将 Route 的 Accepted Condition 设置为 status: False

请求路径 | 前缀匹配 | 替换前缀 | 修改路径

type

string

type 定义路径修饰符的类型。以后的 API 发行版本中可能会添加额外的类型。

请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。

此处的未知值必须实现将 Route 的 Accepted Condition 设置为 status: False,Reason 为 UnsupportedValue

描述

ResponseHeaderModifier 为修改响应标头的过滤器定义模式。

支持:扩展

类型
object
Expand
属性类型描述

add

数组

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

add[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

remove

数组(字符串)

在操作前,从 HTTP 请求中删除给定标头。Remove 的值是 HTTP 标头名称列表。请注意,标头名称区分大小写(请参阅 https://datatracker.ietf.org/doc/html/rfc2616#section-4.2)。

input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz

config: remove: ["my-header1", "my-header3"]

输出:GET /foo HTTP/1.1 my-header2: bar

set

数组

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

set[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

描述

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

描述

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

17.1.26. .spec.rules[].backendRefs[].filters[].urlRewrite

描述

URLRewrite 为过滤器定义了一个 schema,用于在转发过程中修改请求。

支持:扩展

类型
object
Expand
属性类型描述

hostname

string

hostname 是转发过程中用于替换 Host 标头值的值。

支持:扩展

path

object

path 定义路径重写。

支持:扩展

描述

path 定义路径重写。

支持:扩展

类型
object
必填
  • type
Expand
属性类型描述

replaceFullPath

string

ReplaceFullPath 指定在重写或重定向期间替换请求的完整路径的值。

replacePrefixMatch

string

replacePrefixMatch 指定在重写或重定向期间替换请求的前缀匹配的值。例如,对 "/foo/bar" 的请求具有与 "/foo" 匹配的前缀,而 替换PrefixMatch 为 "/xyz" 将会被修改为 "/xyz/bar"。

请注意,这与 PathPrefix 匹配类型的行为匹配。这与完整 path 元素匹配。path 元素引用由 / 分隔符分割路径中的标签列表。指定后,忽略结尾 /。例如,路径 /abc/abc//abc/def 都与前缀 /abc 相匹配,但路径 /abcd 则不会。

replacePrefixMatch 仅与 PathPrefix HTTPRouteMatch 兼容。在同一 HTTPRouteRule 上使用任何其他 HTTPRouteMatch 类型将导致实施将 Route 的 Accepted Condition 设置为 status: False

请求路径 | 前缀匹配 | 替换前缀 | 修改路径

type

string

type 定义路径修饰符的类型。以后的 API 发行版本中可能会添加额外的类型。

请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。

此处的未知值必须实现将 Route 的 Accepted Condition 设置为 status: False,Reason 为 UnsupportedValue

17.1.28. .spec.rules[].filters

描述

过滤器定义应用到与此规则匹配的请求的过滤器。

在可能的情况下,实施 SHOULD 按指定的顺序实施过滤器。

实施 MAY 选择严格实施此排序,从而拒绝不支持的任何过滤器组合或顺序。如果实现选择对过滤排序的严格解释,则它们必须清楚地记录该行为。

要拒绝无效的过滤器组合或过滤器顺序,实现 SHOULD 会考虑带有此配置的 Route 规则无效。如果路由中的所有路由规则都无效,则整个路由将被视为无效。如果只有一部分 Route 规则无效,则实现必须为 Route 设置 "PartiallyInvalid" 条件。

此级别上的一致性级别会根据过滤器类型定义:

  • 所有核心过滤器都必须被所有实施支持。
  • 我们鼓励实施人员支持扩展过滤器。
  • 特定于实现的自定义过滤器在实现过程中没有 API 保证。

除非在过滤器中明确指定,否则不支持多次指定同一过滤器。

除 URLRewrite 和 RequestRedirect 过滤器外,所有过滤器都应该相互兼容,但可能无法组合使用。如果实施不支持其他过滤器组合,它们必须清楚地记录那个限制。如果指定了不兼容或不支持的过滤器,并导致 Accepted 条件被设置为 False 状态,则实现可能会使用 IncompatibleFilters reason 来指定此配置错误。

支持:Core

类型
数组

17.1.29. .spec.rules[].filters[]

描述
HTTPRouteFilter 定义在请求或响应生命周期内必须完成的处理步骤。HTTPRouteFilters 充当一个扩展点,用于表达在网关实施中可能完成的处理。有些示例包括请求或响应修改、实施身份验证策略、速率限制和流量控制。API 保证/格式根据过滤器的类型定义。
类型
object
必填
  • type
Expand
属性类型描述

extensionRef

object

ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。

此过滤器可以在同一规则内多次使用。

支持:特定于实施

requestHeaderModifier

object

RequestHeaderModifier 定义修改请求标头的过滤器的模式。

支持:Core

requestMirror

object

RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。

此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。

支持:扩展

requestRedirect

object

RequestRedirect 定义通过 HTTP 重定向响应请求的过滤器的模式。

支持:Core

responseHeaderModifier

object

ResponseHeaderModifier 为修改响应标头的过滤器定义模式。

支持:扩展

type

string

Type 标识要应用的过滤器类型。与其他 API 字段一样,类型被分为三个一致性级别:

- core :过滤类型及其在这个软件包中"Support: Core"定义的相应配置,例如:"RequestHeaderModifier".所有实施都必须支持核心过滤器。

- Extended: Filter type 及其对应的配置由这个软件包中的"Support: Extended"定义,例如:"RequestMirror"。我们鼓励实施人员支持扩展过滤器。

- 特定于实现的:由特定供应商定义和支持的过滤器。未来,显示多个实施中行为的过滤器将被视为扩展或核心一致性级别。这些过滤器的特定于过滤器的配置使用 ExtensionRef 字段指定。对于自定义 过滤器,type 应该设置为 "ExtensionRef"。

我们鼓励实施人员定义自定义实施类型,以使用特定于实施的行为来扩展核心 API。

如果无法解析对自定义过滤器类型的引用,则不会跳过过滤器。相反,已由该过滤器处理的请求接收 HTTP 错误响应。

请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。

此处的未知值必须实现将 Route 的 Accepted Condition 设置为 status: False,Reason 为 UnsupportedValue

urlRewrite

object

URLRewrite 为过滤器定义了一个 schema,用于在转发过程中修改请求。

支持:扩展

17.1.30. .spec.rules[].filters[].extensionRef

描述

ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。

此过滤器可以在同一规则内多次使用。

支持:特定于实施

类型
object
必填
  • group
  • kind
  • name
Expand
属性类型描述

group

string

组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。

kind

string

kind 是引用的类型。例如 "HTTPRoute" 或 "Service"。

name

string

name 是引用的名称。

17.1.31. .spec.rules[].filters[].requestHeaderModifier

描述

RequestHeaderModifier 定义修改请求标头的过滤器的模式。

支持:Core

类型
object
Expand
属性类型描述

add

数组

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

add[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

remove

数组(字符串)

在操作前,从 HTTP 请求中删除给定标头。Remove 的值是 HTTP 标头名称列表。请注意,标头名称区分大小写(请参阅 https://datatracker.ietf.org/doc/html/rfc2616#section-4.2)。

input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz

config: remove: ["my-header1", "my-header3"]

输出:GET /foo HTTP/1.1 my-header2: bar

set

数组

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

set[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

17.1.32. .spec.rules[].filters[].requestHeaderModifier.add

描述

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

17.1.34. .spec.rules[].filters[].requestHeaderModifier.set

描述

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

17.1.36. .spec.rules[].filters[].requestMirror

描述

RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。

此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。

支持:扩展

类型
object
必填
  • backendRef
Expand
属性类型描述

backendRef

object

BackendRef 引用发送镜像请求的资源。

镜像请求必须只发送到此 BackendRef 中的单个目标端点,无论此 BackendRef 中有多少端点。

如果无法找到引用,则此 BackendRef 无效,且必须从网关中丢弃。控制器必须确保将 Route 状态上的 "ResolvedRefs" 条件设置为 status: False,而不是在底层实现中配置此后端。

如果对 ReferenceGrant 不允许 的现有 对象有一个跨命名空间引用,控制器必须确保 Route 上的 "ResolvedRefs" 条件被设置为 status: False,并带有 "RefNotPermitted" 原因,且不会在底层实现中配置此后端。

在任一错误情况下,应该使用 ResolvedRefs Condition 的消息来提供有关此问题的更多详情。

支持:为 Kubernetes Service 扩展

支持:特定于任何其他资源的实现

部分

object

fraction 代表应镜像到 BackendRef 的请求的比例。

只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。

百分比

整数

percent 代表应镜像到 BackendRef 的请求百分比。其最小值为 0 (代表请求 0%,其最大值为 100 (代表 100% 的请求)。

只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。

17.1.37. .spec.rules[].filters[].requestMirror.backendRef

描述

BackendRef 引用发送镜像请求的资源。

镜像请求必须只发送到此 BackendRef 中的单个目标端点,无论此 BackendRef 中有多少端点。

如果无法找到引用,则此 BackendRef 无效,且必须从网关中丢弃。控制器必须确保将 Route 状态上的 "ResolvedRefs" 条件设置为 status: False,而不是在底层实现中配置此后端。

如果对 ReferenceGrant 不允许 的现有 对象有一个跨命名空间引用,控制器必须确保 Route 上的 "ResolvedRefs" 条件被设置为 status: False,并带有 "RefNotPermitted" 原因,且不会在底层实现中配置此后端。

在任一错误情况下,应该使用 ResolvedRefs Condition 的消息来提供有关此问题的更多详情。

支持:为 Kubernetes Service 扩展

支持:特定于任何其他资源的实现

类型
object
必填
  • name
Expand
属性类型描述

group

string

组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。

kind

string

kind 是引用的 Kubernetes 资源类型。例如 "Service"。

如果没有指定,则默认为 "Service"。

ExternalName 服务可以引用集群中可能位于的 CNAME DNS 记录,因此很难考虑一致性。它们也可能不安全(请参阅 CVE-2021-25740 了解更多信息)。实施 SHOULD 不支持 ExternalName 服务。

Support: Core (带有 ExternalName 以外的类型的服务)

支持:特定于实现的(类型为 ExternalName 的服务)

name

string

name 是引用的名称。

namespace

string

namespace 是后端的命名空间。如果未指定,本地命名空间将被推断出来。

请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。

支持:Core

port

整数

port 指定用于此资源的目标端口号。当引用是 Kubernetes 服务时,需要端口。在本例中,端口号是服务端口号,而不是目标端口。对于其他资源,目的地端口可能源自引用资源或此字段。

17.1.38. .spec.rules[].filters[].requestMirror.fraction

描述

fraction 代表应镜像到 BackendRef 的请求的比例。

只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。

类型
object
必填
  • numerator
Expand
属性类型描述

denominator

整数

 

numerator

整数

 

17.1.39. .spec.rules[].filters[].requestRedirect

描述

RequestRedirect 定义通过 HTTP 重定向响应请求的过滤器的模式。

支持:Core

类型
object
Expand
属性类型描述

hostname

string

hostname 是响应中 Location 标头值中使用的主机名。如果为空,则使用请求的 Host 标头中的 hostname。

支持:Core

path

object

path 定义用于修改传入请求路径的参数。然后,使用修改后的路径来构建 Location 标头。如果为空,请求路径将按原样使用。

支持:扩展

port

整数

port 是响应中 Location 标头值中使用的端口。

如果没有指定端口,则使用以下规则派生重定向端口 MUST:

* 如果重定向方案不是空的,则重定向端口 MUST 是与重定向方案关联的已知端口。特别是"http"到端口 80 和 "https" 到端口 443。如果重定向方案没有已知的端口,则使用网关 SHOULD 的监听程序端口。* 如果重定向方案为空,则重定向端口需要是网关 Listener 端口。

在以下情况下,实现 SHOULD 不会在 'Location' 标头中添加端口号:

:将使用 HTTP 的 Location 标头(无论是通过 Listener 协议或 Scheme 字段决定),并使用 端口 80。:将使用 HTTPS 的 Location 标头(无论是通过 Listener 协议或 Scheme 字段决定),并使用 端口 443。

支持:扩展

scheme

string

scheme 是响应中 Location 标头值中使用的方案。如果为空,则使用请求的方案。

方案重定向可能会影响重定向的端口,如需更多信息,请参阅此过滤器的 port 字段的文档。

请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。

此处的未知值必须实现将 Route 的 Accepted Condition 设置为 status: False,Reason 为 UnsupportedValue

支持:扩展

statusCode

整数

statusCode 是要响应的 HTTP 状态代码。

请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。

此处的未知值必须实现将 Route 的 Accepted Condition 设置为 status: False,Reason 为 UnsupportedValue

支持:Core

17.1.40. .spec.rules[].filters[].requestRedirect.path

描述

path 定义用于修改传入请求路径的参数。然后,使用修改后的路径来构建 Location 标头。如果为空,请求路径将按原样使用。

支持:扩展

类型
object
必填
  • type
Expand
属性类型描述

replaceFullPath

string

ReplaceFullPath 指定在重写或重定向期间替换请求的完整路径的值。

replacePrefixMatch

string

replacePrefixMatch 指定在重写或重定向期间替换请求的前缀匹配的值。例如,对 "/foo/bar" 的请求具有与 "/foo" 匹配的前缀,而 替换PrefixMatch 为 "/xyz" 将会被修改为 "/xyz/bar"。

请注意,这与 PathPrefix 匹配类型的行为匹配。这与完整 path 元素匹配。path 元素引用由 / 分隔符分割路径中的标签列表。指定后,忽略结尾 /。例如,路径 /abc/abc//abc/def 都与前缀 /abc 相匹配,但路径 /abcd 则不会。

replacePrefixMatch 仅与 PathPrefix HTTPRouteMatch 兼容。在同一 HTTPRouteRule 上使用任何其他 HTTPRouteMatch 类型将导致实施将 Route 的 Accepted Condition 设置为 status: False

请求路径 | 前缀匹配 | 替换前缀 | 修改路径

type

string

type 定义路径修饰符的类型。以后的 API 发行版本中可能会添加额外的类型。

请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。

此处的未知值必须实现将 Route 的 Accepted Condition 设置为 status: False,Reason 为 UnsupportedValue

17.1.41. .spec.rules[].filters[].responseHeaderModifier

描述

ResponseHeaderModifier 为修改响应标头的过滤器定义模式。

支持:扩展

类型
object
Expand
属性类型描述

add

数组

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

add[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

remove

数组(字符串)

在操作前,从 HTTP 请求中删除给定标头。Remove 的值是 HTTP 标头名称列表。请注意,标头名称区分大小写(请参阅 https://datatracker.ietf.org/doc/html/rfc2616#section-4.2)。

input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz

config: remove: ["my-header1", "my-header3"]

输出:GET /foo HTTP/1.1 my-header2: bar

set

数组

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

set[]

object

HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。

17.1.42. .spec.rules[].filters[].responseHeaderModifier.add

描述

在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。

input: GET /foo HTTP/1.1 my-header: foo

config: add: - name: "my-header" value: "bar,baz"

输出:GET /foo HTTP/1.1 my-header: foo,bar,baz

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

17.1.44. .spec.rules[].filters[].responseHeaderModifier.set

描述

在操作前,使用给定标头(名称、值)设置覆盖请求。

input: GET /foo HTTP/1.1 my-header: foo

config: set: - name: "my-header" value: "bar"

输出:GET /foo HTTP/1.1 my-header: bar

类型
数组
描述
HTTPHeader 代表 RFC 7230 定义的 HTTP 标头名称和值。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

value

string

value 是要匹配的 HTTP 标头的值。

17.1.46. .spec.rules[].filters[].urlRewrite

描述

URLRewrite 为过滤器定义了一个 schema,用于在转发过程中修改请求。

支持:扩展

类型
object
Expand
属性类型描述

hostname

string

hostname 是转发过程中用于替换 Host 标头值的值。

支持:扩展

path

object

path 定义路径重写。

支持:扩展

17.1.47. .spec.rules[].filters[].urlRewrite.path

描述

path 定义路径重写。

支持:扩展

类型
object
必填
  • type
Expand
属性类型描述

replaceFullPath

string

ReplaceFullPath 指定在重写或重定向期间替换请求的完整路径的值。

replacePrefixMatch

string

replacePrefixMatch 指定在重写或重定向期间替换请求的前缀匹配的值。例如,对 "/foo/bar" 的请求具有与 "/foo" 匹配的前缀,而 替换PrefixMatch 为 "/xyz" 将会被修改为 "/xyz/bar"。

请注意,这与 PathPrefix 匹配类型的行为匹配。这与完整 path 元素匹配。path 元素引用由 / 分隔符分割路径中的标签列表。指定后,忽略结尾 /。例如,路径 /abc/abc//abc/def 都与前缀 /abc 相匹配,但路径 /abcd 则不会。

replacePrefixMatch 仅与 PathPrefix HTTPRouteMatch 兼容。在同一 HTTPRouteRule 上使用任何其他 HTTPRouteMatch 类型将导致实施将 Route 的 Accepted Condition 设置为 status: False

请求路径 | 前缀匹配 | 替换前缀 | 修改路径

type

string

type 定义路径修饰符的类型。以后的 API 发行版本中可能会添加额外的类型。

请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。

此处的未知值必须实现将 Route 的 Accepted Condition 设置为 status: False,Reason 为 UnsupportedValue

17.1.48. .spec.rules[].matches

描述

matches 定义用于与传入 HTTP 请求匹配的规则的条件。每个匹配项都独立,例如,如果 满足任何 其中一个匹配项,则此规则将匹配。

例如,使用以下内容匹配配置:

matches: - path: value: "/foo" headers: - name: "version" value: "v2" - path: value: "/v2/foo"

要与此规则匹配的请求,请求必须满足两个条件的 EITHER:

  • 带有 /foo AND 前缀的路径包含标头 版本: v2
  • /v2/foo的路径前缀

有关如何指定应同时存在的多个匹配条件的信息,请参阅 HTTPRouteMatch 文档。

如果没有指定匹配项,则默认值是前缀路径与"/"匹配,其效果与每个 HTTP 请求匹配。

根据以下条件,从 HTTPRoutes MUST 生成的代理或 Load Balancer 路由配置会按照以下条件继续匹配。在适用路由中指定的所有规则中,必须为匹配项提供优先级:

  • "exact"路径匹配。
  • "前缀"路径与最大字符数匹配。
  • 方法匹配.
  • 匹配的最大标头数。
  • 匹配的最大查询参数数。

注: RegularExpression 路径匹配的优先级是特定于实现的。

如果绑定仍存在于多个路由中,则按以下条件顺序确定匹配的优先级,继续绑定:

  • 基于创建时间戳的最旧的路由。
  • 路由首先以字母顺序显示,使用 "{namespace}/{name}"。

如果 HTTPRoute 中仍然存在 ties,则匹配的优先级必须授予 FIRST 匹配规则(按列表顺序),符合上述条件。

如果没有与请求成功附加到父请求的规则时,将返回 HTTP 404 状态代码 MUST。

类型
数组

17.1.49. .spec.rules[].matches[]

描述

HTTPRouteMatch 定义用于将请求与给定操作匹配的 predicate。多个匹配类型是 AND,即仅在满足所有条件时,匹配才会评估为 true。

例如,只有在其路径以 /foo AND 开头且包含 version: v1 标头时,以下匹配才会匹配 HTTP 请求:

match:

path:
  value: "/foo"
headers:
- name: "version"
  value "v1"
Copy to Clipboard Toggle word wrap
类型
object
Expand
属性类型描述

标头

数组

标头指定 HTTP 请求标头匹配器。多个匹配值是 ANDed,这意味着请求必须与所有指定的标头匹配才能选择路由。

headers[]

object

HTTPHeaderMatch 描述了如何通过匹配 HTTP 请求标头来选择 HTTP 路由。

方法

string

method 指定 HTTP 方法匹配器。指定后,只有在请求具有指定方法时,此路由才会匹配。

支持:扩展

path

object

path 指定 HTTP 请求路径匹配器。如果没有指定此字段,则会提供与 "/" 路径上的默认前缀匹配。

queryParams

数组

queryParams 指定 HTTP 查询参数 matchers。多个匹配值是 ANDed,这意味着请求必须与所有指定的查询参数匹配,才能选择路由。

支持:扩展

queryParams[]

object

HTTPQueryParamMatch 描述了如何通过匹配 HTTP 查询参数来选择 HTTP 路由。

17.1.50. .spec.rules[].matches[].headers

描述
标头指定 HTTP 请求标头匹配器。多个匹配值是 ANDed,这意味着请求必须与所有指定的标头匹配才能选择路由。
类型
数组

17.1.51. .spec.rules[].matches[].headers[]

描述
HTTPHeaderMatch 描述了如何通过匹配 HTTP 请求标头来选择 HTTP 路由。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。

如果多个条目指定了等同的标头名称,则只有具有等同名称的第一个条目才被认为是匹配的。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。

当在 HTTP 请求中重复标头时,它是特定于实现的行为,就像表示它的方式一样。通常,代理应遵循 RFC: https://www.rfc-editor.org/rfc/rfc7230.html#section-3.2.2 的有关处理重复标头的指导,带有 "Set-Cookie" 的特殊处理。

type

string

type 指定如何与标头值匹配。

支持:Core (Exact)

支持:特定于实施(RegularExpression)

由于 RegularExpression HeaderMatchType 有特定于实现的一致性,实现可以支持 POSIX、PCRE 或正则表达式的任何其他密码。请阅读实施的文档,以确定支持的问题。

value

string

value 是要匹配的 HTTP 标头的值。

17.1.52. .spec.rules[].matches[].path

描述
path 指定 HTTP 请求路径匹配器。如果没有指定此字段,则会提供与 "/" 路径上的默认前缀匹配。
类型
object
Expand
属性类型描述

type

string

type 指定如何与路径值匹配。

支持:Core (Exact、PathPrefix)

支持:特定于实施(RegularExpression)

value

string

要匹配的 HTTP 路径的值。

17.1.53. .spec.rules[].matches[].queryParams

描述

queryParams 指定 HTTP 查询参数 matchers。多个匹配值是 ANDed,这意味着请求必须与所有指定的查询参数匹配,才能选择路由。

支持:扩展

类型
数组

17.1.54. .spec.rules[].matches[].queryParams[]

描述
HTTPQueryParamMatch 描述了如何通过匹配 HTTP 查询参数来选择 HTTP 路由。
类型
object
必填
  • name
  • value
Expand
属性类型描述

name

string

name 是要匹配的 HTTP 查询参数的名称。这必须是完全匹配。(请参阅 https://tools.ietf.org/html/rfc7230#section-2.7.3)。

如果多个条目指定了等同的查询参数名称,则只有具有等同名称的第一个条目才被认为匹配。带有等效查询参数名称的后续条目必须忽略。

如果在 HTTP 请求中重复查询参数,则行为会以未定义状态,因为不同的数据平面具有不同的功能。但是,如果数据平面支持,建议 实现与参数的第一个值匹配,因为此行为在网关 API 外的其他负载均衡上下文中预期。

用户 SHOULD 不会基于重复查询参数路由流量,以保护自身免受实施中潜在的差异。

type

string

type 指定如何与查询参数值匹配。

支持:扩展(Exact)

支持:特定于实施(RegularExpression)

由于 RegularExpression QueryParamMatchType 有特定于实现的一致性,实现可以支持 POSIX、PCRE 或正则表达式的任何其他密码。请阅读实施的文档,以确定支持的问题。

value

string

value 是要匹配的 HTTP 查询参数的值。

17.1.55. .spec.rules[].timeouts

描述

超时定义可以为 HTTP 请求配置的超时。

支持:扩展

类型
object
Expand
属性类型描述

backendRequest

string

BackendRequest 为从网关到后端的独立请求指定一个超时。这涵盖了请求从后端收到完整响应时从网关开始发送到的时间。

将超时设置为零持续时间(例如"0s")SHOULD 完全禁用超时。无法完全禁用超时的实现,而是将零持续时间解析为可以设置超时的最长时间可能的值。

一个整个客户端 HTTP 事务,其网关由 Request 超时涵盖,可能会导致从网关到目标后端的调用数,例如如果支持自动重试。

BackendRequest 的值必须是 Gateway API Duration 字符串,由 GEP-2257 定义。当未指定此字段时,其行为是特定于实现的;在指定时,BackendRequest 的值不得超过 Request 超时的值(因为 Request 超时包含 BackendRequest 超时)。

支持:扩展

Request (请求)

string

request 指定网关响应 HTTP 请求的最长持续时间。如果网关无法在达到此截止时间前响应,网关必须返回超时错误。

例如,如果客户端请求的时间超过 10 秒,则将 rules.timeouts.request 字段设置为 HTTPRoute 中的值将会导致超时。

将超时设置为零持续时间(例如"0s")SHOULD 完全禁用超时。无法完全禁用超时的实现,而是将零持续时间解析为可以设置超时的最长时间可能的值。

此超时旨在尽可能接近整个请求响应事务,尽管实施 MAY 选择在收到整个请求流后启动超时,而不是在客户端启动事务后立即执行。

Request 的值是一个网关 API Duration 字符串,由 GEP-2257 定义。如果未指定此字段,则请求超时行为是特定于实现的。

支持:扩展

17.1.56. .status

描述
Status 定义 HTTPRoute 的当前状态。
类型
object
必填
  • parents
Expand
属性类型描述

parents

数组

parents 是与路由关联的父资源(通常是网关)的列表,以及每个父对象的路由的状态。当此路由附加到父路由时,管理父路由的控制器必须在控制器第一次看到路由时向这个列表添加一个条目,并在修改路由或网关时更新条目。

请注意,无法通过此 API 实现解析的父引用不会添加到此列表中。此 API 的实现只能为它们负责的网关/父资源填充 Route 状态。

此列表中最多表示 32 个网关。空列表表示路由尚未附加到任何网关。

parents[]

object

RouteParentStatus 描述了与相关 Parent 相关的路由的状态。

17.1.57. .status.parents

描述

parents 是与路由关联的父资源(通常是网关)的列表,以及每个父对象的路由的状态。当此路由附加到父路由时,管理父路由的控制器必须在控制器第一次看到路由时向这个列表添加一个条目,并在修改路由或网关时更新条目。

请注意,无法通过此 API 实现解析的父引用不会添加到此列表中。此 API 的实现只能为它们负责的网关/父资源填充 Route 状态。

此列表中最多表示 32 个网关。空列表表示路由尚未附加到任何网关。

类型
数组

17.1.58. .status.parents[]

描述
RouteParentStatus 描述了与相关 Parent 相关的路由的状态。
类型
object
必填
  • controllerName
  • parentRef
Expand
属性类型描述

conditions

数组

conditions 描述了与网关相关的路由状态。请注意,路由的可用性也取决于网关自己的状态条件和侦听器状态。

如果 Route 的 ParentRef 指定支持路由路由的现有网关,且网关的控制器有足够的访问权限,那么该网关的控制器必须在 Route 上设置 "Accepted" 条件,以指示网关接受或拒绝该路由,以及原因。

如果网关实施至少一个 Route 规则,则路由必须被视为"接受"。

有些情况下,因为缺少控制器可见性,可能无法设置 "Accepted" 条件,其中包括:

* Route 指的是不存在的父对象。* Route 是控制器不支持的类型。* Route 位于控制器无法访问的命名空间中。

conditions[]

object

condition 包含此 API 资源当前状态的一个方面的详细信息。

controllerName

string

ControllerName 是一个 domain/path 字符串,表示写入此状态的控制器的名称。这与 GatewayClass 上的 controllerName 字段对应。

示例:"example.net/gateway-controller"。

此字段的格式是 DOMAIN "/" PATH,其中 DOMAIN 和 PATH 是有效的 Kubernetes 名称(https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names)。

在编写状态时,控制器需要填充此字段。当不再需要时,控制器应确保清理填充其 ControllerName 状态的条目。

parentRef

object

ParentRef 与 spec 中的 ParentRef 对应,这个 RouteParentStatus struct 描述其状态。

17.1.59. .status.parents[].conditions

描述

conditions 描述了与网关相关的路由状态。请注意,路由的可用性也取决于网关自己的状态条件和侦听器状态。

如果 Route 的 ParentRef 指定支持路由路由的现有网关,且网关的控制器有足够的访问权限,那么该网关的控制器必须在 Route 上设置 "Accepted" 条件,以指示网关接受或拒绝该路由,以及原因。

如果网关实施至少一个 Route 规则,则路由必须被视为"接受"。

有些情况下,因为缺少控制器可见性,可能无法设置 "Accepted" 条件,其中包括:

  • Route 指的是不存在的父项。
  • Route 是控制器不支持的类型。
  • Route 位于控制器无法访问的命名空间中。
类型
数组

17.1.60. .status.parents[].conditions[]

描述
condition 包含此 API 资源当前状态的一个方面的详细信息。
类型
object
必填
  • lastTransitionTime
  • message
  • reason
  • status
  • type
Expand
属性类型描述

lastTransitionTime

字符串

lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。

message

字符串

Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。

observedGeneration

整数

observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。

reason

字符串

reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。

status

字符串

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

type

字符串

CamelCase 或 foo.example.com/CamelCase 中的条件类型。

17.1.61. .status.parents[].parentRef

描述
ParentRef 与 spec 中的 ParentRef 对应,这个 RouteParentStatus struct 描述其状态。
类型
object
必填
  • name
Expand
属性类型描述

group

string

组是引用的组。如果未指定,"gateway.networking.k8s.io" 将推断出来。要设置核心 API 组(如 "Service" kind referent),Group 必须明确设置为 "" (空字符串)。

支持:Core

kind

string

kind 是引用的类型。

支持"Core"支持的父资源有两种:

* gateway (Gateway conformance profile)* Service (Mesh conformance profile, only ClusterIP Services)

对其他资源的支持是特定于实施的。

name

string

name 是引用的名称。

支持:Core

namespace

string

namespace 是引用的命名空间。如果未指定,这指的是 Route 的本地命名空间。

请注意,对于跨命名空间边界的 ParentRefs 有特定的规则。只有跨命名空间引用被引用的命名空间中明确允许时才有效。例如: Gateway 具有 AllowedRoutes 字段,ReferenceGrant 提供了一种通用方法来启用其他类型的跨命名空间引用。

支持:Core

port

整数

port 是此 Route 目标的网络端口。它可以根据父资源的类型进行解释。

当父资源是网关时,此目标是在支持此类 Route (并选择此路由)的指定端口上侦听所有的监听程序。不建议设置 Port,除非 Route 中指定的网络行为必须应用到特定端口,而不是可以更改其端口的监听程序。当同时指定了 Port 和 sectionName 时,所选监听器的名称和端口必须与两个指定的值匹配。

实施 MAY 选择支持其他父资源。支持其他类型的父资源的实施必须清楚地记录/如果端口的解释方式。

对于状态,只要父资源接受部分,则附加被视为成功。例如,网关监听程序可以通过 Route kind、namespace 或 hostname 来限制哪些 Routes 可以附加到它们。如果 2 网关监听程序的 1 个接受来自引用路由的附件,则路由必须被视为成功附加。如果没有网关监听程序接受来自此 Route 的附件,则路由必须被视为与网关分离。

支持:扩展

sectionName

string

SectionName 是目标资源中的一个部分的名称。在以下资源中,sectionName 被解释为:

* gateway: Listener 名称。当同时指定了 Port (experimental)和 SectionName 时,所选监听器的名称和端口必须与两个指定的值匹配。* service: 端口名称。当同时指定了 Port (experimental)和 SectionName 时,所选监听器的名称和端口必须与两个指定的值匹配。

实施 MAY 选择支持将路由附加到其他资源。如果是这种情况,它们必须清楚地记录 SectionName 的解释方式。

如果未指定(空字符串),这将引用整个资源。对于状态,如果父资源中的至少一个部分接受它,则附加被视为成功。例如,网关监听程序可以通过 Route kind、namespace 或 hostname 来限制哪些 Routes 可以附加到它们。如果 2 网关监听程序的 1 个接受来自引用路由的附件,则路由必须被视为成功附加。如果没有网关监听程序接受来自此 Route 的附件,则路由必须被视为与网关分离。

支持:Core

17.2. API 端点

可用的 API 端点如下:

  • /apis/gateway.networking.k8s.io/v1/httproutes

    • GET: 列出类型为 HTTPRoute 的对象
  • /apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/httproutes

    • DELETE: 删除 HTTPRoute 集合
    • GET: 列出类型为 HTTPRoute 的对象
    • POST :创建 HTTPRoute
  • /apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/httproutes/{name}

    • DELETE :删除 HTTPRoute
    • GET :读取指定的 HTTPRoute
    • PATCH: 部分更新指定的 HTTPRoute
    • PUT :替换指定的 HTTPRoute
  • /apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/httproutes/{name}/status

    • GET :指定 HTTPRoute 的读取状态
    • PATCH: 部分更新指定 HTTPRoute 的状态
    • PUT :替换指定 HTTPRoute 的状态

17.2.1. /apis/gateway.networking.k8s.io/v1/httproutes

HTTP 方法
GET
描述
列出类型为 HTTPRoute 的对象
Expand
表 17.1. HTTP 响应
HTTP 代码响应正文

200 - OK

HTTPRouteList 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 HTTPRoute 集合
Expand
表 17.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出类型为 HTTPRoute 的对象
Expand
表 17.3. HTTP 响应
HTTP 代码响应正文

200 - OK

HTTPRouteList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 HTTPRoute
Expand
表 17.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 17.5. 主体参数
参数类型描述

正文(body)

HTTPRoute 模式

 
Expand
表 17.6. HTTP 响应
HTTP 代码响应正文

200 - OK

HTTPRoute 模式

201 - Created

HTTPRoute 模式

202 - Accepted

HTTPRoute 模式

401 - Unauthorized

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

name

string

HTTPRoute 的名称

HTTP 方法
DELETE
描述
删除 HTTPRoute
Expand
表 17.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 17.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
读取指定的 HTTPRoute
Expand
表 17.10. HTTP 响应
HTTP 代码响应正文

200 - OK

HTTPRoute 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 HTTPRoute
Expand
表 17.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 17.12. HTTP 响应
HTTP 代码响应正文

200 - OK

HTTPRoute 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 HTTPRoute
Expand
表 17.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 17.14. 主体参数
参数类型描述

正文(body)

HTTPRoute 模式

 
Expand
表 17.15. HTTP 响应
HTTP 代码响应正文

200 - OK

HTTPRoute 模式

201 - Created

HTTPRoute 模式

401 - Unauthorized

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

name

string

HTTPRoute 的名称

HTTP 方法
GET
描述
指定 HTTPRoute 的读取状态
Expand
表 17.17. HTTP 响应
HTTP 代码响应正文

200 - OK

HTTPRoute 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 HTTPRoute 的状态
Expand
表 17.18. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 17.19. HTTP 响应
HTTP 代码响应正文

200 - OK

HTTPRoute 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 HTTPRoute 的状态
Expand
表 17.20. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 17.21. 主体参数
参数类型描述

正文(body)

HTTPRoute 模式

 
Expand
表 17.22. HTTP 响应
HTTP 代码响应正文

200 - OK

HTTPRoute 模式

201 - Created

HTTPRoute 模式

401 - Unauthorized

第 18 章 Ingress [networking.k8s.io/v1]

描述
Ingress 是允许入站连接访问后端定义的端点的规则集合。可将 Ingress 配置为向外部可访问的 URL 提供服务、负载均衡流量、终止 SSL、提供基于名称的虚拟主机等。
类型
object

18.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

对象

IngressSpec 描述了您希望存在的 Ingress 用户。

status

对象

IngressStatus 描述 Ingress 的当前状态。

18.1.1. .spec

描述
IngressSpec 描述了您希望存在的 Ingress 用户。
类型
object
Expand
属性类型描述

defaultBackend

对象

IngressBackend 描述给定服务和端口的所有端点。

ingressClassName

string

ingressClassName 是 IngressClass 集群资源的名称。Ingress 控制器实现使用此字段通过传输连接(controller → IngressClass → Ingress 资源)知道它们是否应提供此 Ingress 资源。虽然 kubernetes.io/ingress.class 注解(simple constant name)永远不会被正式定义,但 Ingress 控制器广泛支持 Ingress 控制器和 Ingress 资源之间的直接绑定。新创建的 Ingress 资源应该首选使用字段。但是,即使注解被正式弃用,但出于向后兼容的原因,入口控制器仍应遵循该注解(如果存在)。

rules

数组

rules 是用于配置 Ingress 的主机规则列表。如果未指定,或者没有规则匹配,则所有流量都会发送到默认后端。

rules[]

对象

IngressRule 代表将指定主机下的路径映射到相关后端服务的规则。首先为主机匹配评估传入的请求,然后路由到与匹配的 IngressRuleValue 关联的后端。

tls

数组

TLS 代表 TLS 配置。目前,Ingress 只支持单个 TLS 端口 443。如果此列表的多个成员指定了不同的主机,则它们将根据通过 SNI TLS 扩展指定的主机名在同一端口上进行多路,如果入口控制器满足 ingress 支持 SNI。

tls[]

object

IngressTLS 描述了与入口关联的传输层安全性。

18.1.2. .spec.defaultBackend

描述
IngressBackend 描述给定服务和端口的所有端点。
类型
object
Expand
属性类型描述

resource

TypedLocalObjectReference

resource 是 Ingress 对象命名空间中的另一个 Kubernetes 资源的 ObjectRef。如果指定了 resource,则无法指定 service.Name 和 service.Port。这是使用 "Service" 相互排斥的设置。

service

对象

IngressServiceBackend 引用 Kubernetes Service 作为后端。

18.1.3. .spec.defaultBackend.service

描述
IngressServiceBackend 引用 Kubernetes Service 作为后端。
类型
object
必填
  • name
Expand
属性类型描述

name

string

name 是引用的服务。服务必须与 Ingress 对象位于同一个命名空间中。

port

对象

ServiceBackendPort 是被引用的服务端口。

18.1.4. .spec.defaultBackend.service.port

描述
ServiceBackendPort 是被引用的服务端口。
类型
object
Expand
属性类型描述

name

string

name 是服务上的端口的名称。这是一个带有 "Number" 的相互排斥的设置。

number

整数

number 是服务上的数字端口号(如 80)。这是使用 "Name" 相互排斥的设置。

18.1.5. .spec.rules

描述
rules 是用于配置 Ingress 的主机规则列表。如果未指定,或者没有规则匹配,则所有流量都会发送到默认后端。
类型
array

18.1.6. .spec.rules[]

描述
IngressRule 代表将指定主机下的路径映射到相关后端服务的规则。首先为主机匹配评估传入的请求,然后路由到与匹配的 IngressRuleValue 关联的后端。
类型
object
Expand
属性类型描述

主机

string

host 是网络主机的完全限定域名,如 RFC 3986 定义。请注意 RFC 3986: 1 中定义的 URI 的"主机"部分的以下偏差:不允许使用 IP。目前,IngressRuleValue 仅适用于父 Ingress Spec 中的 IP。2.: 分隔符不会被遵守,因为不允许使用端口。目前,Ingress 的端口被隐式为 http:80,https 为 :443。这两个选项可能会在以后有所变化。传入请求在 IngressRuleValue 之前与主机匹配。如果未指定主机,Ingress 会根据指定的 IngressRuleValue 路由所有流量。

主机可以是"precise",它是一个没有终止网络主机的域名(如 "foo.bar.com")或"wildcard",它是一个前缀为单个通配符标签的域名(如 ".foo.com")。通配符字符 '' 必须作为第一个 DNS 标签显示,且只匹配单个标签。您不能自行有一个通配符标签(如 Host == "*")。请求将按照以下方式与 Host 字段匹配:1。如果 host 是精确的,如果 http 主机标头等于 Host,则请求与此规则匹配。2.如果 host 是通配符,则请求将与此规则匹配,如果 http 主机标头等于通配符规则的后缀(删除第一个标签)。

http

对象

HTTPIngressRuleValue 是指向后端的 http 选择器列表。在示例中: http://<host>/<path>?<searchpart > → backend where of the url of the RFC 3986,此资源将用于匹配最后 '/' 以及第一个 '?' 或 '这个问题' 后的所有内容。

18.1.7. .spec.rules[].http

描述
HTTPIngressRuleValue 是指向后端的 http 选择器列表。在示例中: http://<host>/<path>?<searchpart > → backend where of the url of the RFC 3986,此资源将用于匹配最后 '/' 以及第一个 '?' 或 '这个问题' 后的所有内容。
类型
object
必填
  • 路径
Expand
属性类型描述

路径

数组

paths 是将请求映射到后端的路径集合。

paths[]

对象

HTTPIngressPath 将路径与后端相关联。与路径匹配的传入 URL 转发到后端。

18.1.8. .spec.rules[].http.paths

描述
paths 是将请求映射到后端的路径集合。
类型
array

18.1.9. .spec.rules[].http.paths[]

描述
HTTPIngressPath 将路径与后端相关联。与路径匹配的传入 URL 转发到后端。
类型
object
必填
  • pathType
  • 后端
Expand
属性类型描述

后端

对象

IngressBackend 描述给定服务和端口的所有端点。

path

string

path 与传入请求的路径匹配。目前,它可以包含不允许来自 RFC 3986 定义的 URL 的传统"path"部分。路径必须以 '/' 开头,在使用值为 "Exact" 或 "Prefix" 的 PathType 时必须存在。

pathType

string

pathType 决定路径匹配的解释。pathType 可以是以下值之一:* Exact: 完全匹配 URL 路径。* prefix: 根据 URL 路径前缀匹配,由 '/' 分割。匹配按元素基于路径元素进行。path 元素引用是路径中的标签列表,由 '/' 分隔符分割。如果每个 p 是请求路径的 p 的元素前缀,则请求是 path p 的匹配项。请注意,如果路径的最后一个元素是请求路径中最后一个元素的子字符串,则不是匹配项(例如 /foo/bar/baz 匹配 /foo/bar/baz),但不匹配 /foo/barbaz。* ImplementationSpecific:检查路径匹配最多为 IngressClass。实现可以将其视为单独的 PathType,或者将其与 Prefix 或 Exact 路径类型相同。需要实施才能支持所有路径类型。

可能枚举值:- "Exact" 完全匹配 URL 路径,且带有 case sensitivity。- "ImplementationSpecific" 匹配最多为 IngressClass。实现可以把它视为单独的 PathType,或者将其与 Prefix 或 Exact 路径类型相同。- "Prefix" 根据 '/' 分割的 URL 路径前缀匹配。匹配区分大小写,并按元素在 path 元素上完成。path 元素引用由 '/' 分隔符分割路径中的标签列表。如果每个 p 是请求路径的 p 的元素前缀,则请求是 path p 的匹配项。请注意,如果路径的最后一个元素是请求路径中最后一个元素的子字符串,则不是匹配项(例如 /foo/bar/baz 匹配 /foo/bar/baz),但不匹配 /foo/barbaz。如果 Ingress spec 中存在多个匹配路径,则优先匹配路径最长。示例: - /foo/bar不匹配对 /foo/barbaz - /foo/bar 匹配请求到 /foo/bar 和 /foo/bar/baz - /foo 和 /foo/ 的请求与 /foo 和 /foo/ 的匹配请求。如果 Ingress spec 中有两个路径,则优先级最长匹配的路径(/foo/)。

18.1.10. .spec.rules[].http.paths[].backend

描述
IngressBackend 描述给定服务和端口的所有端点。
类型
object
Expand
属性类型描述

resource

TypedLocalObjectReference

resource 是 Ingress 对象命名空间中的另一个 Kubernetes 资源的 ObjectRef。如果指定了 resource,则无法指定 service.Name 和 service.Port。这是使用 "Service" 相互排斥的设置。

service

对象

IngressServiceBackend 引用 Kubernetes Service 作为后端。

18.1.11. .spec.rules[].http.paths[].backend.service

描述
IngressServiceBackend 引用 Kubernetes Service 作为后端。
类型
object
必填
  • name
Expand
属性类型描述

name

string

name 是引用的服务。服务必须与 Ingress 对象位于同一个命名空间中。

port

对象

ServiceBackendPort 是被引用的服务端口。

18.1.12. .spec.rules[].http.paths[].backend.service.port

描述
ServiceBackendPort 是被引用的服务端口。
类型
object
Expand
属性类型描述

name

string

name 是服务上的端口的名称。这是一个带有 "Number" 的相互排斥的设置。

number

整数

number 是服务上的数字端口号(如 80)。这是使用 "Name" 相互排斥的设置。

18.1.13. .spec.tls

描述
TLS 代表 TLS 配置。目前,Ingress 只支持单个 TLS 端口 443。如果此列表的多个成员指定了不同的主机,则它们将根据通过 SNI TLS 扩展指定的主机名在同一端口上进行多路,如果入口控制器满足 ingress 支持 SNI。
类型
array

18.1.14. .spec.tls[]

描述
IngressTLS 描述了与入口关联的传输层安全性。
类型
object
Expand
属性类型描述

主机

数组(字符串)

主机是 TLS 证书中包含的主机列表。此列表中的值必须与 tlsSecret 中使用的名称匹配。如果未指定,默认为 loadbalancer 控制器满足此 Ingress 的通配符主机设置。

secretName

string

secretName 是用于在端口 443 上终止 TLS 流量的 secret 名称。字段保留可选,以只允许仅基于 SNI 主机名的 TLS 路由。如果监听器中的 SNI 主机与 IngressRule 使用的 "Host" 标头字段冲突,则 SNI 主机用于终止,并将 "Host" 标头的值用于路由。

18.1.15. .status

描述
IngressStatus 描述 Ingress 的当前状态。
类型
object
Expand
属性类型描述

loadBalancer

object

IngressLoadBalancerStatus 代表负载均衡器的状态。

18.1.16. .status.loadBalancer

描述
IngressLoadBalancerStatus 代表负载均衡器的状态。
类型
object
Expand
属性类型描述

ingress

数组

Ingress 是一个包含负载均衡器的入口点的列表。

ingress[]

object

IngressLoadBalancerIngress 代表负载均衡器入口点的状态。

18.1.17. .status.loadBalancer.ingress

描述
Ingress 是一个包含负载均衡器的入口点的列表。
类型
array

18.1.18. .status.loadBalancer.ingress[]

描述
IngressLoadBalancerIngress 代表负载均衡器入口点的状态。
类型
object
Expand
属性类型描述

hostname

string

为基于 DNS 的负载均衡器入口点设置 hostname。

ip

string

为基于 IP 的负载均衡器入口点设置了 IP。

ports

数组

端口提供有关此 LoadBalancer 公开的端口的信息。

ports[]

object

IngressPortStatus 代表服务端口的错误条件

18.1.19. .status.loadBalancer.ingress[].ports

描述
端口提供有关此 LoadBalancer 公开的端口的信息。
类型
array

18.1.20. .status.loadBalancer.ingress[].ports[]

描述
IngressPortStatus 代表服务端口的错误条件
类型
object
必填
  • port
  • protocol
Expand
属性类型描述

错误

string

错误是记录服务端口的问题。错误的格式应遵循以下规则: - 内置错误值应该在此文件中指定,而那些应该使用 CamelCase 名称 - 云供应商特定错误值必须具有符合 foo.example.com/CamelCase 格式的名称。

port

整数

port 是入口端口的端口号。

protocol

string

protocol 是入口端口的协议。支持的值有:"TCP", "UDP", "SCTP"

可能枚举值: - "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

18.2. API 端点

可用的 API 端点如下:

  • /apis/networking.k8s.io/v1/ingresses

    • GET :列出或监视类型为 Ingress 的对象
  • /apis/networking.k8s.io/v1/watch/ingresses

    • GET: 观察单个对 Ingress 列表的更改。已弃用:使用带有 list 操作的 'watch' 参数。
  • /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses

    • DELETE :删除 Ingress 集合
    • GET :列出或监视类型为 Ingress 的对象
    • POST :创建 Ingress
  • /apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses

    • GET: 观察单个对 Ingress 列表的更改。已弃用:使用带有 list 操作的 'watch' 参数。
  • /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}

    • DELETE :删除 Ingress
    • GET :读取指定的 Ingress
    • PATCH: 部分更新指定的 Ingress
    • PUT :替换指定的 Ingress
  • /apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses/{name}

    • GET: 观察对类型为 Ingress 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤到带有 'fieldSelector' 参数的单个项目。
  • /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status

    • GET :指定 Ingress 的读取状态
    • PATCH: 部分更新指定 Ingress 的状态
    • PUT :替换指定 Ingress 的状态

18.2.1. /apis/networking.k8s.io/v1/ingresses

HTTP 方法
GET
描述
列出或监视类型为 Ingress 的对象
Expand
表 18.1. HTTP 响应
HTTP 代码响应正文

200 - OK

IngressList 模式

401 - Unauthorized

18.2.2. /apis/networking.k8s.io/v1/watch/ingresses

HTTP 方法
GET
描述
观察单个对 Ingress 列表的更改。已弃用:改为使用 'watch' 参数和列表操作。
Expand
表 18.2. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 Ingress 集合
Expand
表 18.3. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 18.4. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出或监视类型为 Ingress 的对象
Expand
表 18.5. HTTP 响应
HTTP 代码响应正文

200 - OK

IngressList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 Ingress
Expand
表 18.6. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 18.7. 主体参数
参数类型描述

正文(body)

Ingress 模式

 
Expand
表 18.8. HTTP 响应
HTTP 代码响应正文

200 - OK

Ingress 模式

201 - Created

Ingress 模式

202 - Accepted

Ingress 模式

401 - Unauthorized

HTTP 方法
GET
描述
观察单个对 Ingress 列表的更改。已弃用:改为使用 'watch' 参数和列表操作。
Expand
表 18.9. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

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

name

字符串

Ingress 的名称

HTTP 方法
DELETE
描述
删除 Ingress
Expand
表 18.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 18.12. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
读取指定的 Ingress
Expand
表 18.13. HTTP 响应
HTTP 代码响应正文

200 - OK

Ingress 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 Ingress
Expand
表 18.14. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 18.15. HTTP 响应
HTTP 代码响应正文

200 - OK

Ingress 模式

201 - Created

Ingress 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 Ingress
Expand
表 18.16. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 18.17. 主体参数
参数类型描述

正文(body)

Ingress 模式

 
Expand
表 18.18. HTTP 响应
HTTP 代码响应正文

200 - OK

Ingress 模式

201 - Created

Ingress 模式

401 - Unauthorized

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

name

字符串

Ingress 的名称

HTTP 方法
GET
描述
观察对类型为 Ingress 的对象的更改。已弃用:使用带有列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
Expand
表 18.20. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

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

name

字符串

Ingress 的名称

HTTP 方法
GET
描述
指定 Ingress 的读取状态
Expand
表 18.22. HTTP 响应
HTTP 代码响应正文

200 - OK

Ingress 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 Ingress 的状态
Expand
表 18.23. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 18.24. HTTP 响应
HTTP 代码响应正文

200 - OK

Ingress 模式

201 - Created

Ingress 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 Ingress 的状态
Expand
表 18.25. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 18.26. 主体参数
参数类型描述

正文(body)

Ingress 模式

 
Expand
表 18.27. HTTP 响应
HTTP 代码响应正文

200 - OK

Ingress 模式

201 - Created

Ingress 模式

401 - Unauthorized

第 19 章 IngressClass [networking.k8s.io/v1]

描述
IngressClass 代表 Ingress 的类,由 Ingress Spec 引用。ingressclass.kubernetes.io/is-default-class 注解可以用来表示 IngressClass 应该被视为 default。当单个 IngressClass 资源将此注解设置为 true 时,没有指定类的新 Ingress 资源将分配此默认存储类。
类型
object

19.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

对象

IngressClassSpec 提供有关 Ingress 类的信息。

19.1.1. .spec

描述
IngressClassSpec 提供有关 Ingress 类的信息。
类型
object
Expand
属性类型描述

controller

string

Controller 指的是应处理此类的控制器的名称。这允许由同一控制器控制的不同"类别"。例如,对于相同的实现控制器,您可能具有不同的参数。这应该被指定为域前缀路径长度不超过 250 个字符,如 "acme.io/ingress-controller"。此字段不可变。

parameters

对象

IngressClassParametersReference 标识 API 对象。这可用于指定集群或命名空间范围的资源。

19.1.2. .spec.parameters

描述
IngressClassParametersReference 标识 API 对象。这可用于指定集群或命名空间范围的资源。
类型
object
必填
  • kind
  • name
Expand
属性类型描述

apiGroup

string

APIGroup 是所引用资源的组。如果没有指定 APIGroup,则指定的 Kind 必须位于 core API 组中。对于任何其他第三方类型,需要 APIGroup。

kind

string

kind 是被引用的资源类型。

name

string

name 是被引用的资源的名称。

namespace

string

namespace 是被引用的资源的命名空间。当 scope 设为 "Namespace" 时,需要此字段,且范围设置为 "Cluster" 时必须取消设置。

scope

string

Scope 代表这个引用集群或命名空间范围的资源。这可以设置为 "Cluster" (默认)或 "Namespace"。

19.2. API 端点

可用的 API 端点如下:

  • /apis/networking.k8s.io/v1/ingressclasses

    • DELETE: 删除 IngressClass 集合
    • GET: 列出或监视类型为 IngressClass 的对象
    • POST :创建 IngressClass
  • /apis/networking.k8s.io/v1/watch/ingressclasses

    • GET: 观察单个对 IngressClass 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
  • /apis/networking.k8s.io/v1/ingressclasses/{name}

    • DELETE :删除 IngressClass
    • GET :读取指定的 IngressClass
    • PATCH: 部分更新指定的 IngressClass
    • PUT :替换指定的 IngressClass
  • /apis/networking.k8s.io/v1/watch/ingressclasses/{name}

    • GET: 观察对类型为 IngressClass 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤为带有 'fieldSelector' 参数的单个项目。

19.2.1. /apis/networking.k8s.io/v1/ingressclasses

HTTP 方法
DELETE
描述
删除 IngressClass 集合
Expand
表 19.1. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 19.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出或监视类型为 IngressClass 的对象
Expand
表 19.3. HTTP 响应
HTTP 代码响应正文

200 - OK

IngressClassList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 IngressClass
Expand
表 19.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 19.5. 主体参数
参数类型描述

正文(body)

IngressClass 模式

 
Expand
表 19.6. HTTP 响应
HTTP 代码响应正文

200 - OK

IngressClass 模式

201 - Created

IngressClass 模式

202 - Accepted

IngressClass 模式

401 - Unauthorized

19.2.2. /apis/networking.k8s.io/v1/watch/ingressclasses

HTTP 方法
GET
描述
观察单个对 IngressClass 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
Expand
表 19.7. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

19.2.3. /apis/networking.k8s.io/v1/ingressclasses/{name}

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

name

字符串

IngressClass 的名称

HTTP 方法
DELETE
描述
删除 IngressClass
Expand
表 19.9. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 19.10. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
读取指定的 IngressClass
Expand
表 19.11. HTTP 响应
HTTP 代码响应正文

200 - OK

IngressClass 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 IngressClass
Expand
表 19.12. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 19.13. HTTP 响应
HTTP 代码响应正文

200 - OK

IngressClass 模式

201 - Created

IngressClass 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 IngressClass
Expand
表 19.14. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 19.15. 主体参数
参数类型描述

正文(body)

IngressClass 模式

 
Expand
表 19.16. HTTP 响应
HTTP 代码响应正文

200 - OK

IngressClass 模式

201 - Created

IngressClass 模式

401 - Unauthorized

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

name

字符串

IngressClass 的名称

HTTP 方法
GET
描述
观察对类型为 IngressClass 的对象的更改。已弃用:使用带列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
Expand
表 19.18. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

第 20 章 IPAMClaim [k8s.cni.cncf.io/v1alpha1]

描述
IPAMClaim 是 IPAMClaim API 的 Schema
类型
object

20.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

对象

 

status

对象

 

20.1.1. .spec

描述
类型
object
必填
  • interface
  • network
Expand
属性类型描述

interface

string

创建此分配的 pod 接口名称

network

string

创建此永久分配的网络名称

20.1.2. .status

描述
类型
object
必填
  • ips
Expand
属性类型描述

ips

数组(字符串)

为 pod 接口分配的 IP 地址(v4、v6)列表

20.2. API 端点

可用的 API 端点如下:

  • /apis/k8s.cni.cncf.io/v1alpha1/ipamclaims

    • GET: 列出类型为 IPAMClaim 的对象
  • /apis/k8s.cni.cncf.io/v1alpha1/namespaces/{namespace}/ipamclaims

    • DELETE: 删除 IPAMClaim 的集合
    • GET: 列出类型为 IPAMClaim 的对象
    • POST :创建 IPAMClaim
  • /apis/k8s.cni.cncf.io/v1alpha1/namespaces/{namespace}/ipamclaims/{name}

    • DELETE: 删除 IPAMClaim
    • GET :读取指定的 IPAMClaim
    • PATCH: 部分更新指定的 IPAMClaim
    • PUT :替换指定的 IPAMClaim
  • /apis/k8s.cni.cncf.io/v1alpha1/namespaces/{namespace}/ipamclaims/{name}/status

    • GET :指定 IPAMClaim 的读取状态
    • PATCH: 部分更新指定 IPAMClaim 的状态
    • PUT :替换指定 IPAMClaim 的状态

20.2.1. /apis/k8s.cni.cncf.io/v1alpha1/ipamclaims

HTTP 方法
GET
描述
列出类型为 IPAMClaim 的对象
Expand
表 20.1. HTTP 响应
HTTP 代码响应正文

200 - OK

ipamClaimList 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 IPAMClaim 集合
Expand
表 20.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出类型为 IPAMClaim 的对象
Expand
表 20.3. HTTP 响应
HTTP 代码响应正文

200 - OK

ipamClaimList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 IPAMClaim
Expand
表 20.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 20.5. 主体参数
参数类型描述

正文(body)

ipamClaim 模式

 
Expand
表 20.6. HTTP 响应
HTTP 代码响应正文

200 - OK

ipamClaim 模式

201 - Created

ipamClaim 模式

202 - Accepted

ipamClaim 模式

401 - Unauthorized

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

name

string

IPAMClaim 的名称

HTTP 方法
DELETE
描述
删除 IPAMClaim
Expand
表 20.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 20.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的 IPAMClaim
Expand
表 20.10. HTTP 响应
HTTP 代码响应正文

200 - OK

ipamClaim 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 IPAMClaim
Expand
表 20.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 20.12. HTTP 响应
HTTP 代码响应正文

200 - OK

ipamClaim 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 IPAMClaim
Expand
表 20.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 20.14. 主体参数
参数类型描述

正文(body)

ipamClaim 模式

 
Expand
表 20.15. HTTP 响应
HTTP 代码响应正文

200 - OK

ipamClaim 模式

201 - Created

ipamClaim 模式

401 - Unauthorized

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

name

string

IPAMClaim 的名称

HTTP 方法
GET
描述
指定 IPAMClaim 的读取状态
Expand
表 20.17. HTTP 响应
HTTP 代码响应正文

200 - OK

ipamClaim 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 IPAMClaim 的状态
Expand
表 20.18. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 20.19. HTTP 响应
HTTP 代码响应正文

200 - OK

ipamClaim 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 IPAMClaim 的状态
Expand
表 20.20. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 20.21. 主体参数
参数类型描述

正文(body)

ipamClaim 模式

 
Expand
表 20.22. HTTP 响应
HTTP 代码响应正文

200 - OK

ipamClaim 模式

201 - Created

ipamClaim 模式

401 - Unauthorized

第 21 章 IPPool [whereabouts.cni.cncf.io/v1alpha1]

描述
IPPool 是 ippools API 的 Schema
类型
object

21.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

对象

IPPoolSpec 定义 IPPool 的所需状态

21.1.1. .spec

描述
IPPoolSpec 定义 IPPool 的所需状态
类型
object
必填
  • 分配
  • range
Expand
属性类型描述

分配

对象

Allocation 是给定范围的分配的 IP 集合。其索引是到池范围相同的 index/offset 的 IP 的直接映射。

allocations{}

对象

IPAllocation 代表有关特定 IP 的 pod/容器所有者的元数据

range

字符串

range 是一个 RFC 4632/4291-style 字符串,代表 CIDR 标记中的 IP 地址和前缀长度

21.1.2. .spec.allocations

描述
Allocation 是给定范围的分配的 IP 集合。其索引是到池范围相同的 index/offset 的 IP 的直接映射。
类型
对象

21.1.3. .spec.allocations{}

描述
IPAllocation 代表有关特定 IP 的 pod/容器所有者的元数据
类型
object
必填
  • id
  • podref
Expand
属性类型描述

id

string

 

ifname

string

 

podref

string

 

21.2. API 端点

可用的 API 端点如下:

  • /apis/whereabouts.cni.cncf.io/v1alpha1/ippools

    • GET: 列出类型为 IPPool 的对象
  • /apis/whereabouts.cni.cncf.io/v1alpha1/namespaces/{namespace}/ippools

    • DELETE :删除 IPPool 集合
    • GET: 列出类型为 IPPool 的对象
    • POST :创建 IPPool
  • /apis/whereabouts.cni.cncf.io/v1alpha1/namespaces/{namespace}/ippools/{name}

    • DELETE :删除 IPPool
    • GET :读取指定的 IPPool
    • PATCH: 部分更新指定的 IPPool
    • PUT :替换指定的 IPPool

21.2.1. /apis/whereabouts.cni.cncf.io/v1alpha1/ippools

HTTP 方法
GET
描述
列出 IPPool 类型的对象
Expand
表 21.1. HTTP 响应
HTTP 代码响应正文

200 - OK

IPPoolList 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 IPPool 集合
Expand
表 21.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出 IPPool 类型的对象
Expand
表 21.3. HTTP 响应
HTTP 代码响应正文

200 - OK

IPPoolList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 IPPool
Expand
表 21.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 21.5. 主体参数
参数类型描述

正文(body)

IPPool 模式

 
Expand
表 21.6. HTTP 响应
HTTP 代码响应正文

200 - OK

IPPool 模式

201 - Created

IPPool 模式

202 - Accepted

IPPool 模式

401 - Unauthorized

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

name

字符串

IPPool 的名称

HTTP 方法
DELETE
描述
删除 IPPool
Expand
表 21.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 21.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
读取指定的 IPPool
Expand
表 21.10. HTTP 响应
HTTP 代码响应正文

200 - OK

IPPool 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 IPPool
Expand
表 21.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 21.12. HTTP 响应
HTTP 代码响应正文

200 - OK

IPPool 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 IPPool
Expand
表 21.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 21.14. 主体参数
参数类型描述

正文(body)

IPPool 模式

 
Expand
表 21.15. HTTP 响应
HTTP 代码响应正文

200 - OK

IPPool 模式

201 - Created

IPPool 模式

401 - Unauthorized

第 22 章 MultiNetworkPolicy [k8s.cni.cncf.io/v1beta1]

描述
MultiNetworkPolicy 是一个 CRD 模式,为 net-attach-def 提供 NetworkPolicy 机制,该机制由 Network Plumbing Working Group 指定。MultiNetworkPolicy 与 Kubernetes NetworkPolicy 相同,请参阅 :https://kubernetes.io/docs/concepts/services-networking/network-policies/。
类型
object

22.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

指定此 MultiNetworkPolicy 所需的行为。

22.1.1. .spec

描述
指定此 MultiNetworkPolicy 所需的行为。
类型
object
必填
  • podSelector
Expand
属性类型描述

egress

array

要应用到所选 pod 的出口规则列表。如果没有 NetworkPolicies 选择 pod (和集群策略也允许流量),或者流量至少匹配 podSelector 与 pod 匹配的所有 NetworkPolicy 对象,则允许传出流量。如果此字段为空,则此 NetworkPolicy 会限制所有传出流量(且单独用于确保它选择的 pod 默认被隔离)。此字段在 1.8 中是 beta 级别

egress[]

对象

NetworkPolicyEgressRule 描述了允许没有与 NetworkPolicySpec 的 pod 匹配的 pod 集合的流量。流量必须与端口 和 匹配。这个类型是 1.8 中的 beta 级别

ingress

array

要应用到所选 pod 的 ingress 规则列表。如果没有 NetworkPolicies 选择 pod (并且集群策略允许流量),或者流量源是 pod 的本地节点,或者如果流量源是 pod 的本地节点,或者如果流量至少匹配 pod 的所有 NetworkPolicy 对象中的一个入站规则,则允许流量。如果此字段为空,则此 NetworkPolicy 不允许任何流量(只服务来确保它选择的 pod 默认被隔离)

ingress[]

对象

NetworkPolicyIngressRule 描述了允许 pod 集合与 NetworkPolicySpec 的 pod 匹配的特定流量。流量必须与端口 和 from 匹配。

podSelector

object

这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。

policyTypes

数组(字符串)

NetworkPolicy 相关规则类型列表。有效选项为 'Ingress'、'Egress' 或 'Ingress,Egress'。如果没有指定此字段,它将基于 Ingress 或 Egress 规则的存在;包含 Egress 部分的策略被假定为对 Egress 的影响,并且所有策略(无论它们是否包含 Ingress 部分)都会影响 Ingress。如果要编写仅限出口的策略,您必须明确指定 policyTypes [ 'Egress' ]。同样,如果您想要编写指定不允许出口的策略,您必须指定包含 'Egress' 的 policyTypes 值(因为这样的策略不包含 Egress 部分,否则将默认为 [ 'Ingress' ])。此字段在 1.8 中是 beta 级别

22.1.2. .spec.egress

描述
要应用到所选 pod 的出口规则列表。如果没有 NetworkPolicies 选择 pod (和集群策略也允许流量),或者流量至少匹配 podSelector 与 pod 匹配的所有 NetworkPolicy 对象,则允许传出流量。如果此字段为空,则此 NetworkPolicy 会限制所有传出流量(且单独用于确保它选择的 pod 默认被隔离)。此字段在 1.8 中是 beta 级别
类型
array

22.1.3. .spec.egress[]

描述
NetworkPolicyEgressRule 描述了允许没有与 NetworkPolicySpec 的 pod 匹配的 pod 集合的流量。流量必须与端口 和 匹配。这个类型是 1.8 中的 beta 级别
类型
object
Expand
属性类型描述

ports

array

传出流量的目标端口列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。

ports[]

对象

NetworkPolicyPort 描述了允许流量的端口

array

为这个规则选择的 pod 的目的地列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有目的地匹配(不受目的地限制的流量)。如果此字段至少存在并包含一项,则该规则仅在流量至少与 to 列表中某一项匹配时才允许流量。

to[]

object

NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合

22.1.4. .spec.egress[].ports

描述
传出流量的目标端口列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。
类型
array

22.1.5. .spec.egress[].ports[]

描述
NetworkPolicyPort 描述了允许流量的端口
类型
object
Expand
属性类型描述

endPort

整数

如果设置,则表示策略应允许从 port 到 endPort 的端口范围。如果没有定义 port 字段,或者 port 字段定义为命名(字符串)端口,则无法定义此字段。endPort 必须相等或大于 port。

port

integer-or-string

给定协议上的端口。这可以是 pod 上的数字或指定端口。如果没有提供此字段,则匹配所有端口名称和编号。

protocol

字符串

流量必须匹配的协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。

22.1.6. .spec.egress[].to

描述
为这个规则选择的 pod 的目的地列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有目的地匹配(不受目的地限制的流量)。如果此字段至少存在并包含一项,则该规则仅在流量至少与 to 列表中某一项匹配时才允许流量。
类型
array

22.1.7. .spec.egress[].to[]

描述
NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合
类型
object
Expand
属性类型描述

ipBlock

object

IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。

namespaceSelector

object

使用集群范围的标签选择 Namespaces。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。如果也设置了 PodSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在 NamespaceSelector 中选择 Namespaces 中的所有 Pod。

podSelector

object

这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。

22.1.8. .spec.egress[].to[].ipBlock

描述
IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。
类型
object
必填
  • cidr
Expand
属性类型描述

cidr

string

CIDR 是代表 IP 块有效期示例的字符串,是 '192.168.1.1/24'

例外

数组(字符串)

除外,如果值不在 CIDR 范围之外,则不应包含在 IP Block Valid 示例中的 CIDR 片段为 '192.168.1.1/24' Except 值

22.1.9. .spec.egress[].to[].namespaceSelector

描述
使用集群范围的标签选择 Namespaces。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。如果也设置了 PodSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在 NamespaceSelector 中选择 Namespaces 中的所有 Pod。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 'key',运算符是 'In',值数组仅包含 'value'。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

22.1.12. .spec.egress[].to[].podSelector

描述
这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 'key',运算符是 'In',值数组仅包含 'value'。要求的逻辑关系是 AND。

22.1.13. .spec.egress[].to[].podSelector.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组

22.1.14. .spec.egress[].to[].podSelector.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

22.1.15. .spec.ingress

描述
要应用到所选 pod 的 ingress 规则列表。如果没有 NetworkPolicies 选择 pod (并且集群策略允许流量),或者流量源是 pod 的本地节点,或者如果流量源是 pod 的本地节点,或者如果流量至少匹配 pod 的所有 NetworkPolicy 对象中的一个入站规则,则允许流量。如果此字段为空,则此 NetworkPolicy 不允许任何流量(只服务来确保它选择的 pod 默认被隔离)
类型
array

22.1.16. .spec.ingress[]

描述
NetworkPolicyIngressRule 描述了允许 pod 集合与 NetworkPolicySpec 的 pod 匹配的特定流量。流量必须与端口 和 from 匹配。
类型
object
Expand
属性类型描述

from

array

能够访问为这个规则选择的 pod 的源列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有源匹配(不受源限制的流量)。如果此字段至少包含一个项,则该规则仅在流量与 from 列表中至少一个项匹配时才允许流量。

from[]

object

NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合

ports

array

应该可在为此规则选择的 pod 上访问的端口列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。

ports[]

对象

NetworkPolicyPort 描述了允许流量的端口

22.1.17. .spec.ingress[].from

描述
能够访问为这个规则选择的 pod 的源列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有源匹配(不受源限制的流量)。如果此字段至少包含一个项,则该规则仅在流量与 from 列表中至少一个项匹配时才允许流量。
类型
array

22.1.18. .spec.ingress[].from[]

描述
NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合
类型
object
Expand
属性类型描述

ipBlock

object

IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。

namespaceSelector

object

使用集群范围的标签选择 Namespaces。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。如果也设置了 PodSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在 NamespaceSelector 中选择 Namespaces 中的所有 Pod。

podSelector

object

这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。

22.1.19. .spec.ingress[].from[].ipBlock

描述
IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。
类型
object
必填
  • cidr
Expand
属性类型描述

cidr

string

CIDR 是代表 IP 块有效期示例的字符串,是 '192.168.1.1/24'

例外

数组(字符串)

除外,如果值不在 CIDR 范围之外,则不应包含在 IP Block Valid 示例中的 CIDR 片段为 '192.168.1.1/24' Except 值

22.1.20. .spec.ingress[].from[].namespaceSelector

描述
使用集群范围的标签选择 Namespaces。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。如果也设置了 PodSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在 NamespaceSelector 中选择 Namespaces 中的所有 Pod。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 'key',运算符是 'In',值数组仅包含 'value'。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

22.1.23. .spec.ingress[].from[].podSelector

描述
这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 'key',运算符是 'In',值数组仅包含 'value'。要求的逻辑关系是 AND。

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组
描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

22.1.26. .spec.ingress[].ports

描述
应该可在为此规则选择的 pod 上访问的端口列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。
类型
array

22.1.27. .spec.ingress[].ports[]

描述
NetworkPolicyPort 描述了允许流量的端口
类型
object
Expand
属性类型描述

endPort

整数

如果设置,则表示策略应允许从 port 到 endPort 的端口范围。如果没有定义 port 字段,或者 port 字段定义为命名(字符串)端口,则无法定义此字段。endPort 必须相等或大于 port。

port

integer-or-string

给定协议上的端口。这可以是 pod 上的数字或指定端口。如果没有提供此字段,则匹配所有端口名称和编号。

protocol

字符串

流量必须匹配的协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。

22.1.28. .spec.podSelector

描述
这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

 

22.1.29. .spec.podSelector.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
数组

22.1.30. .spec.podSelector.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

22.2. API 端点

可用的 API 端点如下:

  • /apis/k8s.cni.cncf.io/v1beta1/multi-networkpolicies

    • GET: 列出类型为 MultiNetworkPolicy 的对象
  • /apis/k8s.cni.cncf.io/v1beta1/namespaces/{namespace}/multi-networkpolicies

    • DELETE :删除 MultiNetworkPolicy 集合
    • GET: 列出类型为 MultiNetworkPolicy 的对象
    • POST :创建一个 MultiNetworkPolicy
  • /apis/k8s.cni.cncf.io/v1beta1/namespaces/{namespace}/multi-networkpolicies/{name}

    • DELETE :删除 MultiNetworkPolicy
    • GET :读取指定的 MultiNetworkPolicy
    • PATCH: 部分更新指定的 MultiNetworkPolicy
    • PUT :替换指定的 MultiNetworkPolicy

22.2.1. /apis/k8s.cni.cncf.io/v1beta1/multi-networkpolicies

HTTP 方法
GET
描述
列出 MultiNetworkPolicy 类型的对象
Expand
表 22.1. HTTP 响应
HTTP 代码响应正文

200 - OK

MultiNetworkPolicyList 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 MultiNetworkPolicy 集合
Expand
表 22.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出 MultiNetworkPolicy 类型的对象
Expand
表 22.3. HTTP 响应
HTTP 代码响应正文

200 - OK

MultiNetworkPolicyList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建一个 MultiNetworkPolicy
Expand
表 22.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 22.5. 主体参数
参数类型描述

正文(body)

MultiNetworkPolicy 模式

 
Expand
表 22.6. HTTP 响应
HTTP 代码响应正文

200 - OK

MultiNetworkPolicy 模式

201 - Created

MultiNetworkPolicy 模式

202 - Accepted

MultiNetworkPolicy 模式

401 - Unauthorized

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

name

string

MultiNetworkPolicy 的名称

HTTP 方法
DELETE
描述
删除一个 MultiNetworkPolicy
Expand
表 22.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 22.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的 MultiNetworkPolicy
Expand
表 22.10. HTTP 响应
HTTP 代码响应正文

200 - OK

MultiNetworkPolicy 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 MultiNetworkPolicy
Expand
表 22.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 22.12. HTTP 响应
HTTP 代码响应正文

200 - OK

MultiNetworkPolicy 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 MultiNetworkPolicy
Expand
表 22.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 22.14. 主体参数
参数类型描述

正文(body)

MultiNetworkPolicy 模式

 
Expand
表 22.15. HTTP 响应
HTTP 代码响应正文

200 - OK

MultiNetworkPolicy 模式

201 - Created

MultiNetworkPolicy 模式

401 - Unauthorized

描述
NetworkAttachmentDefinition 是 Network Plumbing Working Group 指定的 CRD 模式,用于表达将 pod 附加到一个或多个逻辑或物理网络的意图。更多信息: https://github.com/k8snetworkplumbingwg/multi-net-spec
类型
object

23.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

对象

NetworkAttachmentDefinition spec 定义网络附加的所需状态

23.1.1. .spec

描述
NetworkAttachmentDefinition spec 定义网络附加的所需状态
类型
object
Expand
属性类型描述

config

字符串

NetworkAttachmentDefinition 配置是 JSON 格式的 CNI 配置

23.2. API 端点

可用的 API 端点如下:

  • /apis/k8s.cni.cncf.io/v1/network-attachment-definitions

    • GET: 列出 NetworkAttachmentDefinition 类型的对象
  • /apis/k8s.cni.cncf.io/v1/namespaces/{namespace}/network-attachment-definitions

    • DELETE :删除 NetworkAttachmentDefinition 集合
    • GET: 列出 NetworkAttachmentDefinition 类型的对象
    • POST :创建 NetworkAttachmentDefinition
  • /apis/k8s.cni.cncf.io/v1/namespaces/{namespace}/network-attachment-definitions/{name}

    • DELETE :删除 NetworkAttachmentDefinition
    • GET :读取指定的 NetworkAttachmentDefinition
    • PATCH: 部分更新指定的 NetworkAttachmentDefinition
    • PUT :替换指定的 NetworkAttachmentDefinition
HTTP 方法
GET
描述
列出 NetworkAttachmentDefinition 类型的对象
Expand
表 23.1. HTTP 响应
HTTP 代码响应正文

200 - OK

NetworkAttachmentDefinitionList 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 NetworkAttachmentDefinition 集合
Expand
表 23.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出 NetworkAttachmentDefinition 类型的对象
Expand
表 23.3. HTTP 响应
HTTP 代码响应正文

200 - OK

NetworkAttachmentDefinitionList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 NetworkAttachmentDefinition
Expand
表 23.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 23.5. 主体参数
参数类型描述

正文(body)

NetworkAttachmentDefinition 模式

 
Expand
表 23.6. HTTP 响应
HTTP 代码响应正文

200 - OK

NetworkAttachmentDefinition 模式

201 - Created

NetworkAttachmentDefinition 模式

202 - Accepted

NetworkAttachmentDefinition 模式

401 - Unauthorized

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

name

字符串

NetworkAttachmentDefinition 的名称

HTTP 方法
DELETE
描述
删除 NetworkAttachmentDefinition
Expand
表 23.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 23.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
读取指定的 NetworkAttachmentDefinition
Expand
表 23.10. HTTP 响应
HTTP 代码响应正文

200 - OK

NetworkAttachmentDefinition 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 NetworkAttachmentDefinition
Expand
表 23.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 23.12. HTTP 响应
HTTP 代码响应正文

200 - OK

NetworkAttachmentDefinition 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 NetworkAttachmentDefinition
Expand
表 23.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 23.14. 主体参数
参数类型描述

正文(body)

NetworkAttachmentDefinition 模式

 
Expand
表 23.15. HTTP 响应
HTTP 代码响应正文

200 - OK

NetworkAttachmentDefinition 模式

201 - Created

NetworkAttachmentDefinition 模式

401 - Unauthorized

第 24 章 NetworkPolicy [networking.k8s.io/v1]

描述
NetworkPolicy 描述一组 Pod 允许哪些网络流量
类型
object

24.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

对象

NetworkPolicySpec 提供 NetworkPolicy 的规格

24.1.1. .spec

描述
NetworkPolicySpec 提供 NetworkPolicy 的规格
类型
object
必填
  • podSelector
Expand
属性类型描述

egress

数组

egress 是要应用到所选 pod 的出口规则列表。如果没有 NetworkPolicies 选择 pod (和集群策略也允许流量),或者流量至少匹配 podSelector 与 pod 匹配的所有 NetworkPolicy 对象,则允许传出流量。如果此字段为空,则此 NetworkPolicy 会限制所有传出流量(且单独用于确保它选择的 pod 默认被隔离)。此字段在 1.8 中是 beta 级别

egress[]

对象

NetworkPolicyEgressRule 描述了允许没有与 NetworkPolicySpec 的 pod 匹配的 pod 集合的流量。流量必须与端口 和 匹配。这个类型是 1.8 中的 beta 级别

ingress

数组

Ingress 是要应用到所选 pod 的 ingress 规则列表。如果没有 NetworkPolicies 选择 pod (并且集群策略允许流量),或者流量源是 pod 的本地节点,或者如果流量源是 pod 的本地节点,或者如果流量至少匹配 pod 的所有 NetworkPolicy 对象中的一个入站规则,则允许流量。如果此字段为空,则此 NetworkPolicy 不允许任何流量(只服务来确保它选择的 pod 默认被隔离)

ingress[]

对象

NetworkPolicyIngressRule 描述了允许 pod 集合与 NetworkPolicySpec 的 pod 匹配的特定流量。流量必须与端口 和 from 匹配。

podSelector

LabelSelector

podSelector 选择此 NetworkPolicy 对象应用到的 pod。ingress 规则数组应用到此字段选择的任何 pod。多个网络策略可以选择同一组 pod。在这种情况下,每个的入站规则都会有一定的合并。此字段不可选,并遵循标准标签选择器语义。空 podSelector 匹配此命名空间中的所有 pod。

policyTypes

数组(字符串)

policyTypes 是 NetworkPolicy 相关的规则类型列表。有效选项为 ["Ingress"], ["Egress"], 或 ["Ingress", "Egress"]。如果没有指定此字段,它将根据存在入口或出口规则进行默认;包含出口部分的策略会被假定影响出口,并且所有策略(无论它们是否包含 ingress 部分)都会影响 ingress。如果要编写仅限出口的策略,您必须明确指定 policyTypes [ "Egress" ]。同样,如果您想要编写指定不允许出口的策略,您必须指定包含 "Egress" 的 policyTypes 值(因为这样的策略不包含 egress 部分,否则将默认为 [ "Ingress" ]。此字段在 1.8 中是 beta 级别

24.1.2. .spec.egress

描述
egress 是要应用到所选 pod 的出口规则列表。如果没有 NetworkPolicies 选择 pod (和集群策略也允许流量),或者流量至少匹配 podSelector 与 pod 匹配的所有 NetworkPolicy 对象,则允许传出流量。如果此字段为空,则此 NetworkPolicy 会限制所有传出流量(且单独用于确保它选择的 pod 默认被隔离)。此字段在 1.8 中是 beta 级别
类型
array

24.1.3. .spec.egress[]

描述
NetworkPolicyEgressRule 描述了允许没有与 NetworkPolicySpec 的 pod 匹配的 pod 集合的流量。流量必须与端口 和 匹配。这个类型是 1.8 中的 beta 级别
类型
object
Expand
属性类型描述

ports

数组

ports 是传出流量的目标端口列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。

ports[]

对象

NetworkPolicyPort 描述了允许流量的端口

数组

to 是为这个规则选择的 pod 的传出流量的目的地列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有目的地匹配(不受目的地限制的流量)。如果此字段至少存在并包含一项,则该规则仅在流量至少与 to 列表中某一项匹配时才允许流量。

to[]

对象

NetworkPolicyPeer 描述了允许进出流量的对等点。只允许某些字段组合

24.1.4. .spec.egress[].ports

描述
ports 是传出流量的目标端口列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。
类型
array

24.1.5. .spec.egress[].ports[]

描述
NetworkPolicyPort 描述了允许流量的端口
类型
object
Expand
属性类型描述

endPort

整数

endPort 表示策略允许端口到 endPort 的端口范围。如果没有定义 port 字段,或者 port 字段定义为命名(字符串)端口,则无法定义此字段。endPort 必须相等或大于 port。

port

IntOrString

port 代表给定协议上的端口。这可以是 pod 上的数字或指定端口。如果没有提供此字段,则匹配所有端口名称和编号。如果存在,则仅匹配指定协议和端口上的流量。

protocol

string

protocol 代表流量必须匹配的协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。

可能枚举值: - "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

24.1.6. .spec.egress[].to

描述
to 是为这个规则选择的 pod 的传出流量的目的地列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有目的地匹配(不受目的地限制的流量)。如果此字段至少存在并包含一项,则该规则仅在流量至少与 to 列表中某一项匹配时才允许流量。
类型
array

24.1.7. .spec.egress[].to[]

描述
NetworkPolicyPeer 描述了允许进出流量的对等点。只允许某些字段组合
类型
object
Expand
属性类型描述

ipBlock

对象

IPBlock 描述了特定的 CIDR (Ex)"192.168.1.0/24","2001:db8::/64"),允许与 NetworkPolicySpec 的 podSelector 匹配的 pod。例外条目描述了不应包含在此规则中的 CIDR。

namespaceSelector

LabelSelector

namespaceSelector 使用集群范围的标签选择命名空间。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。

如果也设置了 podSelector,则 NetworkPolicyPeer 作为整个选择在 namespaceSelector 选择的命名空间中与 podSelector 匹配的 pod。否则,它会选择 namespaceSelector 选择的命名空间中的所有 pod。

podSelector

LabelSelector

podSelector 是一个标签选择器,它选择 pod。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。

如果还设置了 namespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的 Namespaces 中与 podSelector 匹配的 pod。否则,它会在策略自己的命名空间中选择与 podSelector 匹配的 pod。

24.1.8. .spec.egress[].to[].ipBlock

描述
IPBlock 描述了特定的 CIDR (Ex)"192.168.1.0/24","2001:db8::/64"),允许与 NetworkPolicySpec 的 podSelector 匹配的 pod。例外条目描述了不应包含在此规则中的 CIDR。
类型
object
必填
  • cidr
Expand
属性类型描述

cidr

string

CIDR 是代表 IPBlock Valid 示例的字符串,即 "192.168.1.0/24" 或 "2001:db8::/64"

例外

数组(字符串)

例外是不应包含在 IPBlock Valid 示例中的 CIDR 片段为 "192.168.1.0/24" 或 "2001:db8::/64" Except 值(如果它们不在 cidr 范围之外)

24.1.9. .spec.ingress

描述
Ingress 是要应用到所选 pod 的 ingress 规则列表。如果没有 NetworkPolicies 选择 pod (并且集群策略允许流量),或者流量源是 pod 的本地节点,或者如果流量源是 pod 的本地节点,或者如果流量至少匹配 pod 的所有 NetworkPolicy 对象中的一个入站规则,则允许流量。如果此字段为空,则此 NetworkPolicy 不允许任何流量(只服务来确保它选择的 pod 默认被隔离)
类型
array

24.1.10. .spec.ingress[]

描述
NetworkPolicyIngressRule 描述了允许 pod 集合与 NetworkPolicySpec 的 pod 匹配的特定流量。流量必须与端口 和 from 匹配。
类型
object
Expand
属性类型描述

from

数组

from 是源列表,应能够访问为此规则选择的 pod。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有源匹配(不受源限制的流量)。如果此字段至少包含一个项,则该规则仅在流量与 from 列表中至少一个项匹配时才允许流量。

from[]

对象

NetworkPolicyPeer 描述了允许进出流量的对等点。只允许某些字段组合

ports

数组

ports 是应该可在针对此规则选择的 pod 上访问的端口的列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。

ports[]

对象

NetworkPolicyPort 描述了允许流量的端口

24.1.11. .spec.ingress[].from

描述
from 是源列表,应能够访问为此规则选择的 pod。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有源匹配(不受源限制的流量)。如果此字段至少包含一个项,则该规则仅在流量与 from 列表中至少一个项匹配时才允许流量。
类型
array

24.1.12. .spec.ingress[].from[]

描述
NetworkPolicyPeer 描述了允许进出流量的对等点。只允许某些字段组合
类型
object
Expand
属性类型描述

ipBlock

对象

IPBlock 描述了特定的 CIDR (Ex)"192.168.1.0/24","2001:db8::/64"),允许与 NetworkPolicySpec 的 podSelector 匹配的 pod。例外条目描述了不应包含在此规则中的 CIDR。

namespaceSelector

LabelSelector

namespaceSelector 使用集群范围的标签选择命名空间。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。

如果也设置了 podSelector,则 NetworkPolicyPeer 作为整个选择在 namespaceSelector 选择的命名空间中与 podSelector 匹配的 pod。否则,它会选择 namespaceSelector 选择的命名空间中的所有 pod。

podSelector

LabelSelector

podSelector 是一个标签选择器,它选择 pod。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。

如果还设置了 namespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的 Namespaces 中与 podSelector 匹配的 pod。否则,它会在策略自己的命名空间中选择与 podSelector 匹配的 pod。

24.1.13. .spec.ingress[].from[].ipBlock

描述
IPBlock 描述了特定的 CIDR (Ex)"192.168.1.0/24","2001:db8::/64"),允许与 NetworkPolicySpec 的 podSelector 匹配的 pod。例外条目描述了不应包含在此规则中的 CIDR。
类型
object
必填
  • cidr
Expand
属性类型描述

cidr

string

CIDR 是代表 IPBlock Valid 示例的字符串,即 "192.168.1.0/24" 或 "2001:db8::/64"

例外

数组(字符串)

例外是不应包含在 IPBlock Valid 示例中的 CIDR 片段为 "192.168.1.0/24" 或 "2001:db8::/64" Except 值(如果它们不在 cidr 范围之外)

24.1.14. .spec.ingress[].ports

描述
ports 是应该可在针对此规则选择的 pod 上访问的端口的列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。
类型
array

24.1.15. .spec.ingress[].ports[]

描述
NetworkPolicyPort 描述了允许流量的端口
类型
object
Expand
属性类型描述

endPort

整数

endPort 表示策略允许端口到 endPort 的端口范围。如果没有定义 port 字段,或者 port 字段定义为命名(字符串)端口,则无法定义此字段。endPort 必须相等或大于 port。

port

IntOrString

port 代表给定协议上的端口。这可以是 pod 上的数字或指定端口。如果没有提供此字段,则匹配所有端口名称和编号。如果存在,则仅匹配指定协议和端口上的流量。

protocol

string

protocol 代表流量必须匹配的协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。

可能枚举值: - "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

24.2. API 端点

可用的 API 端点如下:

  • /apis/networking.k8s.io/v1/networkpolicies

    • GET: 列出或监视类型为 NetworkPolicy 的对象
  • /apis/networking.k8s.io/v1/watch/networkpolicies

    • GET: 观察单个对 NetworkPolicy 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
  • /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies

    • DELETE: 删除 NetworkPolicy 集合
    • GET: 列出或监视类型为 NetworkPolicy 的对象
    • POST :创建 NetworkPolicy
  • /apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies

    • GET: 观察单个对 NetworkPolicy 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
  • /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}

    • DELETE :删除 NetworkPolicy
    • GET :读取指定的 NetworkPolicy
    • PATCH: 部分更新指定的 NetworkPolicy
    • PUT :替换指定的 NetworkPolicy
  • /apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}

    • GET: 观察对类型为 NetworkPolicy 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。

24.2.1. /apis/networking.k8s.io/v1/networkpolicies

HTTP 方法
GET
描述
列出或监视类型为 NetworkPolicy 的对象
Expand
表 24.1. HTTP 响应
HTTP 代码响应正文

200 - OK

NetworkPolicyList 模式

401 - Unauthorized

24.2.2. /apis/networking.k8s.io/v1/watch/networkpolicies

HTTP 方法
GET
描述
观察单个对 NetworkPolicy 列表的更改。已弃用:使用带有列表操作的 'watch' 参数。
Expand
表 24.2. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 NetworkPolicy 集合
Expand
表 24.3. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 24.4. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出或监视类型为 NetworkPolicy 的对象
Expand
表 24.5. HTTP 响应
HTTP 代码响应正文

200 - OK

NetworkPolicyList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 NetworkPolicy
Expand
表 24.6. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 24.7. 主体参数
参数类型描述

正文(body)

NetworkPolicy 模式

 
Expand
表 24.8. HTTP 响应
HTTP 代码响应正文

200 - OK

NetworkPolicy 模式

201 - Created

NetworkPolicy 模式

202 - Accepted

NetworkPolicy 模式

401 - Unauthorized

HTTP 方法
GET
描述
观察单个对 NetworkPolicy 列表的更改。已弃用:使用带有列表操作的 'watch' 参数。
Expand
表 24.9. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

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

name

字符串

NetworkPolicy 的名称

HTTP 方法
DELETE
描述
删除 NetworkPolicy
Expand
表 24.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 24.12. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
读取指定的 NetworkPolicy
Expand
表 24.13. HTTP 响应
HTTP 代码响应正文

200 - OK

NetworkPolicy 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 NetworkPolicy
Expand
表 24.14. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 24.15. HTTP 响应
HTTP 代码响应正文

200 - OK

NetworkPolicy 模式

201 - Created

NetworkPolicy 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 NetworkPolicy
Expand
表 24.16. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 24.17. 主体参数
参数类型描述

正文(body)

NetworkPolicy 模式

 
Expand
表 24.18. HTTP 响应
HTTP 代码响应正文

200 - OK

NetworkPolicy 模式

201 - Created

NetworkPolicy 模式

401 - Unauthorized

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

name

字符串

NetworkPolicy 的名称

HTTP 方法
GET
描述
观察对类型为 NetworkPolicy 的对象的更改。已弃用:使用带有列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
Expand
表 24.20. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

描述
NodeSlicePool 是 nodesliceippools API 的 Schema
类型
object

25.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

NodeSlicePoolSpec 定义 NodeSlicePool 的所需状态

status

object

NodeSlicePoolStatus 定义 NodeSlicePool 的所需状态

25.1.1. .spec

描述
NodeSlicePoolSpec 定义 NodeSlicePool 的所需状态
类型
object
必填
  • range
  • sliceSize
Expand
属性类型描述

range

string

range 是一个 RFC 4632/4291-style 字符串,代表 CIDR 标记中的 IP 地址和前缀长度,这指的是为节点分配子集的完整范围

sliceSize

string

SliceSize 是要分配每个节点的范围的子网或片段大小

25.1.2. .status

描述
NodeSlicePoolStatus 定义 NodeSlicePool 的所需状态
类型
object
必填
  • 分配
Expand
属性类型描述

分配

数组

分配会保存对分片的分配

allocations[]

object

 

25.1.3. .status.allocations

描述
分配会保存对分片的分配
类型
数组

25.1.4. .status.allocations[]

描述
类型
object
必填
  • nodeName
  • sliceRange
Expand
属性类型描述

nodeName

string

nodeName 是分配给此片段的节点的名称,空节点名称是一个可用分片,用于分配

sliceRange

string

SliceRange 是这个片段的子网

25.2. API 端点

可用的 API 端点如下:

  • /apis/whereabouts.cni.cncf.io/v1alpha1/nodeslicepools

    • GET: 列出类型为 NodeSlicePool 的对象
  • /apis/whereabouts.cni.cncf.io/v1alpha1/namespaces/{namespace}/nodeslicepools

    • DELETE :删除 NodeSlicePool 的集合
    • GET: 列出类型为 NodeSlicePool 的对象
    • POST :创建 NodeSlicePool
  • /apis/whereabouts.cni.cncf.io/v1alpha1/namespaces/{namespace}/nodeslicepools/{name}

    • DELETE :删除 NodeSlicePool
    • GET :读取指定的 NodeSlicePool
    • PATCH: 部分更新指定的 NodeSlicePool
    • PUT :替换指定的 NodeSlicePool
HTTP 方法
GET
描述
列出 NodeSlicePool 类型的对象
Expand
表 25.1. HTTP 响应
HTTP 代码响应正文

200 - OK

NodeSlicePoolList schema

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 NodeSlicePool 集合
Expand
表 25.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出 NodeSlicePool 类型的对象
Expand
表 25.3. HTTP 响应
HTTP 代码响应正文

200 - OK

NodeSlicePoolList schema

401 - Unauthorized

HTTP 方法
POST
描述
create a NodeSlicePool
Expand
表 25.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 25.5. 主体参数
参数类型描述

正文(body)

NodeSlicePool schema

 
Expand
表 25.6. HTTP 响应
HTTP 代码响应正文

200 - OK

NodeSlicePool schema

201 - Created

NodeSlicePool schema

202 - Accepted

NodeSlicePool schema

401 - Unauthorized

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

name

string

NodeSlicePool 的名称

HTTP 方法
DELETE
描述
delete a NodeSlicePool
Expand
表 25.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 25.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的 NodeSlicePool
Expand
表 25.10. HTTP 响应
HTTP 代码响应正文

200 - OK

NodeSlicePool schema

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 NodeSlicePool
Expand
表 25.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 25.12. HTTP 响应
HTTP 代码响应正文

200 - OK

NodeSlicePool schema

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 NodeSlicePool
Expand
表 25.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 25.14. 主体参数
参数类型描述

正文(body)

NodeSlicePool schema

 
Expand
表 25.15. HTTP 响应
HTTP 代码响应正文

200 - OK

NodeSlicePool schema

201 - Created

NodeSlicePool schema

401 - Unauthorized

描述
OverlappingRangeIPReservation 是 OverlappingRangeIPReservations API 的 Schema
类型
object
必填
  • spec

26.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

OverlappingRangeIPReservationSpec 定义所需的 OverlappingRangeIPReservation

26.1.1. .spec

描述
OverlappingRangeIPReservationSpec 定义所需的 OverlappingRangeIPReservation
类型
object
必填
  • podref
Expand
属性类型描述

containerid

string

 

ifname

string

 

podref

string

 

26.2. API 端点

可用的 API 端点如下:

  • /apis/whereabouts.cni.cncf.io/v1alpha1/overlappingrangeipreservations

    • GET: 列出类型为 OverlappingRangeIPReservation 的对象
  • /apis/whereabouts.cni.cncf.io/v1alpha1/namespaces/{namespace}/overlappingrangeipreservations

    • DELETE :删除 OverlappingRangeIPReservation 集合
    • GET: 列出类型为 OverlappingRangeIPReservation 的对象
    • POST :创建 OverlappingRangeIPReservation
  • /apis/whereabouts.cni.cncf.io/v1alpha1/namespaces/{namespace}/overlappingrangeipreservations/{name}

    • DELETE :删除 OverlappingRangeIPReservation
    • GET :读取指定的 OverlappingRangeIPReservation
    • PATCH: 部分更新指定的 OverlappingRangeIPReservation
    • PUT :替换指定的 OverlappingRangeIPReservation
HTTP 方法
GET
描述
列出 OverlappingRangeIPReservation 类型的对象
Expand
表 26.1. HTTP 响应
HTTP 代码响应正文

200 - OK

OverlappingRangeIPReservationList 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 OverlappingRangeIPReservation 集合
Expand
表 26.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出 OverlappingRangeIPReservation 类型的对象
Expand
表 26.3. HTTP 响应
HTTP 代码响应正文

200 - OK

OverlappingRangeIPReservationList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 OverlappingRangeIPReservation
Expand
表 26.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 26.5. 主体参数
参数类型描述

正文(body)

OverlappingRangeIPReservation 模式

 
Expand
表 26.6. HTTP 响应
HTTP 代码响应正文

200 - OK

OverlappingRangeIPReservation 模式

201 - Created

OverlappingRangeIPReservation 模式

202 - Accepted

OverlappingRangeIPReservation 模式

401 - Unauthorized

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

name

string

OverlappingRangeIPReservation 的名称

HTTP 方法
DELETE
描述
删除 OverlappingRangeIPReservation
Expand
表 26.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 26.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的 OverlappingRangeIPReservation
Expand
表 26.10. HTTP 响应
HTTP 代码响应正文

200 - OK

OverlappingRangeIPReservation 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 OverlappingRangeIPReservation
Expand
表 26.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 26.12. HTTP 响应
HTTP 代码响应正文

200 - OK

OverlappingRangeIPReservation 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 OverlappingRangeIPReservation
Expand
表 26.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 26.14. 主体参数
参数类型描述

正文(body)

OverlappingRangeIPReservation 模式

 
Expand
表 26.15. HTTP 响应
HTTP 代码响应正文

200 - OK

OverlappingRangeIPReservation 模式

201 - Created

OverlappingRangeIPReservation 模式

401 - Unauthorized

描述

PodNetworkConnectivityCheck

兼容性级别 4:不提供兼容性,API 可能会因为任何原因而有所变化。这些功能不应由需要长期支持的应用程序使用。

类型
object
必填
  • spec

27.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

spec 定义连接检查的源和目标

status

object

status 包含连接检查的观察状态

27.1.1. .spec

描述
spec 定义连接检查的源和目标
类型
object
必填
  • sourcePod
  • targetEndpoint
Expand
属性类型描述

sourcePod

string

sourcePod 将从中检查条件的 pod 命名为

targetEndpoint

字符串

要检查的 EndpointAddress。形式为 host:port 的 TCP 地址。请注意,如果 host 是 DNS 名称,则如果无法解析 DNS 名称,则检查将失败。为主机指定要绕过 DNS 名称查找的 IP 地址。

tlsClientCert

对象

tlsClientCert (如果指定),使用 'tls.crt' 和 'tls.key' 条目引用 kubernetes.io/tls 类型 secret,其中包含一个可选的 TLS 客户端证书和密钥,以便在检查需要客户端证书的端点时,安全地预先进行扫描,而无需在端点过程中造成过度登录。secret 必须与此资源位于同一个命名空间中。

27.1.2. .spec.tlsClientCert

描述
tlsClientCert (如果指定),使用 'tls.crt' 和 'tls.key' 条目引用 kubernetes.io/tls 类型 secret,其中包含一个可选的 TLS 客户端证书和密钥,以便在检查需要客户端证书的端点时,安全地预先进行扫描,而无需在端点过程中造成过度登录。secret 必须与此资源位于同一个命名空间中。
类型
object
必填
  • name
Expand
属性类型描述

name

字符串

name 是引用的 secret 的 metadata.name

27.1.3. .status

描述
status 包含连接检查的观察状态
类型
object
Expand
属性类型描述

conditions

数组

条件总结检查的状态

conditions[]

对象

PodNetworkConnectivityCheckCondition 代表 pod 网络连接的整体状态。

失败

数组

失败包含失败的检查操作的日志

failures[]

对象

LogEntry 记录事件

中断

数组

中断包含中断时间的日志

outages[]

对象

OutageEntry 记录中断的时间段

successes

数组

successes 包含日志成功检查操作

successes[]

对象

LogEntry 记录事件

27.1.4. .status.conditions

描述
条件总结检查的状态
类型
array

27.1.5. .status.conditions[]

描述
PodNetworkConnectivityCheckCondition 代表 pod 网络连接的整体状态。
类型
object
必填
  • status
  • type
Expand
属性类型描述

lastTransitionTime

``

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

message

string

消息以人类可读的格式表示最后一次转换的详细信息。

reason

string

以机器可读格式替换条件的最后状态转换的原因。

status

string

条件的状态

type

string

条件的类型

27.1.6. .status.failures

描述
失败包含失败的检查操作的日志
类型
array

27.1.7. .status.failures[]

描述
LogEntry 记录事件
类型
object
必填
  • success
Expand
属性类型描述

latency

``

延迟记录了条目中提到的操作的时间。

message

string

以人类可读的格式解释状态的消息。

reason

string

以机器可读格式状态的原因。

success

布尔值

success 表示日志条目是否表示成功或失败。

time

``

检查操作的开始时间。

27.1.8. .status.outages

描述
中断包含中断时间的日志
类型
array

27.1.9. .status.outages[]

描述
OutageEntry 记录中断的时间段
类型
object
Expand
属性类型描述

end

``

检测到中断结束

endLogs

数组

endLogs 包含与此中断结束相关的日志条目。应包含已解决中断的成功条目,并且可能存在几个前面的故障日志条目。

endLogs[]

对象

LogEntry 记录事件

message

string

消息以人类可读的格式汇总中断详情。

start

``

检测到中断的开始

startLogs

数组

startLogs 包含与此中断开始相关的日志条目。应该包含原始失败,以及任何失败模式更改的条目。

startLogs[]

对象

LogEntry 记录事件

27.1.10. .status.outages[].endLogs

描述
endLogs 包含与此中断结束相关的日志条目。应包含已解决中断的成功条目,并且可能存在几个前面的故障日志条目。
类型
array

27.1.11. .status.outages[].endLogs[]

描述
LogEntry 记录事件
类型
object
必填
  • success
Expand
属性类型描述

latency

``

延迟记录了条目中提到的操作的时间。

message

string

以人类可读的格式解释状态的消息。

reason

string

以机器可读格式状态的原因。

success

布尔值

success 表示日志条目是否表示成功或失败。

time

``

检查操作的开始时间。

27.1.12. .status.outages[].startLogs

描述
startLogs 包含与此中断开始相关的日志条目。应该包含原始失败,以及任何失败模式更改的条目。
类型
array

27.1.13. .status.outages[].startLogs[]

描述
LogEntry 记录事件
类型
object
必填
  • success
Expand
属性类型描述

latency

``

延迟记录了条目中提到的操作的时间。

message

string

以人类可读的格式解释状态的消息。

reason

string

以机器可读格式状态的原因。

success

布尔值

success 表示日志条目是否表示成功或失败。

time

``

检查操作的开始时间。

27.1.14. .status.successes

描述
successes 包含日志成功检查操作
类型
array

27.1.15. .status.successes[]

描述
LogEntry 记录事件
类型
object
必填
  • success
Expand
属性类型描述

latency

``

延迟记录了条目中提到的操作的时间。

message

string

以人类可读的格式解释状态的消息。

reason

string

以机器可读格式状态的原因。

success

布尔值

success 表示日志条目是否表示成功或失败。

time

``

检查操作的开始时间。

27.2. API 端点

可用的 API 端点如下:

  • /apis/controlplane.operator.openshift.io/v1alpha1/podnetworkconnectivitychecks

    • GET: 列出类型为 PodNetworkConnectivityCheck 的对象
  • /apis/controlplane.operator.openshift.io/v1alpha1/namespaces/{namespace}/podnetworkconnectivitychecks

    • DELETE: 删除 PodNetworkConnectivityCheck 的集合
    • GET: 列出类型为 PodNetworkConnectivityCheck 的对象
    • POST :创建 PodNetworkConnectivityCheck
  • /apis/controlplane.operator.openshift.io/v1alpha1/namespaces/{namespace}/podnetworkconnectivitychecks/{name}

    • DELETE :删除 PodNetworkConnectivityCheck
    • GET :读取指定的 PodNetworkConnectivityCheck
    • PATCH: 部分更新指定的 PodNetworkConnectivityCheck
    • PUT :替换指定的 PodNetworkConnectivityCheck
  • /apis/controlplane.operator.openshift.io/v1alpha1/namespaces/{namespace}/podnetworkconnectivitychecks/{name}/status

    • GET :指定 PodNetworkConnectivityCheck 的读取状态
    • PATCH: 部分更新指定 PodNetworkConnectivityCheck 的状态
    • PUT :替换指定 PodNetworkConnectivityCheck 的状态
HTTP 方法
GET
描述
列出类型为 PodNetworkConnectivityCheck 的对象
Expand
表 27.1. HTTP 响应
HTTP 代码响应正文

200 - OK

PodNetworkConnectivityCheckList schema

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 PodNetworkConnectivityCheck 集合
Expand
表 27.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出类型为 PodNetworkConnectivityCheck 的对象
Expand
表 27.3. HTTP 响应
HTTP 代码响应正文

200 - OK

PodNetworkConnectivityCheckList schema

401 - Unauthorized

HTTP 方法
POST
描述
创建 PodNetworkConnectivityCheck
Expand
表 27.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 27.5. 主体参数
参数类型描述

正文(body)

PodNetworkConnectivityCheck schema

 
Expand
表 27.6. HTTP 响应
HTTP 代码响应正文

200 - OK

PodNetworkConnectivityCheck schema

201 - Created

PodNetworkConnectivityCheck schema

202 - Accepted

PodNetworkConnectivityCheck schema

401 - Unauthorized

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

name

字符串

PodNetworkConnectivityCheck 的名称

HTTP 方法
DELETE
描述
删除 PodNetworkConnectivityCheck
Expand
表 27.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 27.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的 PodNetworkConnectivityCheck
Expand
表 27.10. HTTP 响应
HTTP 代码响应正文

200 - OK

PodNetworkConnectivityCheck schema

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 PodNetworkConnectivityCheck
Expand
表 27.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 27.12. HTTP 响应
HTTP 代码响应正文

200 - OK

PodNetworkConnectivityCheck schema

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 PodNetworkConnectivityCheck
Expand
表 27.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 27.14. 主体参数
参数类型描述

正文(body)

PodNetworkConnectivityCheck schema

 
Expand
表 27.15. HTTP 响应
HTTP 代码响应正文

200 - OK

PodNetworkConnectivityCheck schema

201 - Created

PodNetworkConnectivityCheck schema

401 - Unauthorized

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

name

字符串

PodNetworkConnectivityCheck 的名称

HTTP 方法
GET
描述
指定 PodNetworkConnectivityCheck 的读取状态
Expand
表 27.17. HTTP 响应
HTTP 代码响应正文

200 - OK

PodNetworkConnectivityCheck schema

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 PodNetworkConnectivityCheck 的状态
Expand
表 27.18. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 27.19. HTTP 响应
HTTP 代码响应正文

200 - OK

PodNetworkConnectivityCheck schema

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 PodNetworkConnectivityCheck 的状态
Expand
表 27.20. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 27.21. 主体参数
参数类型描述

正文(body)

PodNetworkConnectivityCheck schema

 
Expand
表 27.22. HTTP 响应
HTTP 代码响应正文

200 - OK

PodNetworkConnectivityCheck schema

201 - Created

PodNetworkConnectivityCheck schema

401 - Unauthorized

描述

ReferenceGrant 识别其他命名空间中受信任的资源类型,这些资源在与策略相同的命名空间中引用指定种类的资源。

每个 ReferenceGrant 都可用于代表唯一的信任关系。其他 Reference Grants 可用于添加到其定义的命名空间的入站引用集合中。

网关 API 中的所有跨命名空间引用(跨命名空间网关附加除外)都需要参考人员。

ReferenceGrant 是运行时验证的形式,允许用户断言允许跨命名空间对象引用。支持 ReferenceGrant MUST 的实现不允许没有授权的跨命名空间引用,通过撤销授权的访问权限来响应删除授权。

类型
object

28.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

spec 定义所需的 ReferenceGrant 状态。

28.1.1. .spec

描述
spec 定义所需的 ReferenceGrant 状态。
类型
object
必填
  • from
Expand
属性类型描述

from

数组

from 描述了可引用"To"中描述的资源的可信命名空间和类型。此列表中的每个条目都必须视为一个额外的位置,引用可以从其有效,或者以另一种方式放置条目,必须使用 OR 合并条目。

支持:Core

from[]

object

ReferenceGrantFrom 描述了可信命名空间和类型。

数组

描述可能由"From"中描述的资源引用的资源。此列表中的每个条目都必须视为一个额外的位置,引用可以有效,或者以另一种方式放置条目,必须使用 OR 合并条目。

支持:Core

to[]

object

ReferenceGrantTo 描述了允许什么 Kind 作为参考目标。

28.1.2. .spec.from

描述

from 描述了可引用"To"中描述的资源的可信命名空间和类型。此列表中的每个条目都必须视为一个额外的位置,引用可以从其有效,或者以另一种方式放置条目,必须使用 OR 合并条目。

支持:Core

类型
数组

28.1.3. .spec.from[]

描述
ReferenceGrantFrom 描述了可信命名空间和类型。
类型
object
必填
  • group
  • kind
  • namespace
Expand
属性类型描述

group

string

组是引用的组。如果为空,Kubernetes 核心 API 组将被推断出来。

支持:Core

kind

string

kind 是引用的种类。虽然实施可能会支持其他资源,但以下类型是此字段的"Core"支持级别的一部分。

用于允许 SecretObjectReference 时:

* gateway

用于允许 BackendObjectReference 时:

* GRPCRoute * HTTPRoute * TCPRoute * TLSRoute * UDPRoute

namespace

string

namespace 是引用的命名空间。

支持:Core

28.1.4. .spec.to

描述

描述可能由"From"中描述的资源引用的资源。此列表中的每个条目都必须视为一个额外的位置,引用可以有效,或者以另一种方式放置条目,必须使用 OR 合并条目。

支持:Core

类型
数组

28.1.5. .spec.to[]

描述
ReferenceGrantTo 描述了允许什么 Kind 作为参考目标。
类型
object
必填
  • group
  • kind
Expand
属性类型描述

group

string

组是引用的组。如果为空,Kubernetes 核心 API 组将被推断出来。

支持:Core

kind

string

kind 是引用的种类。虽然实现可能会支持其他资源,但以下类型是此字段的"Core"支持级别的一部分:

* secret 当用于允许 SecretObjectReference * Service 时用于允许 BackendObjectReference

name

string

name 是引用的名称。如果未指定,此策略指的是本地命名空间中指定 Group 和 Kind 的所有资源。

28.2. API 端点

可用的 API 端点如下:

  • /apis/gateway.networking.k8s.io/v1beta1/referencegrants

    • GET: 列出类型为 ReferenceGrant 的对象
  • /apis/gateway.networking.k8s.io/v1beta1/namespaces/{namespace}/referencegrants

    • DELETE :删除参考Grant 的集合
    • GET: 列出类型为 ReferenceGrant 的对象
    • POST :创建参考信息
  • /apis/gateway.networking.k8s.io/v1beta1/namespaces/{namespace}/referencegrants/{name}

    • DELETE :删除参考信息
    • GET :读取指定的参考Grant
    • PATCH: 部分更新指定的参考Grant
    • PUT :替换指定的参考Grant
HTTP 方法
GET
描述
列出类型为 ReferenceGrant 的对象
Expand
表 28.1. HTTP 响应
HTTP 代码响应正文

200 - OK

ReferenceGrantList 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 ReferenceGrant 集合
Expand
表 28.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出类型为 ReferenceGrant 的对象
Expand
表 28.3. HTTP 响应
HTTP 代码响应正文

200 - OK

ReferenceGrantList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建参考人员
Expand
表 28.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 28.5. 主体参数
参数类型描述

正文(body)

ReferenceGrant 模式

 
Expand
表 28.6. HTTP 响应
HTTP 代码响应正文

200 - OK

ReferenceGrant 模式

201 - Created

ReferenceGrant 模式

202 - Accepted

ReferenceGrant 模式

401 - Unauthorized

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

name

string

ReferenceGrant 的名称

HTTP 方法
DELETE
描述
删除参考信息
Expand
表 28.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 28.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的参考Grant
Expand
表 28.10. HTTP 响应
HTTP 代码响应正文

200 - OK

ReferenceGrant 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的参考Grant
Expand
表 28.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 28.12. HTTP 响应
HTTP 代码响应正文

200 - OK

ReferenceGrant 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 ReferenceGrant
Expand
表 28.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 28.14. 主体参数
参数类型描述

正文(body)

ReferenceGrant 模式

 
Expand
表 28.15. HTTP 响应
HTTP 代码响应正文

200 - OK

ReferenceGrant 模式

201 - Created

ReferenceGrant 模式

401 - Unauthorized

第 29 章 Route [route.openshift.io/v1]

描述

通过路由,开发人员可以通过 HTTP (S)了解负载平衡和代理层通过公共 DNS 条目公开服务。路由可以进一步指定 TLS 选项和证书,或者指定路由器也应该接受 HTTP 和 HTTPS 流量的公共 CNAME。管理员通常将其路由器配置为在集群防火墙外可见,还可在服务内容上添加额外的安全性、缓存或流量控制。路由器通常直接与服务端点通信。

创建路由后,可能不会更改 host 字段。通常,路由器在解析冲突时使用带有给定主机的最旧的路由。

路由器受到额外的自定义,可以通过 annotations 字段支持其他控制。

由于管理员可以配置多个路由器,因此路由状态字段用于向客户端返回每个路由器下路由的名称和状态的信息。如果客户端选择重复的名称,例如,则使用路由状态条件来指示无法选择路由。

要在路由上启用 HTTP/2 ALPN,它需要自定义(非通配符)证书。这可防止客户端的连接并发,特别是 Web 浏览器。由于连接重新使用的风险,我们不支持使用默认证书的 HTTP/2 ALPN。没有其自身自定义证书的路由在前端或后端上都不会是启用了 HTTP/2 ALPN 的路由。

兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。

类型
object
必填
  • spec

29.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta_v2

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

spec

对象

RouteSpec 描述了路由公开的主机名或路径、任何安全信息,以及到路由指向的四个后端(服务)。根据分配给每个后端的权重在后端间分布请求。当使用 roundrobin 调度进入每个后端的请求部分时,后端权重会除以所有后端权重的总和。当后端有多个端点时,后端结束的请求会在端点之间循环分布。权重介于 0 到 256 之间,默认为 100。权重 0 会导致请求到后端。如果所有权重都为零,则路由将被视为没有后端并返回标准 503 响应。

tls 字段是可选的,允许路由的特定证书或行为。路由器通常在通配符域中配置默认证书,以在没有显式证书的情况下终止路由,但自定义主机名通常必须选择 passthrough (通过 TLS Server-Name- Indication 字段向后端发送流量)或提供证书。

status

对象

RouteStatus 提供有关路由状态的相关信息,包括确认哪个路由器。

29.1.1. .spec

描述

RouteSpec 描述了路由公开的主机名或路径、任何安全信息,以及到路由指向的四个后端(服务)。根据分配给每个后端的权重在后端间分布请求。当使用 roundrobin 调度进入每个后端的请求部分时,后端权重会除以所有后端权重的总和。当后端有多个端点时,后端结束的请求会在端点之间循环分布。权重介于 0 到 256 之间,默认为 100。权重 0 会导致请求到后端。如果所有权重都为零,则路由将被视为没有后端并返回标准 503 响应。

tls 字段是可选的,允许路由的特定证书或行为。路由器通常在通配符域中配置默认证书,以在没有显式证书的情况下终止路由,但自定义主机名通常必须选择 passthrough (通过 TLS Server-Name- Indication 字段向后端发送流量)或提供证书。

类型
object
必填
Expand
属性类型描述

alternateBackends

array

alternateBackends 允许最多 3 个额外的后端分配给路由。只允许 Service kind,它将默认为 Service。使用 RouteTargetReference 对象中的 weight 字段指定相对的首选项。

alternateBackends[]

对象

RouteTargetReference 指定解析为端点的目标。只允许 'Service' kind。使用"weight"字段加重其他字段。

主机

字符串

主机是一个指向该服务的别名/DNS。可选。如果没有指定路由名称,则通常会自动选择。必须遵循 DNS952 子域惯例。

httpHeaders

object

RouteHTTPHeaders 为 HTTP 标头定义策略。

path

字符串

路由器监视的路径,将流量路由到该服务的流量。选填

port

对象

RoutePort 定义从路由器到服务端点中的端点的端口映射。

subdomain

字符串

子域是在入口控制器的域(作为子域)中请求的 DNS 子域。如果设置 host,则忽略此字段。入口控制器可能会选择忽略这个建议的名称,在这种情况下,控制器会在 status.ingress 数组中报告分配的名称,或拒绝接受该路由。如果设置了这个值,且服务器不支持此字段,主机则会自动填充。否则主机将留空。该字段可能有多个以点分开的部分,但并非所有入口控制器都遵守请求。创建后无法更改此字段,但具有更新路由/自定义主机权限的用户除外。

示例:子域 frontend 会自动接收路由器子域 apps.mycluster.com,以获得完整的主机名 frontend.apps.mycluster.com

tls

对象

TLSConfig 定义用于保护路由并提供终止的配置

对象

RouteTargetReference 指定解析为端点的目标。只允许 'Service' kind。使用"weight"字段加重其他字段。

wildcardPolicy

字符串

用于路由的通配符策略。目前只允许 'Subdomain' 或 'None'。

29.1.2. .spec.alternateBackends

描述
alternateBackends 允许最多 3 个额外的后端分配给路由。只允许 Service kind,它将默认为 Service。使用 RouteTargetReference 对象中的 weight 字段指定相对的首选项。
类型
array

29.1.3. .spec.alternateBackends[]

描述
RouteTargetReference 指定解析为端点的目标。只允许 'Service' kind。使用"weight"字段加重其他字段。
类型
object
必填
  • kind
  • name
Expand
属性类型描述

kind

字符串

路由引用的目标种类。目前,只允许 'Service'

name

字符串

要引用的服务/目标的名称,如服务的名称

weight

整数

weight 作为 0 到 256 之间的整数,默认 100 指定针对其他目标引用对象的目标相对权重。0 会阻止请求进入此后端。

29.1.4. .spec.httpHeaders

描述
RouteHTTPHeaders 为 HTTP 标头定义策略。
类型
object
Expand
属性类型描述

操作

object

RouteHTTPHeaderActions 定义 HTTP 请求和响应标头的操作配置。

29.1.5. .spec.httpHeaders.actions

描述
RouteHTTPHeaderActions 定义 HTTP 请求和响应标头的操作配置。
类型
object
Expand
属性类型描述

Request (请求)

数组

request 是要修改的 HTTP 请求标头列表。目前,操作可以定义为 SetDelete 标头值。此处定义的操作将修改通过路由发出的所有请求的请求标头。这些操作应用于集群内定义的特定路由,例如通过路由进行的连接。目前,操作可以定义为 SetDelete 标头值。路由操作将在请求标头的 IngressController 操作后执行。操作按此列表中定义的序列应用。可以配置最多 20 个请求标头操作。您可以使用此字段指定在将连接从客户端转发到应用程序时应设置或删除的 HTTP 请求标头。允许的示例获取器为 "req.hdr" 和 "ssl_c_der"。允许的转换器是 "lower" 和 "base64"。标头值示例:"%[req.hdr (X-target),lower]", "%{+Q}[ssl_c_der,base64]"。使用此 API 直接通过 Route 资源应用的任何请求标头配置都会覆盖通过 IngressController 或路由注解上 spec.httpHeaders.actions 应用的名称相同的标头配置。注: 如果您的路由使用 TLS 透传,则无法使用此字段。

request[]

object

RouteHTTPHeader 指定设置或删除 HTTP 标头的配置。

响应

数组

response 是要修改的 HTTP 响应标头列表。目前,操作可以定义为 SetDelete 标头值。此处定义的操作将修改通过路由发出的所有请求的响应标头。这些操作应用于集群内定义的特定路由,例如通过路由进行的连接。路由操作将在响应标头的 IngressController 操作之前执行。操作按此列表中定义的序列应用。可以配置最多 20 个响应标头操作。您可以使用此字段指定在将应用程序中的响应转发到客户端时应设置或删除的 HTTP 响应标头。允许的示例 fetchers 是 "res.hdr" 和 "ssl_c_der"。允许的转换器是 "lower" 和 "base64"。示例标题值:"%[res.hdr (X-target),lower]", "%{+Q}[ssl_c_der,base64]"。注: 如果您的路由使用 TLS 透传,则无法使用此字段。

response[]

object

RouteHTTPHeader 指定设置或删除 HTTP 标头的配置。

29.1.6. .spec.httpHeaders.actions.request

描述
request 是要修改的 HTTP 请求标头列表。目前,操作可以定义为 SetDelete 标头值。此处定义的操作将修改通过路由发出的所有请求的请求标头。这些操作应用于集群内定义的特定路由,例如通过路由进行的连接。目前,操作可以定义为 SetDelete 标头值。路由操作将在请求标头的 IngressController 操作后执行。操作按此列表中定义的序列应用。可以配置最多 20 个请求标头操作。您可以使用此字段指定在将连接从客户端转发到应用程序时应设置或删除的 HTTP 请求标头。允许的示例获取器为 "req.hdr" 和 "ssl_c_der"。允许的转换器是 "lower" 和 "base64"。标头值示例:"%[req.hdr (X-target),lower]", "%{+Q}[ssl_c_der,base64]"。使用此 API 直接通过 Route 资源应用的任何请求标头配置都会覆盖通过 IngressController 或路由注解上 spec.httpHeaders.actions 应用的名称相同的标头配置。注: 如果您的路由使用 TLS 透传,则无法使用此字段。
类型
数组

29.1.7. .spec.httpHeaders.actions.request[]

描述
RouteHTTPHeader 指定设置或删除 HTTP 标头的配置。
类型
object
必填
  • name
  • action
Expand
属性类型描述

action

object

RouteHTTPHeaderActionUnion 指定对 HTTP 标头执行的操作。

name

string

name 指定要对其执行操作的标头名称。其值必须是 RFC 2616 第 4.2 部分中定义的有效 HTTP 标头名称。名称只能包含字母数字字符及以下特殊字符 "-!这个问题$%&'*+.^_'"。以下标头名称会被保留,可能无法通过此 API 修改: Strict-Transport-Security、Proxy、Cookie、Set-Cookie。它长度不得超过 255 个字符。标头名称必须是唯一的。

29.1.8. .spec.httpHeaders.actions.request[].action

描述
RouteHTTPHeaderActionUnion 指定对 HTTP 标头执行的操作。
类型
object
必填
  • type
Expand
属性类型描述

set

object

RouteSetHTTPHeader 指定在 HTTP 标头上需要设置什么值。

type

string

type 定义要在标头中应用的操作类型。可能的值有 Set 或 Delete。设置允许您设置 HTTP 请求和响应标头。通过删除,您可以删除 HTTP 请求和响应标头。

29.1.9. .spec.httpHeaders.actions.request[].action.set

描述
RouteSetHTTPHeader 指定在 HTTP 标头上需要设置什么值。
类型
object
必填
  • value
Expand
属性类型描述

value

string

value 指定标头值。可以添加动态值。该值将解释为 http://cbonte.github.io/haproxy-dconv/2.6/configuration.html#8.2.6 中定义的 HAProxy 格式字符串,并可能使用 HAProxy 的 %[] 语法,否则必须是 https://datatracker.ietf.org/doc/html/rfc7230#section-3.2 中定义的有效 HTTP 标头值。此字段的值长度不得超过 16384 个字符。请注意,在相互隔离动态值后,所有 net 添加标头的总大小不能超过 IngressController 上的 spec.tuningOptions.headerBufferMaxRewriteBytes 的值。

29.1.10. .spec.httpHeaders.actions.response

描述
response 是要修改的 HTTP 响应标头列表。目前,操作可以定义为 SetDelete 标头值。此处定义的操作将修改通过路由发出的所有请求的响应标头。这些操作应用于集群内定义的特定路由,例如通过路由进行的连接。路由操作将在响应标头的 IngressController 操作之前执行。操作按此列表中定义的序列应用。可以配置最多 20 个响应标头操作。您可以使用此字段指定在将应用程序中的响应转发到客户端时应设置或删除的 HTTP 响应标头。允许的示例 fetchers 是 "res.hdr" 和 "ssl_c_der"。允许的转换器是 "lower" 和 "base64"。示例标题值:"%[res.hdr (X-target),lower]", "%{+Q}[ssl_c_der,base64]"。注: 如果您的路由使用 TLS 透传,则无法使用此字段。
类型
数组

29.1.11. .spec.httpHeaders.actions.response[]

描述
RouteHTTPHeader 指定设置或删除 HTTP 标头的配置。
类型
object
必填
  • name
  • action
Expand
属性类型描述

action

object

RouteHTTPHeaderActionUnion 指定对 HTTP 标头执行的操作。

name

string

name 指定要对其执行操作的标头名称。其值必须是 RFC 2616 第 4.2 部分中定义的有效 HTTP 标头名称。名称只能包含字母数字字符及以下特殊字符 "-!这个问题$%&'*+.^_'"。以下标头名称会被保留,可能无法通过此 API 修改: Strict-Transport-Security、Proxy、Cookie、Set-Cookie。它长度不得超过 255 个字符。标头名称必须是唯一的。

29.1.12. .spec.httpHeaders.actions.response[].action

描述
RouteHTTPHeaderActionUnion 指定对 HTTP 标头执行的操作。
类型
object
必填
  • type
Expand
属性类型描述

set

object

RouteSetHTTPHeader 指定在 HTTP 标头上需要设置什么值。

type

string

type 定义要在标头中应用的操作类型。可能的值有 Set 或 Delete。设置允许您设置 HTTP 请求和响应标头。通过删除,您可以删除 HTTP 请求和响应标头。

29.1.13. .spec.httpHeaders.actions.response[].action.set

描述
RouteSetHTTPHeader 指定在 HTTP 标头上需要设置什么值。
类型
object
必填
  • value
Expand
属性类型描述

value

string

value 指定标头值。可以添加动态值。该值将解释为 http://cbonte.github.io/haproxy-dconv/2.6/configuration.html#8.2.6 中定义的 HAProxy 格式字符串,并可能使用 HAProxy 的 %[] 语法,否则必须是 https://datatracker.ietf.org/doc/html/rfc7230#section-3.2 中定义的有效 HTTP 标头值。此字段的值长度不得超过 16384 个字符。请注意,在相互隔离动态值后,所有 net 添加标头的总大小不能超过 IngressController 上的 spec.tuningOptions.headerBufferMaxRewriteBytes 的值。

29.1.14. .spec.port

描述
RoutePort 定义从路由器到服务端点中的端点的端口映射。
类型
object
必填
  • targetPort
Expand
属性类型描述

targetPort

IntOrString

此路由所指向的服务选择的 pod 上的目标端口。如果这是字符串,它会在目标端点端口列表中作为命名的端口进行查找。必填

29.1.15. .spec.tls

描述
TLSConfig 定义用于保护路由并提供终止的配置
类型
object
必填
  • termination
Expand
属性类型描述

caCertificate

字符串

caCertificate 提供证书颁发机构证书内容

certificate

字符串

证书提供证书内容。这应该是单一服务证书,而不是证书链。不要包括 CA 证书。

destinationCACertificate

字符串

destinationCACertificate 提供最终目的地的 ca 证书的内容。使用重新加密终止时,应提供此文件,以便让路由器将它用于安全连接上的健康检查。如果没有指定此字段,路由器可能会提供自己的目标 CA,并使用短服务名称(service.namespace.svc)执行主机名验证,它允许基础架构生成的证书自动验证。

externalCertificate

object

LocalObjectReference 包含足够信息,供您在同一命名空间中找到引用的对象。

insecureEdgeTerminationPolicy

字符串

insecureEdgeTerminationPolicy 表示路由不安全连接所需的行为。虽然每个路由器可能会对要公开的端口做出自己的决定,但通常这是端口 80。

如果路由没有指定 insecureEdgeTerminationPolicy,则默认行为是 "None"。

* allow - 流量发送到不安全端口中的服务器(仅限边缘/重新加密终止)。

* None - 在不安全的端口(默认)上不允许流量。

* Redirect - 客户端被重定向到安全端口。

key

字符串

密钥提供密钥文件内容

termination

字符串

termination 表示终止类型。

* edge - TLS 终止由路由器完成,http 用于与后端通信(默认)= 透传 - 在不提供 TLS 终止的路由器时直接发送到目的地,TLS 终止由路由器完成,https 用于与后端通信

注:passthrough 终止与 httpHeader 操作不兼容

29.1.16. .spec.tls.externalCertificate

描述
LocalObjectReference 包含足够信息,供您在同一命名空间中找到引用的对象。
类型
object
Expand
属性类型描述

name

字符串

引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

29.1.17. .spec.to

描述
RouteTargetReference 指定解析为端点的目标。只允许 'Service' kind。使用"weight"字段加重其他字段。
类型
object
必填
  • kind
  • name
Expand
属性类型描述

kind

字符串

路由引用的目标种类。目前,只允许 'Service'

name

字符串

要引用的服务/目标的名称,如服务的名称

weight

整数

weight 作为 0 到 256 之间的整数,默认 100 指定针对其他目标引用对象的目标相对权重。0 会阻止请求进入此后端。

29.1.18. .status

描述
RouteStatus 提供有关路由状态的相关信息,包括确认哪个路由器。
类型
object
Expand
属性类型描述

ingress

array

Ingress 描述了可公开路由的位置。ingress 点列表可能包含重复的主机或 RouterName 值。路由在就绪后被视为 Ready

ingress[]

对象

RouteIngress 包含有关公开路由的位置的信息。

29.1.19. .status.ingress

描述
Ingress 描述了可公开路由的位置。ingress 点列表可能包含重复的主机或 RouterName 值。路由在就绪后被视为 Ready
类型
array

29.1.20. .status.ingress[]

描述
RouteIngress 包含有关公开路由的位置的信息。
类型
object
Expand
属性类型描述

conditions

array

条件是路由的状态,可能为空。

conditions[]

对象

RouteIngressCondition 包含特定路由器上此路由的当前条件的详情。

主机

字符串

host 是公开路由的主机字符串;需要这个值

routerCanonicalHostname

字符串

CanonicalHostname 是路由器的外部主机名,可用作为此路由请求的主机的 CNAME。这个值是可选的,可能不会在所有情况下设置。

routerName

字符串

名称是路由器选择以标识自身的名称;需要这个值

wildcardPolicy

字符串

通配符策略是允许公开此路由的通配符策略。

29.1.21. .status.ingress[].conditions

描述
条件是路由的状态,可能为空。
类型
array

29.1.22. .status.ingress[].conditions[]

描述
RouteIngressCondition 包含特定路由器上此路由的当前条件的详情。
类型
object
必填
  • type
  • status
Expand
属性类型描述

lastTransitionTime

Time

当条件最后转换时的 RFC 3339 日期和时间

message

字符串

人类可读的消息,指示最后一次转换的详细信息。

reason

字符串

(简洁) 条件最后一次转换的原因,通常是机器和人类可读的常量。

status

字符串

status 是条件的状态。可以是 True, False, Unknown。

type

字符串

type 是条件的类型。目前只有 Admitted 或 UnservableInFutureVersions。

29.2. API 端点

可用的 API 端点如下:

  • /apis/route.openshift.io/v1/routes

    • GET :列出或监视类型为 Route 的对象
  • /apis/route.openshift.io/v1/watch/routes

    • GET: 观察单个对 Route 列表的更改。已弃用:改为使用 'watch' 参数以及列表操作。
  • /apis/route.openshift.io/v1/namespaces/{namespace}/routes

    • DELETE :删除路由的集合
    • GET :列出或监视类型为 Route 的对象
    • POST :创建路由
  • /apis/route.openshift.io/v1/watch/namespaces/{namespace}/routes

    • GET: 观察单个对 Route 列表的更改。已弃用:改为使用 'watch' 参数以及列表操作。
  • /apis/route.openshift.io/v1/namespaces/{namespace}/routes/{name}

    • DELETE :删除路由
    • GET :读指定的路由
    • PATCH :部分更新指定的路由
    • PUT :替换指定的路由
  • /apis/route.openshift.io/v1/watch/namespaces/{namespace}/routes/{name}

    • GET: 观察对类型为 Route 的对象的更改。已弃用:使用带列表操作的 'watch' 参数,而是过滤到带有 'fieldSelector' 参数的单个项目。
  • /apis/route.openshift.io/v1/namespaces/{namespace}/routes/{name}/status

    • GET :指定 Route 的读取状态
    • PATCH :部分更新指定路由的状态
    • PUT :替换指定路由的状态

29.2.1. /apis/route.openshift.io/v1/routes

HTTP 方法
GET
描述
列出或监视类型为 Route 的对象
Expand
表 29.1. HTTP 响应
HTTP 代码响应正文

200 - OK

RouteList 模式

401 - Unauthorized

29.2.2. /apis/route.openshift.io/v1/watch/routes

HTTP 方法
GET
描述
观察单个对 Route 列表的更改。已弃用:改为使用 'watch' 参数和列表操作。
Expand
表 29.2. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除路由集合
Expand
表 29.3. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 29.4. HTTP 响应
HTTP 代码响应正文

200 - OK

Status_v7 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出或监视类型为 Route 的对象
Expand
表 29.5. HTTP 响应
HTTP 代码响应正文

200 - OK

RouteList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建路由
Expand
表 29.6. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 29.7. 主体参数
参数类型描述

正文(body)

Route 模式

 
Expand
表 29.8. HTTP 响应
HTTP 代码响应正文

200 - OK

Route 模式

201 - Created

Route 模式

202 - Accepted

Route 模式

401 - Unauthorized

HTTP 方法
GET
描述
观察单个对 Route 列表的更改。已弃用:改为使用 'watch' 参数和列表操作。
Expand
表 29.9. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

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

name

字符串

路由的名称

HTTP 方法
DELETE
描述
删除路由
Expand
表 29.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 29.12. HTTP 响应
HTTP 代码响应正文

200 - OK

Status_v7 模式

202 - Accepted

Status_v7 模式

401 - Unauthorized

HTTP 方法
GET
描述
读取指定的路由
Expand
表 29.13. HTTP 响应
HTTP 代码响应正文

200 - OK

Route 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的路由
Expand
表 29.14. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 29.15. HTTP 响应
HTTP 代码响应正文

200 - OK

Route 模式

201 - Created

Route 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的路由
Expand
表 29.16. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 29.17. 主体参数
参数类型描述

正文(body)

Route 模式

 
Expand
表 29.18. HTTP 响应
HTTP 代码响应正文

200 - OK

Route 模式

201 - Created

Route 模式

401 - Unauthorized

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

name

字符串

路由的名称

HTTP 方法
GET
描述
观察对类型为 Route 的对象的更改。已弃用:使用带有列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
Expand
表 29.20. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

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

name

字符串

路由的名称

HTTP 方法
GET
描述
指定 Route 的读取状态
Expand
表 29.22. HTTP 响应
HTTP 代码响应正文

200 - OK

Route 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定路由的状态
Expand
表 29.23. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 29.24. HTTP 响应
HTTP 代码响应正文

200 - OK

Route 模式

201 - Created

Route 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 Route 的状态
Expand
表 29.25. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 29.26. 主体参数
参数类型描述

正文(body)

Route 模式

 
Expand
表 29.27. HTTP 响应
HTTP 代码响应正文

200 - OK

Route 模式

201 - Created

Route 模式

401 - Unauthorized

第 30 章 Service [v1]

描述
服务是一个由代理侦听的本地端口(如 mysql)组成的、指定软件服务的抽象概念,以及决定哪些 Pod 将通过代理发送的请求的选择器。
类型
object

30.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

对象

ServiceSpec 描述了用户在服务上创建的属性。

status

对象

ServiceStatus 代表服务的当前状态。

30.1.1. .spec

描述
ServiceSpec 描述了用户在服务上创建的属性。
类型
object
Expand
属性类型描述

allocateLoadBalancerNodePorts

布尔值

allocateLoadBalancerNodePorts 定义是否为类型为 LoadBalancer 的服务自动分配 NodePort。默认值为 "true"。如果集群负载均衡器不依赖于 NodePort,则可能会将其设置为 "false"。如果调用者请求特定的 NodePort (通过指定值),无论此字段如何,将遵守这些请求。此字段只能为类型为 LoadBalancer 的服务设置,并在类型改为任何其他类型时清除。

clusterIP

字符串

ClusterIP 是服务的 IP 地址,通常随机分配。如果手动指定地址,处于范围形式(如每个系统配置一样),但没有使用,则会将其分配给该服务;否则创建服务将失败。此字段不能通过更新来更改,除非类型字段也更改为 ExternalName (要求此字段为空白),或者 type 字段从 ExternalName 更改(在这种情况下,可以选择性地指定此字段,如上述描述)。有效值为 "None", 空字符串("")或一个有效的 IP 地址。把它设置为 "None" make a "headless service" (没有虚拟 IP),当不需要直接端点连接且不需要代理时,这很有用。仅适用于类型 ClusterIP、NodePort 和 LoadBalancer。如果在创建类型为 ExternalName 的 Service 时指定了此字段,则创建将失败。当将 Service 更新为类型为 ExternalName 时,此字段将擦除。更多信息: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

clusterIPs

数组(字符串)

clusterIPs 是分配给此服务的 IP 地址列表,通常是随机分配的。如果手动指定地址,处于范围形式(如每个系统配置一样),但没有使用,则会将其分配给该服务;否则创建服务将失败。此字段不能通过更新来更改,除非类型字段也更改为 ExternalName (要求此字段为空),或者 type 字段从 ExternalName 更改(在这种情况下,可以选择性地指定此字段,如上述描述)。有效值为 "None", 空字符串("")或一个有效的 IP 地址。把它设置为 "None" make a "headless service" (没有虚拟 IP),当不需要直接端点连接且不需要代理时,这很有用。仅适用于类型 ClusterIP、NodePort 和 LoadBalancer。如果在创建类型为 ExternalName 的 Service 时指定了此字段,则创建将失败。当将 Service 更新为类型为 ExternalName 时,此字段将擦除。如果没有指定此字段,它将从 clusterIP 字段初始化。如果指定了此字段,客户端必须确保 clusterIPs[0] 和 clusterIP 的值相同。

此字段最多可保留两个条目(双堆栈 IP,以任一顺序)。这些 IP 必须与 ipFamilies 字段的值对应。clusterIPs 和 ipFamilies 都由 ipFamilyPolicy 字段管理。更多信息: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

externalIPs

数组(字符串)

externalIPs 是集群中节点也接受此服务的流量的 IP 地址列表。这些 IP 不由 Kubernetes 管理。用户负责确保流量到达具有此 IP 的节点。一个常见的例子是不是 Kubernetes 系统一部分的外部负载均衡器。

externalName

字符串

ExternalName 是外部引用,发现机制将返回为该服务的别名(例如,DNS CNAME 记录)。不涉及代理。必须是小写 RFC-1123 主机名(https://tools.ietf.org/html/rfc1123),且需要 类型为 "ExternalName"。

externalTrafficPolicy

string

ExternalTrafficPolicy 描述了节点如何在其中一个服务"面向服务的"外部"地址(NodePort、ExternalIP 和 LoadBalancer IP)上接收服务流量。如果设置为"本地",代理将以一种方式配置服务,假设外部负载均衡器负责在节点间平衡服务流量,因此每个节点只会向服务的本地端点发送流量,而不伪装客户端源 IP。(流量错误地发送到没有端点的节点。)默认值 "Cluster" 使用了平均路由到所有端点的标准行为(可能是根据拓扑和其他功能修改)。请注意,从集群内部发送到外部 IP 或 LoadBalancer IP 的流量将始终获得"集群"语义,但从集群中发送到 NodePort 的客户端可能需要在选择节点时考虑流量策略。

可能枚举值: - "Cluster" 将流量路由到所有端点。- "Local" 通过仅路由到与接收流量相同的节点上的端点(如果没有本地端点,则保留流量)。

healthCheckNodePort

整数

HealthCheckNodePort 为服务指定健康检查 nodePort。这仅在将 type 设置为 LoadBalancer 并且 externalTrafficPolicy 设置为 Local 时才适用。如果指定了值,为 in-range,但没有在使用中,它将被使用。如果没有指定,则会自动分配值。外部系统(如负载均衡器)可以使用此端口来确定给定节点是否包含此服务的端点。如果在创建不需要的 Service 时指定了此字段,则创建将失败。当更新 Service 时,将擦除此字段,使其不再需要(例如更改类型)。设置后,不能更新此字段。

internalTrafficPolicy

string

internalTrafficPolicy 描述了节点如何分发它们在 ClusterIP 上接收的服务流量。如果设置为 "Local",代理将假定 pod 只想与与 pod 相同的节点上与服务端点通信,如果没有本地端点,则丢弃流量。默认值 "Cluster" 使用了平均路由到所有端点的标准行为(可能是根据拓扑和其他功能修改)。

可能枚举值: - "Cluster" 将流量路由到所有端点。- "Local" 将流量路由到与客户端 pod 相同的节点上的端点(如果没有本地端点,则丢弃流量)。

ipFamilies

数组(字符串)

ipFamilies 是分配给此服务的 IP 系列(如 IPv4、IPv6)的列表。通常会根据集群配置和 ipFamilyPolicy 字段自动分配此字段。如果手动指定此字段,则集群中提供了请求的系列,并且 ipFamilyPolicy 允许它,否则创建服务将失败。此字段有条件性 :它允许添加或删除二级 IP 系列,但它不允许更改服务的主 IP 系列。有效值为 "IPv4" 和 "IPv6"。此字段只适用于 ClusterIP、NodePort 和 LoadBalancer 类型的服务,并适用于 "headless" 服务。当将 Service 更新为类型为 ExternalName 时,此字段将擦除。

此字段最多可保留两个条目(以任一顺序排列的双栈系列)。如果指定,这些系列必须与 clusterIPs 字段的值对应。clusterIPs 和 ipFamilies 都由 ipFamilyPolicy 字段管理。

ipFamilyPolicy

string

ipFamilyPolicy 代表此 Service 请求或所需的双栈。如果没有提供值,则此字段将设置为 SingleStack。服务可以是"SingleStack" (单一 IP 系列)、"PreferDualStack" (在双栈配置的集群或单堆栈群集上的单个 IP 系列)或"RequireDualStack" (双堆栈配置群集的两个 IP 系列),否则失败。ipFamilies 和 clusterIPs 字段取决于此字段的值。当将服务更新为类型为 ExternalName 时,将擦除此字段。

可能枚举值:- "PreferDualStack" 表示在为双栈配置集群时,该服务首选双栈。如果没有为双栈配置集群,则会为服务分配单个 IPFamily。如果没有在 service.spec.ipFamilies 中设置 IPFamily,则会为该服务分配集群中配置的默认 IPFamily - "RequireDualStack" 表示该服务需要 dual-stack。在单一堆栈集群中使用 IPFamilyPolicyRequireDualStack 将导致验证错误。分配给该服务的 IPFamilies (及其顺序)基于 service.spec.ipFamilies。如果没有提供 service.spec.ipFamilies,则会根据它们在集群中配置的方式进行分配。如果 service.spec.ipFamilies 只有一个条目,则 apiserver - "SingleStack" 将添加备用 IPFamily 表示该服务需要有一个 IPFamily。分配的 IPFamily 基于集群使用的默认 IPFamily,或者由 service.spec.ipFamilies 字段标识

loadBalancerClass

字符串

loadBalancerClass 是此服务所属的负载均衡器实现的类。如果指定,此字段的值必须是标签式标识符,带有可选前缀,如 "internal-vip" 或 "example.com/internal-vip"。Unprefixed name 为最终用户保留。只有在 Service type 为 'LoadBalancer' 时,才能设置此字段。如果没有设置,则使用默认负载均衡器实施,现在这通常通过云供应商集成来实现,但应该适用于任何默认的实施。如果设置,则会假定负载均衡器实现正在监视具有匹配类的服务。任何默认的负载均衡器实现(如云供应商)都应忽略设置此字段的服务。此字段只能在创建或更新 Service 以键入"LoadBalancer"时设置。设置后,无法更改它。当服务更新为非"LoadBalancer"类型时,将擦除此字段。

loadBalancerIP

string

只适用于 Service Type: LoadBalancer。此功能取决于创建负载均衡器时是否支持指定 loadBalancerIP 底层的 cloud-provider。如果 cloud-provider 不支持该功能,则此字段将被忽略。弃用:此字段是指定的,其含义因实现而异。使用它不可移植,可能不支持双栈。我们鼓励用户在可用时使用特定于实施的注解。

loadBalancerSourceRanges

数组(字符串)

如果平台指定和支持,这将限制通过 cloud-provider 负载平衡器的流量将限制为指定的客户端 IP。如果 cloud-provider 不支持该功能,则此字段将被忽略。更多信息: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/

ports

array

此服务公开的端口列表。更多信息: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

ports[]

对象

servicePort 包含服务端口的信息。

publishNotReadyAddresses

布尔值

publishNotReadyAddresses 表示处理此服务端点的任何代理,应忽略任何就绪/未就绪的指示。设置此字段的主要用例是 StatefulSet 的无标头服务,用于其 Pod 的 SRV DNS 记录,用于对等发现。为服务生成 Endpoints 和 EndpointSlice 资源的 Kubernetes 控制器会解释它,这意味着即使 Pod 本身没有,所有端点都被视为"就绪"。只有通过 Endpoints 或 EndpointSlice 资源消耗 Kubernetes 生成的端点的代理可以安全地假设此行为。

selector

对象(字符串)

使用与此选择器匹配的标签键和值将服务流量路由到 pod。如果为空或不存在,则假定服务具有管理其端点的外部进程,Kubernetes 将不会被修改。仅适用于类型 ClusterIP、NodePort 和 LoadBalancer。如果 type 是 ExternalName,则忽略。更多信息: https://kubernetes.io/docs/concepts/services-networking/service/

sessionAffinity

字符串

支持"ClientIP"和"None"。用于维护会话关联。启用基于客户端 IP 的会话关联性。必须是 ClientIP 或 None。默认值为 None。更多信息: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

可能枚举值: - "ClientIP" 是基于客户端 IP。- "None" - no session affinity.

sessionAffinityConfig

对象

sessionAffinityConfig 代表会话关联性的配置。

trafficDistribution

string

TrafficDistribution 提供了一种方式,用于表达流量如何分发到服务端点的首选项。实现可以使用此字段作为提示,但不一定要保证严格遵循。如果没有设置字段,实施将应用其默认路由策略。如果设置为 "PreferClose",则实现应优先排序地关闭端点(例如,同一区域)。这是一个 beta 字段,需要启用 ServiceTrafficDistribution 功能。

type

字符串

Type 决定 Service 的公开方式。默认为 ClusterIP。有效选项包括 ExternalName、ClusterIP、NodePort 和 LoadBalancer。"ClusterIP"分配集群内部 IP 地址,以负载平衡到端点。端点由选择器决定,或者未指定,或者通过手动构建 Endpoints 对象或 EndpointSlice 对象来决定。如果 clusterIP 是"None",则不会分配虚拟 IP,端点作为一组端点发布,而不是虚拟 IP。"NodePort"基于 ClusterIP 构建,并在每个节点上分配一个端口,它们路由到与 clusterIP 相同的端点。"LoadBalancer"在 NodePort 上构建,并创建一个外部负载均衡器(如果当前云支持),它将路由到与 clusterIP 相同的端点。"ExternalName"将该服务别名到指定的 externalName 中。几个其他字段不适用于 ExternalName 服务。更多信息: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types

可能枚举值: - "ClusterIP" 表示只能通过集群 IP 在集群中访问服务。- "ExternalName" 表示服务仅由 kubedns 或等外部名称组成,它没有公开或代理涉及的任何 pod。- "LoadBalancer" 表示服务仅通过外部负载均衡器(如果云供应商支持)公开或代理。除了 'NodePort' 类型外,- "NodePort " 意味着除 'ClusterIP' 类型外,服务还会在每个节点的一个端口上公开。

30.1.2. .spec.ports

描述
此服务公开的端口列表。更多信息: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
类型
array

30.1.3. .spec.ports[]

描述
servicePort 包含服务端口的信息。
类型
object
必填
  • port
Expand
属性类型描述

appProtocol

字符串

此端口的应用程序协议。这用作实现的提示,以便为它们理解的协议提供更丰富的行为。此字段遵循标准 Kubernetes 标签语法。有效值为:

* 未前缀的协议名称 - 为 IANA 标准服务名称保留(如 RFC-6335 和 https://www.iana.org/assignments/service-names)。

* Kubernetes-defined prefixed name: * 'kubernetes.io/h2c' - HTTP/2 before knowledge overtext as https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- * 'kubernetes.io/ws' - WebSocket over cleartext,如 https://www.rfc-editor.org/rfc/rfc6455 * 'kubernetes.io/wss' - WebSocket over TLS 所述

* 其他协议应使用定义实施的前缀名称,如 mycompany.com/my-custom-protocol。

name

字符串

此端口在服务内的名称。这必须是 DNS_LABEL。ServiceSpec 中的所有端口都必须具有唯一的名称。在考虑服务的端点时,这必须与 EndpointPort 中的 'name' 字段匹配。如果在这个服务中只定义了一个 ServicePort。

nodePort

整数

当类型为 NodePort 或 LoadBalancer 时,此服务在其上公开的每个节点上的端口。通常由系统分配。如果指定了值( in-range),并且不使用它,则会使用它,否则操作将失败。如果没有指定,如果此服务需要端口,则会分配端口。如果在创建不需要的 Service 时指定了此字段,则创建将失败。当将 Service 更新为不再需要时(例如,将类型从 NodePort 更改为 ClusterIP),将擦除此字段。更多信息: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport

port

整数

此服务将由此服务公开的端口。

protocol

字符串

此端口的 IP 协议。支持"TCP"、"UDP"和"SCTP"。默认为 TCP。

可能枚举值: - "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

targetPort

IntOrString

在服务目标的 pod 上访问的端口数量或名称。number 必须在 1 到 65535 之间。名称必须是 IANA_SVC_NAME。如果这是字符串,它将在目标 Pod 的容器端口中查找为命名的端口。如果没有指定,则使用 'port' 字段的值(身份映射)。对于带有 clusterIP=None 的服务,会忽略此字段,并应省略或设置为 'port' 字段。更多信息: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service

30.1.4. .spec.sessionAffinityConfig

描述
sessionAffinityConfig 代表会话关联性的配置。
类型
object
Expand
属性类型描述

clientIP

对象

ClientIPConfig 代表基于客户端 IP 的会话关联性的配置。

30.1.5. .spec.sessionAffinityConfig.clientIP

描述
ClientIPConfig 代表基于客户端 IP 的会话关联性的配置。
类型
object
Expand
属性类型描述

timeoutSeconds

整数

timeoutSeconds 指定 ClientIP 类型粘性时间的秒数。如果 ServiceAffinity == "ClientIP",则该值必须是 >0 && wagon86400 (1 天)。默认值为 10800 (3 小时)。

30.1.6. .status

描述
ServiceStatus 代表服务的当前状态。
类型
object
Expand
属性类型描述

conditions

数组(条件)

当前服务状态

loadBalancer

对象

LoadBalancerStatus 代表负载均衡器的状态。

30.1.7. .status.loadBalancer

描述
LoadBalancerStatus 代表负载均衡器的状态。
类型
object
Expand
属性类型描述

ingress

array

Ingress 是一个包含负载均衡器的入口点的列表。为服务预期的流量应发送到这些入口点。

ingress[]

对象

LoadBalancerIngress 代表负载均衡器入口点的状态:服务预期的流量应发送到入口点。

30.1.8. .status.loadBalancer.ingress

描述
Ingress 是一个包含负载均衡器的入口点的列表。为服务预期的流量应发送到这些入口点。
类型
array

30.1.9. .status.loadBalancer.ingress[]

描述
LoadBalancerIngress 代表负载均衡器入口点的状态:服务预期的流量应发送到入口点。
类型
object
Expand
属性类型描述

hostname

字符串

为基于 DNS 的负载均衡器入口点设置 hostname (通常是 AWS 负载均衡器)

ip

字符串

为基于 IP (通常是 GCE 或 OpenStack 负载平衡器)的负载均衡器入站点设置 IP

ipMode

string

ipMode 指定负载均衡器 IP 的行为方式,只能在指定 ip 字段时指定。把它设置为 "VIP" 表示将目的地设置为负载均衡器的 IP 和端口到节点的流量。把它设置为 "Proxy" 表示流量传送到节点或 pod,目的地设置为节点的 IP 和节点端口或 pod 的 IP 和端口。服务实施可能会使用此信息来调整流量路由。

ports

array

ports 是服务端口的记录列表(如果使用),服务中定义的每个端口都应该在其中有一个条目

ports[]

object

PortStatus 代表服务端口的错误条件

30.1.10. .status.loadBalancer.ingress[].ports

描述
ports 是服务端口的记录列表(如果使用),服务中定义的每个端口都应该在其中有一个条目
类型
array

30.1.11. .status.loadBalancer.ingress[].ports[]

描述
PortStatus 代表服务端口的错误条件
类型
object
必填
  • port
  • protocol
Expand
属性类型描述

错误

字符串

错误是记录服务端口的问题。错误的格式应遵循以下规则: - 内置错误值应该在此文件中指定,而那些应该使用 CamelCase 名称 - 云供应商特定错误值必须具有符合 foo.example.com/CamelCase 格式的名称。

port

整数

port 是记录状态的服务端口的端口号

protocol

字符串

protocol 是服务端口的协议,此处记录状态,支持的值有: "TCP", "UDP", "SCTP"

可能枚举值: - "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

30.2. API 端点

可用的 API 端点如下:

  • /api/v1/services

    • GET :列出或监视类型为 Service 的对象
  • /api/v1/watch/services

    • GET: 观察单个对服务列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
  • /api/v1/namespaces/{namespace}/services

    • DELETE :删除服务集合
    • GET :列出或监视类型为 Service 的对象
    • POST :创建服务
  • /api/v1/watch/namespaces/{namespace}/services

    • GET: 观察单个对服务列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
  • /api/v1/namespaces/{namespace}/services/{name}

    • DELETE :删除服务
    • GET :读取指定的服务
    • PATCH: 部分更新指定的服务
    • PUT :替换指定的服务
  • /api/v1/watch/namespaces/{namespace}/services/{name}

    • GET: 观察对类型为 Service 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
  • /api/v1/namespaces/{namespace}/services/{name}/status

    • GET :指定服务的读取状态
    • PATCH: 部分更新指定服务的状态
    • PUT :替换指定服务的状态

30.2.1. /api/v1/services

HTTP 方法
GET
描述
列出或监视类型为 Service 的对象
Expand
表 30.1. HTTP 响应
HTTP 代码响应正文

200 - OK

ServiceList 模式

401 - Unauthorized

30.2.2. /api/v1/watch/services

HTTP 方法
GET
描述
观察单个对服务列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
Expand
表 30.2. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

30.2.3. /api/v1/namespaces/{namespace}/services

HTTP 方法
DELETE
描述
删除服务集合
Expand
表 30.3. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 30.4. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出或监视类型为 Service 的对象
Expand
表 30.5. HTTP 响应
HTTP 代码响应正文

200 - OK

ServiceList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建服务
Expand
表 30.6. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 30.7. 主体参数
参数类型描述

正文(body)

Service 模式

 
Expand
表 30.8. HTTP 响应
HTTP 代码响应正文

200 - OK

Service 模式

201 - Created

Service 模式

202 - Accepted

Service 模式

401 - Unauthorized

30.2.4. /api/v1/watch/namespaces/{namespace}/services

HTTP 方法
GET
描述
观察单个对服务列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
Expand
表 30.9. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

30.2.5. /api/v1/namespaces/{namespace}/services/{name}

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

name

字符串

Service 的名称

HTTP 方法
DELETE
描述
删除服务
Expand
表 30.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 30.12. HTTP 响应
HTTP 代码响应正文

200 - OK

Service 模式

202 - Accepted

Service 模式

401 - Unauthorized

HTTP 方法
GET
描述
读取指定的服务
Expand
表 30.13. HTTP 响应
HTTP 代码响应正文

200 - OK

Service 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的服务
Expand
表 30.14. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 30.15. HTTP 响应
HTTP 代码响应正文

200 - OK

Service 模式

201 - Created

Service 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的服务
Expand
表 30.16. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 30.17. 主体参数
参数类型描述

正文(body)

Service 模式

 
Expand
表 30.18. HTTP 响应
HTTP 代码响应正文

200 - OK

Service 模式

201 - Created

Service 模式

401 - Unauthorized

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

name

字符串

Service 的名称

HTTP 方法
GET
描述
观察对类型为 Service 的对象的更改。已弃用:使用带有列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
Expand
表 30.20. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

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

name

字符串

Service 的名称

HTTP 方法
GET
描述
指定服务的读取状态
Expand
表 30.22. HTTP 响应
HTTP 代码响应正文

200 - OK

Service 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定服务的状态
Expand
表 30.23. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 30.24. HTTP 响应
HTTP 代码响应正文

200 - OK

Service 模式

201 - Created

Service 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定服务的状态
Expand
表 30.25. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 30.26. 主体参数
参数类型描述

正文(body)

Service 模式

 
Expand
表 30.27. HTTP 响应
HTTP 代码响应正文

200 - OK

Service 模式

201 - Created

Service 模式

401 - Unauthorized

第 31 章 UserDefinedNetwork [k8s.ovn.org/v1]

描述
UserDefinedNetwork 描述 Namespace 的网络请求。
类型
object
必填
  • spec

31.1. 规格

Expand
属性类型描述

apiVersion

string

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

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

UserDefinedNetworkSpec 定义 UserDefinedNetworkSpec 的所需状态。

status

object

UserDefinedNetworkStatus 包含 UserDefinedNetwork 的观察状态。

31.1.1. .spec

描述
UserDefinedNetworkSpec 定义 UserDefinedNetworkSpec 的所需状态。
类型
object
必填
  • topology
Expand
属性类型描述

layer2

object

Layer2 是 Layer2 拓扑配置。

layer3

object

Layer3 是 Layer3 拓扑配置。

topology

string

拓扑描述了网络配置。

允许的值是 "Layer3", "Layer2"。Layer3 拓扑会为每个节点创建一个第 2 层段,各自有不同的子网。第 3 层路由用于互连节点子网。Layer2 拓扑创建一个供所有节点共享的逻辑交换机。

31.1.2. .spec.layer2

描述
Layer2 是 Layer2 拓扑配置。
类型
object
必填
  • role
Expand
属性类型描述

ipam

object

IPAM 部分包含与网络相关的 IPAM 配置。

joinSubnets

数组(字符串)

JoinSubnets 在 OVN 网络拓扑中使用。

双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。此字段仅允许"Primary"网络。不建议在不明确需要和了解 OVN 网络拓扑的情况下设置此字段。省略时,平台将选择一个合理的默认值,该默认值可能会随时间变化。

mtu

整数

MTU 是网络的最大传输单元。如果没有提供 MTU,则 OVN-Kubernetes 中全局配置的值(默认为 1400)用于网络。

role

string

Role 描述了 pod 中的 network 角色。

允许的值是 "Secondary"。二级网络只分配给使用 k8s.v1.cni.cncf.io/networks 注解来选择给定网络的 pod。

subnets

数组(字符串)

子网用于集群中的 pod 网络。双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。

格式应该与标准 CIDR 表示法匹配(例如 "10.128.0.0/16")。如果 ipam.modeDisabled,则必须省略此字段。

31.1.3. .spec.layer2.ipam

描述
IPAM 部分包含与网络相关的 IPAM 配置。
类型
object
Expand
属性类型描述

生命周期

string

生命周期控制 IP 地址管理生命周期。

唯一允许的值是 Persistent。设置后,OVN Kubernetes 分配的 IP 地址将保留在 ipamclaims.k8s.cni.cncf.io 对象中。如果请求,其他 pod 将重复使用这些 IP 地址。仅在 启用 模式时支持。

模式

string

模式 控制 OVN 管理 IP 配置的数量。启用 意味着 OVN-Kubernetes 会将 IP 配置应用到 SDN 基础架构,它还会将 IP 从所选子网分配给单个 pod。禁用 意味着 OVN-Kubernetes 将只分配 MAC 地址并提供第 2 层通信,允许用户为 pod 配置 IP 地址。disabled 仅适用于二级网络。禁用 IPAM 后,任何依赖于 IP 选择 pod 的 Kubernetes 功能将不再起作用(如网络策略、服务等)。此外,附加到这个网络的接口也会禁用 IP 端口安全性。默认为 已启用

31.1.4. .spec.layer3

描述
Layer3 是 Layer3 拓扑配置。
类型
object
必填
  • role
  • subnets
Expand
属性类型描述

joinSubnets

数组(字符串)

JoinSubnets 在 OVN 网络拓扑中使用。

双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。此字段仅允许"Primary"网络。不建议在不明确需要和了解 OVN 网络拓扑的情况下设置此字段。省略时,平台将选择一个合理的默认值,该默认值可能会随时间变化。

mtu

整数

MTU 是网络的最大传输单元。

如果没有提供 MTU,则 OVN-Kubernetes 中全局配置的值(默认为 1400)用于网络。

role

string

Role 描述了 pod 中的 network 角色。

允许的值是 "Primary" 和 "Secondary"。主网络会自动分配给在同一命名空间中创建的每个 pod。二级网络只分配给使用 k8s.v1.cni.cncf.io/networks 注解来选择给定网络的 pod。

subnets

数组

子网用于集群中的 pod 网络。

双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。给定子网被分成较小的子网。

subnets[]

object

 

31.1.5. .spec.layer3.subnets

描述

子网用于集群中的 pod 网络。

双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。给定子网被分成较小的子网。

类型
数组

31.1.6. .spec.layer3.subnets[]

描述
类型
object
必填
  • cidr
Expand
属性类型描述

cidr

string

CIDR 指定 L3Subnet,每个节点被分成较小的子网。

hostSubnet

整数

HostSubnet 指定每个节点的子网大小。

如果没有设置,则会自动分配。

31.1.7. .status

描述
UserDefinedNetworkStatus 包含 UserDefinedNetwork 的观察状态。
类型
object
Expand
属性类型描述

conditions

array

 

conditions[]

object

condition 包含此 API 资源当前状态的一个方面的详细信息。

31.1.8. .status.conditions

描述
类型
array

31.1.9. .status.conditions[]

描述
condition 包含此 API 资源当前状态的一个方面的详细信息。
类型
object
必填
  • lastTransitionTime
  • message
  • reason
  • status
  • type
Expand
属性类型描述

lastTransitionTime

字符串

lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。

message

字符串

Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。

observedGeneration

整数

observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。

reason

字符串

reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。

status

字符串

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

type

字符串

CamelCase 或 foo.example.com/CamelCase 中的条件类型。

31.2. API 端点

可用的 API 端点如下:

  • /apis/k8s.ovn.org/v1/userdefinednetworks

    • GET: 列出类型为 UserDefinedNetwork 的对象
  • /apis/k8s.ovn.org/v1/namespaces/{namespace}/userdefinednetworks

    • DELETE :删除 UserDefinedNetwork 集合
    • GET: 列出类型为 UserDefinedNetwork 的对象
    • POST :创建 UserDefinedNetwork
  • /apis/k8s.ovn.org/v1/namespaces/{namespace}/userdefinednetworks/{name}

    • DELETE :删除 UserDefinedNetwork
    • GET :读取指定的 UserDefinedNetwork
    • PATCH: 部分更新指定的 UserDefinedNetwork
    • PUT :替换指定的 UserDefinedNetwork
  • /apis/k8s.ovn.org/v1/namespaces/{namespace}/userdefinednetworks/{name}/status

    • GET :指定 UserDefinedNetwork 的读取状态
    • PATCH: 部分更新指定 UserDefinedNetwork 的状态
    • PUT :替换指定 UserDefinedNetwork 的状态

31.2.1. /apis/k8s.ovn.org/v1/userdefinednetworks

HTTP 方法
GET
描述
列出 UserDefinedNetwork 类型的对象
Expand
表 31.1. HTTP 响应
HTTP 代码响应正文

200 - OK

UserDefinedNetworkList 模式

401 - Unauthorized

HTTP 方法
DELETE
描述
删除 UserDefinedNetwork 集合
Expand
表 31.2. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出 UserDefinedNetwork 类型的对象
Expand
表 31.3. HTTP 响应
HTTP 代码响应正文

200 - OK

UserDefinedNetworkList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 UserDefinedNetwork
Expand
表 31.4. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 31.5. 主体参数
参数类型描述

正文(body)

UserDefinedNetwork 模式

 
Expand
表 31.6. HTTP 响应
HTTP 代码响应正文

200 - OK

UserDefinedNetwork 模式

201 - Created

UserDefinedNetwork 模式

202 - Accepted

UserDefinedNetwork 模式

401 - Unauthorized

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

name

string

UserDefinedNetwork 的名称

HTTP 方法
DELETE
描述
删除 UserDefinedNetwork
Expand
表 31.8. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

Expand
表 31.9. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
读取指定的 UserDefinedNetwork
Expand
表 31.10. HTTP 响应
HTTP 代码响应正文

200 - OK

UserDefinedNetwork 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 UserDefinedNetwork
Expand
表 31.11. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 31.12. HTTP 响应
HTTP 代码响应正文

200 - OK

UserDefinedNetwork 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 UserDefinedNetwork
Expand
表 31.13. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 31.14. 主体参数
参数类型描述

正文(body)

UserDefinedNetwork 模式

 
Expand
表 31.15. HTTP 响应
HTTP 代码响应正文

200 - OK

UserDefinedNetwork 模式

201 - Created

UserDefinedNetwork 模式

401 - Unauthorized

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

name

string

UserDefinedNetwork 的名称

HTTP 方法
GET
描述
指定 UserDefinedNetwork 的读取状态
Expand
表 31.17. HTTP 响应
HTTP 代码响应正文

200 - OK

UserDefinedNetwork 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定 UserDefinedNetwork 的状态
Expand
表 31.18. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 31.19. HTTP 响应
HTTP 代码响应正文

200 - OK

UserDefinedNetwork 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定 UserDefinedNetwork 的状态
Expand
表 31.20. 查询参数
参数类型描述

dryRun

string

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldValidation

string

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

Expand
表 31.21. 主体参数
参数类型描述

正文(body)

UserDefinedNetwork 模式

 
Expand
表 31.22. HTTP 响应
HTTP 代码响应正文

200 - OK

UserDefinedNetwork 模式

201 - Created

UserDefinedNetwork 模式

401 - Unauthorized

Legal Notice

Copyright © 2025 Red Hat

OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).

Modified versions must remove all Red Hat trademarks.

Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.

Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.

MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.

Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat