网络 API
网络 API 的参考指南
摘要
第 1 章 网络 API 复制链接链接已复制到粘贴板!
1.1. ClusterUserDefinedNetwork [k8s.ovn.org/v1] 复制链接链接已复制到粘贴板!
- 描述
- ClusterUserDefinedNetwork 描述在命名空间间共享网络的网络请求。
- 类型
-
object
- 描述
- AdminNetworkPolicy 是一个集群级别资源,属于 AdminNetworkPolicy API。
- 类型
-
object
1.3. AdminPolicyBasedExternalRoute [k8s.ovn.org/v1] 复制链接链接已复制到粘贴板!
- 描述
- AdminPolicyBasedExternalRoute 是一个 CRD,集群管理员可以为外部网关 IP 配置策略,应用到所选命名空间中的所有 pod。来自属于集群外部命名空间的 pod 的出口流量通过这些外部网关 IP 路由。
- 类型
-
object
- 描述
- BaselineAdminNetworkPolicy 是一个集群级别资源,属于 AdminNetworkPolicy API。
- 类型
-
object
- 描述
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:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 类型
-
对象
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
ProtocolType
的GRPCRoute
的实施必须接受 HTTP/2 连接,而无需从 HTTP/1.1 进行初始升级,例如通过 ALPN。如果实现不支持此功能,则必须将受影响监听器的 "Accepted" 条件设置为 "False",原因为 "UnsupportedProtocol"。实施 MAY 也接受来自 HTTP/1 的 HTTP/2 连接。支持带有
HTTP
ProtocolType
的GRPCRoute
的实现,在没有从 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. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| ClusterUserDefinedNetworkSpec 定义 ClusterUserDefinedNetwork 的所需状态。 |
|
| ClusterUserDefinedNetworkStatus 包含 ClusterUserDefinedNetwork 的观察状态。 |
2.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- ClusterUserDefinedNetworkSpec 定义 ClusterUserDefinedNetwork 的所需状态。
- 类型
-
object
- 必填
-
namespaceSelector
-
network
-
属性 | 类型 | 描述 |
---|---|---|
|
| namespaceSelector 标签选择器,其命名空间网络应该可用。 |
|
| Network 是用户定义的 spec |
2.1.2. .spec.namespaceSelector 复制链接链接已复制到粘贴板!
- 描述
- namespaceSelector 标签选择器,其命名空间网络应该可用。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
2.1.5. .spec.network 复制链接链接已复制到粘贴板!
- 描述
- Network 是用户定义的 spec
- 类型
-
object
- 必填
-
topology
-
属性 | 类型 | 描述 |
---|---|---|
|
| Layer2 是 Layer2 拓扑配置。 |
|
| Layer3 是 Layer3 拓扑配置。 |
|
| localnet 是 Localnet 拓扑配置。 |
|
| 拓扑描述了网络配置。 允许的值是 "Layer3", "Layer2" 和 "Localnet"。Layer3 拓扑会为每个节点创建一个第 2 层段,各自有不同的子网。第 3 层路由用于互连节点子网。Layer2 拓扑创建一个供所有节点共享的逻辑交换机。localnet 拓扑基于第 2 层拓扑,但也允许连接到现有的(配置)物理网络,为工作负载提供南北流量。 |
2.1.6. .spec.network.layer2 复制链接链接已复制到粘贴板!
- 描述
- Layer2 是 Layer2 拓扑配置。
- 类型
-
object
- 必填
-
role
-
属性 | 类型 | 描述 |
---|---|---|
|
| IPAM 部分包含与网络相关的 IPAM 配置。 |
|
| JoinSubnets 在 OVN 网络拓扑中使用。 双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。此字段仅允许"Primary"网络。不建议在不明确需要和了解 OVN 网络拓扑的情况下设置此字段。省略时,平台将选择一个合理的默认值,该默认值可能会随时间变化。 |
|
| MTU 是网络的最大传输单元。如果没有提供 MTU,则 OVN-Kubernetes 中全局配置的值(默认为 1400)用于网络。 |
|
| Role 描述了 pod 中的 network 角色。
允许的值是 "Secondary"。二级网络只分配给使用 |
|
| 子网用于集群中的 pod 网络。双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。
格式应该与标准 CIDR 表示法匹配(例如 "10.128.0.0/16")。如果 |
2.1.7. .spec.network.layer2.ipam 复制链接链接已复制到粘贴板!
- 描述
- IPAM 部分包含与网络相关的 IPAM 配置。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 生命周期控制 IP 地址管理生命周期。
唯一允许的值是 Persistent。设置后,OVN Kubernetes 分配的 IP 地址将保留在 |
|
|
模式 控制 OVN 管理 IP 配置的数量。 |
2.1.8. .spec.network.layer3 复制链接链接已复制到粘贴板!
- 描述
- Layer3 是 Layer3 拓扑配置。
- 类型
-
object
- 必填
-
role
-
subnets
-
属性 | 类型 | 描述 |
---|---|---|
|
| JoinSubnets 在 OVN 网络拓扑中使用。 双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。此字段仅允许"Primary"网络。不建议在不明确需要和了解 OVN 网络拓扑的情况下设置此字段。省略时,平台将选择一个合理的默认值,该默认值可能会随时间变化。 |
|
| MTU 是网络的最大传输单元。 如果没有提供 MTU,则 OVN-Kubernetes 中全局配置的值(默认为 1400)用于网络。 |
|
| Role 描述了 pod 中的 network 角色。
允许的值是 "Primary" 和 "Secondary"。主网络会自动分配给在同一命名空间中创建的每个 pod。二级网络只分配给使用 |
|
| 子网用于集群中的 pod 网络。 双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。给定子网被分成较小的子网。 |
|
|
2.1.9. .spec.network.layer3.subnets 复制链接链接已复制到粘贴板!
- 描述
子网用于集群中的 pod 网络。
双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。给定子网被分成较小的子网。
- 类型
-
数组
2.1.10. .spec.network.layer3.subnets[] 复制链接链接已复制到粘贴板!
- 描述
- 类型
-
object
- 必填
-
cidr
-
属性 | 类型 | 描述 |
---|---|---|
|
| CIDR 指定 L3Subnet,每个节点被分成较小的子网。 |
|
| HostSubnet 指定每个节点的子网大小。 如果没有设置,则会自动分配。 |
2.1.11. .spec.network.localnet 复制链接链接已复制到粘贴板!
- 描述
- localnet 是 Localnet 拓扑配置。
- 类型
-
object
- 必填
-
physicalNetworkName
-
role
-
属性 | 类型 | 描述 |
---|---|---|
|
|
excludeSubnets 是要从 |
|
|
network 的 IPAM 配置。ipam 是可选的。省略时,必须指定 |
|
|
MTU 是网络的最大传输单元。mtu 是可选的。如果省略时,OVN-Kubernetes 中配置的值(默认为 localnet 拓扑)用于网络。IPv4 子网的最小值是 576,IPv6 子网的值是 1280。最大值为 65536。在场景 |
|
|
physicalNetworkName 指向节点上配置的 OVS 网桥映射的 network-name 需要。最小长度为 1,最大长度为 253,不能包含 |
|
|
Role 描述了 pod 中需要的网络角色。控制 pod 接口是否充当主要还是次要。localnet 拓扑仅支持 |
|
|
子网是用于集群中此 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")。如果 |
|
|
network 的 VLAN 配置。vlan.mode 是 VLAN 模式。当设置了 "Access" 时,OVN-Kubernetes 以访问模式配置网络逻辑交换机端口。vlan.access 是访问 VLAN 配置。vlan.access.id 是要在网络逻辑交换机端口上设置的 VLAN ID (VID)。在忽略底层网络默认 VLAN 时,将是可选的。 |
2.1.12. .spec.network.localnet.ipam 复制链接链接已复制到粘贴板!
- 描述
-
network 的 IPAM 配置。ipam 是可选的。省略时,必须指定
子网
。当ipam.mode
为Disabled
时,必须省略子网
。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.mode
为Enabled
时支持。 - 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 生命周期控制 IP 地址管理生命周期。
唯一允许的值是 Persistent。设置后,OVN Kubernetes 分配的 IP 地址将保留在 |
|
|
模式 控制 OVN 管理 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
- 必填
-
模式
-
属性 | 类型 | 描述 |
---|---|---|
|
| 访问是访问 VLAN 配置 |
|
| 模式描述网络 VLAN 模式。允许的值是 "Access"。访问以访问模式设置网络逻辑交换机端口,具体取决于配置。 |
2.1.14. .spec.network.localnet.vlan.access 复制链接链接已复制到粘贴板!
- 描述
- 访问是访问 VLAN 配置
- 类型
-
object
- 必填
-
id
-
属性 | 类型 | 描述 |
---|---|---|
|
| ID 是要为网络设置的 VLAN ID (VID)。id 应高于 0,小于 4095。 |
2.1.15. .status 复制链接链接已复制到粘贴板!
- 描述
- ClusterUserDefinedNetworkStatus 包含 ClusterUserDefinedNetwork 的观察状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 指示 ClusterUserDefineNetwork 状态详情的条件对象片段。 |
|
| condition 包含此 API 资源当前状态的一个方面的详细信息。 |
2.1.16. .status.conditions 复制链接链接已复制到粘贴板!
- 描述
- 指示 ClusterUserDefineNetwork 状态详情的条件对象片段。
- 类型
-
array
2.1.17. .status.conditions[] 复制链接链接已复制到粘贴板!
- 描述
- condition 包含此 API 资源当前状态的一个方面的详细信息。
- 类型
-
object
- 必填
-
lastTransitionTime
-
message
-
reason
-
status
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。 |
|
| Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。 |
|
| observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。 |
|
| reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| 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 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 ClusterUserDefinedNetwork 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 ClusterUserDefinedNetwork
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| ClusterUserDefinedNetwork 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 ClusterUserDefinedNetwork
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 ClusterUserDefinedNetwork
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 ClusterUserDefinedNetwork
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 ClusterUserDefinedNetwork
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| ClusterUserDefinedNetwork 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 ClusterUserDefinedNetwork 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 ClusterUserDefinedNetwork 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 ClusterUserDefinedNetwork 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
- 描述
- AdminNetworkPolicy 是一个集群级别资源,属于 AdminNetworkPolicy API。
- 类型
-
object
- 必填
-
metadata
-
spec
-
3.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| 指定 AdminNetworkPolicy 所需的行为。 |
|
| Status 是实现要报告的状态。 |
3.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- 指定 AdminNetworkPolicy 所需的行为。
- 类型
-
object
- 必填
-
priority
-
subject
-
属性 | 类型 | 描述 |
---|---|---|
|
| Egress 是要应用到所选 pod 的 Egress 规则列表。每个 ANP 实例中允许总计 100 个规则。单个 ANP 对象(所有共享优先级)中的出口规则的相对优先级将由编写规则的顺序决定。因此,在出口规则顶部出现的规则将具有最高的优先级。没有出口规则的 ANP 不会影响出口流量。 支持:Core |
|
| AdminNetworkPolicyEgressRule 描述了对来自 AdminNetworkPolicy 的 Subject 字段选择的 pod 的特定流量集合执行的操作。<network-policy-api:experimental:validation> |
|
| Ingress 是要应用到所选 pod 的 Ingress 规则列表。每个 ANP 实例中允许总计 100 个规则。单个 ANP 对象(所有共享优先级)中的 ingress 规则的相对优先级将由编写规则的顺序决定。因此,在入口规则顶部出现的规则将具有最高的优先级。没有入口规则的 ANP 不会影响入口流量。 支持:Core |
|
| AdminNetworkPolicyIngressRule 描述了对由 AdminNetworkPolicy 的 Subject 字段选择的特定流量集合执行的操作。 |
|
| priority 是从 0 到 1000 的值。优先级值较低的规则具有更高的优先级,并在优先级较高的规则之前检查。所有 AdminNetworkPolicy 规则的优先级高于 NetworkPolicy 或 BaselineAdminNetworkPolicy 规则,如果两个 ANP 对象具有相同的优先级,则行为未定义。 支持:Core |
|
| 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
-
至
-
属性 | 类型 | 描述 |
---|---|---|
|
| action 指定此规则对匹配流量的影响。目前支持以下操作: Allow: 允许所选流量(即使被 NetworkPolicy 拒绝拒绝) Deny: 拒绝所选流量 Pass: 指示所选流量跳过任何剩余的 ANP 规则,然后将执行传递给选择 pod 的任何 NetworkPolicies。如果任何 NetworkPolicies 没有选择 pod,则执行会被传递给选择 pod 的任何 BaselineAdminNetworkPolicies。 支持:Core |
|
| name 是此规则的标识符,长度不超过 100 个字符。实现应使用此字段来帮助改进任何应用的 AdminNetworkPolicies 的可观察性、可读性和错误报告。 支持:Core |
|
| 端口允许根据端口和协议匹配流量。此字段是传出出口流量的目标端口列表。如果没有设置 Ports,则规则不会通过端口过滤流量。 支持:Core |
|
| AdminNetworkPolicyPort 描述了如何选择 pod 上的网络端口。必须设置一个字段。 |
|
| to 是此规则应用到的目的地列表。如果任何 AdminNetworkPolicyEgressPeer 与传出流量的目的地匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。 支持:Core |
|
| AdminNetworkPolicyEgressPeer 定义了一个允许流量的对等点。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。 |
3.1.4. .spec.egress[].ports 复制链接链接已复制到粘贴板!
- 描述
端口允许根据端口和协议匹配流量。此字段是传出出口流量的目标端口列表。如果没有设置 Ports,则规则不会通过端口过滤流量。
支持:Core
- 类型
-
array
3.1.5. .spec.egress[].ports[] 复制链接链接已复制到粘贴板!
- 描述
- AdminNetworkPolicyPort 描述了如何选择 pod 上的网络端口。必须设置一个字段。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| NamedPort 根据名称选择一个 pod 上的端口。 支持:扩展 <network-policy-api:experimental> |
|
| port 根据数字选择 pod 上的端口。 支持:Core |
|
| PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。 支持:Core |
3.1.6. .spec.egress[].ports[].portNumber 复制链接链接已复制到粘贴板!
- 描述
port 根据数字选择 pod 上的端口。
支持:Core
- 类型
-
object
- 必填
-
port
-
protocol
-
属性 | 类型 | 描述 |
---|---|---|
|
| number 定义网络端口值。 支持:Core |
|
| 协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。 支持:Core |
3.1.7. .spec.egress[].ports[].portRange 复制链接链接已复制到粘贴板!
- 描述
PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。
支持:Core
- 类型
-
object
- 必填
-
end
-
start
-
属性 | 类型 | 描述 |
---|---|---|
|
| end 定义端口范围末尾的网络端口,End 值必须大于 Start。 支持:Core |
|
| 协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。 支持:Core |
|
| start 定义端口范围起始的网络端口,Start 值必须小于 End。 支持:Core |
3.1.8. .spec.egress[].to 复制链接链接已复制到粘贴板!
- 描述
to 是此规则应用到的目的地列表。如果任何 AdminNetworkPolicyEgressPeer 与传出流量的目的地匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。
支持:Core
- 类型
-
array
3.1.9. .spec.egress[].to[] 复制链接链接已复制到粘贴板!
- 描述
- AdminNetworkPolicyEgressPeer 定义了一个允许流量的对等点。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。 支持:Core |
|
|
网络定义了通过 CIDR 块选择对等点的方法。这用于表示集群外部的实体,这些实体不能被 pod、命名空间和节点对等点选择,但请注意,集群内部流量也会针对该规则进行检查。因此,如果您允许或拒绝到 Networks 中的每个项目都应该以 CIDR 格式提供,且应为 IPv4 或 IPv6,如 "10.0.0.0/8" 或 "fd00::/8"。 网络可以最多指定 25 个 CIDR。 支持:扩展 <network-policy-api:experimental> |
|
| 节点定义了选择集群中一组节点的方法。此字段遵循标准标签选择器语义;如果存在,它会选择所有节点。 支持:扩展 <network-policy-api:experimental> |
|
| Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。 支持:Core |
3.1.10. .spec.egress[].to[].namespaces 复制链接链接已复制到粘贴板!
- 描述
命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。
支持:Core
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
3.1.11. .spec.egress[].to[].namespaces.matchExpressions 复制链接链接已复制到粘贴板!
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
3.1.13. .spec.egress[].to[].nodes 复制链接链接已复制到粘贴板!
- 描述
节点定义了选择集群中一组节点的方法。此字段遵循标准标签选择器语义;如果存在,它会选择所有节点。
支持:扩展
<network-policy-api:experimental>
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
3.1.16. .spec.egress[].to[].pods 复制链接链接已复制到粘贴板!
- 描述
Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。
支持:Core
- 类型
-
object
- 必填
-
namespaceSelector
-
podSelector
-
属性 | 类型 | 描述 |
---|---|---|
|
| namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。 |
|
| podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。 |
3.1.17. .spec.egress[].to[].pods.namespaceSelector 复制链接链接已复制到粘贴板!
- 描述
- namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
3.1.20. .spec.egress[].to[].pods.podSelector 复制链接链接已复制到粘贴板!
- 描述
- podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| action 指定此规则对匹配流量的影响。目前支持以下操作: Allow: 允许所选流量(即使被 NetworkPolicy 拒绝拒绝) Deny: 拒绝所选流量 Pass: 指示所选流量跳过任何剩余的 ANP 规则,然后将执行传递给选择 pod 的任何 NetworkPolicies。如果任何 NetworkPolicies 没有选择 pod,则执行会被传递给选择 pod 的任何 BaselineAdminNetworkPolicies。 支持:Core |
|
| from 是此规则应用到的源列表。如果任何 AdminNetworkPolicyIngressPeer 与传入流量的来源匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。 支持:Core |
|
| AdminNetworkPolicyIngressPeer 定义了一个集群内对等点,以允许来自的流量。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。 |
|
| name 是此规则的标识符,长度不超过 100 个字符。实现应使用此字段来帮助改进任何应用的 AdminNetworkPolicies 的可观察性、可读性和错误报告。 支持:Core |
|
| 端口允许根据端口和协议匹配流量。此字段是一个端口列表,应在针对此策略选择的 pod 上匹配,例如策略的主题。因此,它与入口流量的目标端口上匹配。如果没有设置 Ports,则规则不会通过端口过滤流量。 支持:Core |
|
| AdminNetworkPolicyPort 描述了如何选择 pod 上的网络端口。必须设置一个字段。 |
3.1.25. .spec.ingress[].from 复制链接链接已复制到粘贴板!
- 描述
from 是此规则应用到的源列表。如果任何 AdminNetworkPolicyIngressPeer 与传入流量的来源匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。
支持:Core
- 类型
-
array
3.1.26. .spec.ingress[].from[] 复制链接链接已复制到粘贴板!
- 描述
- AdminNetworkPolicyIngressPeer 定义了一个集群内对等点,以允许来自的流量。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。 支持:Core |
|
| Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。 支持:Core |
3.1.27. .spec.ingress[].from[].namespaces 复制链接链接已复制到粘贴板!
- 描述
命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。
支持:Core
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
3.1.30. .spec.ingress[].from[].pods 复制链接链接已复制到粘贴板!
- 描述
Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。
支持:Core
- 类型
-
object
- 必填
-
namespaceSelector
-
podSelector
-
属性 | 类型 | 描述 |
---|---|---|
|
| namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。 |
|
| podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。 |
3.1.31. .spec.ingress[].from[].pods.namespaceSelector 复制链接链接已复制到粘贴板!
- 描述
- namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
3.1.34. .spec.ingress[].from[].pods.podSelector 复制链接链接已复制到粘贴板!
- 描述
- podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 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
属性 | 类型 | 描述 |
---|---|---|
|
| NamedPort 根据名称选择一个 pod 上的端口。 支持:扩展 <network-policy-api:experimental> |
|
| port 根据数字选择 pod 上的端口。 支持:Core |
|
| PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。 支持:Core |
3.1.39. .spec.ingress[].ports[].portNumber 复制链接链接已复制到粘贴板!
- 描述
port 根据数字选择 pod 上的端口。
支持:Core
- 类型
-
object
- 必填
-
port
-
protocol
-
属性 | 类型 | 描述 |
---|---|---|
|
| number 定义网络端口值。 支持:Core |
|
| 协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。 支持:Core |
3.1.40. .spec.ingress[].ports[].portRange 复制链接链接已复制到粘贴板!
- 描述
PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。
支持:Core
- 类型
-
object
- 必填
-
end
-
start
-
属性 | 类型 | 描述 |
---|---|---|
|
| end 定义端口范围末尾的网络端口,End 值必须大于 Start。 支持:Core |
|
| 协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。 支持:Core |
|
| start 定义端口范围起始的网络端口,Start 值必须小于 End。 支持:Core |
3.1.41. .spec.subject 复制链接链接已复制到粘贴板!
- 描述
subject 定义此 AdminNetworkPolicy 应用到的 pod。请注意,主机网络的 pod 不包含在主题选择中。
支持:Core
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 命名空间用于通过命名空间选择器选择 pod。 |
|
| Pod 用于通过命名空间 AND pod 选择器选择 pod。 |
3.1.42. .spec.subject.namespaces 复制链接链接已复制到粘贴板!
- 描述
- 命名空间用于通过命名空间选择器选择 pod。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
3.1.45. .spec.subject.pods 复制链接链接已复制到粘贴板!
- 描述
- Pod 用于通过命名空间 AND pod 选择器选择 pod。
- 类型
-
object
- 必填
-
namespaceSelector
-
podSelector
-
属性 | 类型 | 描述 |
---|---|---|
|
| namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。 |
|
| podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。 |
3.1.46. .spec.subject.pods.namespaceSelector 复制链接链接已复制到粘贴板!
- 描述
- namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
3.1.49. .spec.subject.pods.podSelector 复制链接链接已复制到粘贴板!
- 描述
- podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
3.1.50. .spec.subject.pods.podSelector.matchExpressions 复制链接链接已复制到粘贴板!
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
3.1.52. .status 复制链接链接已复制到粘贴板!
- 描述
- Status 是实现要报告的状态。
- 类型
-
object
- 必填
-
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 // other fields } |
3.1.53. .status.conditions 复制链接链接已复制到粘贴板!
- 描述
- 类型
-
array
3.1.54. .status.conditions[] 复制链接链接已复制到粘贴板!
- 描述
条件包含此 API 资源当前状态的一个方面的详情。--- 这个结构旨在直接用作字段路径 .status.conditions 中的数组。例如,
Copy to Clipboard Copied! Toggle word wrap Toggle overflow // other fields }
// other fields }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 类型
-
object
- 必填
-
lastTransitionTime
-
message
-
reason
-
status
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。 |
|
| Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。 |
|
| observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。 |
|
| reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| 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 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 AdminNetworkPolicy 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 AdminNetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| AdminNetworkPolicy 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 AdminNetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 AdminNetworkPolicy
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 AdminNetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 AdminNetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| AdminNetworkPolicy 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 AdminNetworkPolicy 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 AdminNetworkPolicy 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 AdminNetworkPolicy 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
第 4 章 AdminPolicyBasedExternalRoute [k8s.ovn.org/v1] 复制链接链接已复制到粘贴板!
- 描述
- AdminPolicyBasedExternalRoute 是一个 CRD,集群管理员可以为外部网关 IP 配置策略,应用到所选命名空间中的所有 pod。来自属于集群外部命名空间的 pod 的出口流量通过这些外部网关 IP 路由。
- 类型
-
object
- 必填
-
spec
-
4.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| AdminPolicyBasedExternalRouteSpec 定义 AdminPolicyBasedExternalRoute 的所需状态 |
|
| AdminPolicyBasedRouteStatus 包含 AdminPolicyBased 路由类型的观察状态。 |
4.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- AdminPolicyBasedExternalRouteSpec 定义 AdminPolicyBasedExternalRoute 的所需状态
- 类型
-
object
- 必填
-
from
-
nextHops
-
属性 | 类型 | 描述 |
---|---|---|
|
| from 定义将决定目标命名空间到此 CR 的选择器。 |
|
| NextHops 定义两种类型的跃点: Static 和 Dynamic。每个跃点至少定义一个外部网关 IP。 |
4.1.2. .spec.from 复制链接链接已复制到粘贴板!
- 描述
- from 定义将决定目标命名空间到此 CR 的选择器。
- 类型
-
object
- 必填
-
namespaceSelector
-
属性 | 类型 | 描述 |
---|---|---|
|
| namespaceSelector 定义了一个选择器,用于决定此 CR 将针对哪些命名空间 |
4.1.3. .spec.from.namespaceSelector 复制链接链接已复制到粘贴板!
- 描述
- namespaceSelector 定义了一个选择器,用于决定此 CR 将针对哪些命名空间
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
4.1.6. .spec.nextHops 复制链接链接已复制到粘贴板!
- 描述
- NextHops 定义两种类型的跃点: Static 和 Dynamic。每个跃点至少定义一个外部网关 IP。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| DynamicHops 定义 DynamicHop 的片段。此字段是可选的。 |
|
| DynamicHop 定义动态外部网关接口的配置。这些接口围绕位于集群内部的 pod 对象进行嵌套。字段 NetworkAttachmentName 捕获检索要使用的网关 IP 时使用的 multus 网络名称。PodSelector 和 NamespaceSelector 是必填字段。 |
|
| StaticHops 定义了 StaticHop 的一个片段。此字段是可选的。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| BFDEnabled 确定接口是否实现双向转发检测协议。默认为false。 |
|
| namespaceSelector 定义选择器,用于过滤 pod 网关所在的命名空间。 |
|
| NetworkAttachmentName 决定在检索要用作网关 IP 的 pod IP 时使用的 multus 网络名称。当此字段为空时,逻辑假设 pod 被配置为 HostNetwork,并使用节点的 IP 作为网关。 |
|
| podSelector 定义选择器来过滤外部网关的 pod。 |
4.1.9. .spec.nextHops.dynamic[].namespaceSelector 复制链接链接已复制到粘贴板!
- 描述
- namespaceSelector 定义选择器,用于过滤 pod 网关所在的命名空间。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
4.1.12. .spec.nextHops.dynamic[].podSelector 复制链接链接已复制到粘贴板!
- 描述
- podSelector 定义选择器来过滤外部网关的 pod。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| BFDEnabled 确定接口是否实现双向转发检测协议。默认为false。 |
|
| IP 定义用于出口流量的静态 IP。IP 可以是 IPv4 或 IPv6。 |
4.1.17. .status 复制链接链接已复制到粘贴板!
- 描述
- AdminPolicyBasedRouteStatus 包含 AdminPolicyBased 路由类型的观察状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 捕获应用上次更改的时间。 |
|
| 一个人类可读的消息数组,代表有关对象状态的详细信息。 |
|
| 简要指示是否成功应用 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 的状态
-
- HTTP 方法
-
DELETE
- 描述
- delete collection of AdminPolicyBasedExternalRoute
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出类型为 AdminPolicyBasedExternalRoute 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- create an AdminPolicyBasedExternalRoute
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| AdminPolicyBasedExternalRoute 的名称 |
- HTTP 方法
-
DELETE
- 描述
- delete an AdminPolicyBasedExternalRoute
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 读取指定的 AdminPolicyBasedExternalRoute
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 AdminPolicyBasedExternalRoute
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 AdminPolicyBasedExternalRoute
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| AdminPolicyBasedExternalRoute 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 AdminPolicyBasedExternalRoute 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 AdminPolicyBasedExternalRoute 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 AdminPolicyBasedExternalRoute 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
- 描述
- BaselineAdminNetworkPolicy 是一个集群级别资源,属于 AdminNetworkPolicy API。
- 类型
-
object
- 必填
-
metadata
-
spec
-
5.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| BaselineAdminNetworkPolicy 所需的行为规格。 |
|
| Status 是实现要报告的状态。 |
5.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- BaselineAdminNetworkPolicy 所需的行为规格。
- 类型
-
object
- 必填
-
subject
-
属性 | 类型 | 描述 |
---|---|---|
|
| 如果 Egress 规则与任何 AdminNetworkPolicy 或 NetworkPolicy 规则不匹配,则出口(egress)是要应用到所选 pod 的 Egress 规则列表。每个 BANP 实例中都允许总计 100 个 Egress 规则。在单个 BANP 对象中出口规则的相对优先级将由编写规则的顺序决定。因此,在出口规则顶部出现的规则将具有最高的优先级。没有出口规则的 BANP 不会影响出口流量。 支持:Core |
|
| BaselineAdminNetworkPolicyEgressRule 描述了一个操作,它适用于源自 BaselineAdminNetworkPolicy 的 Subject 字段选择的 pod 的特定流量集。<network-policy-api:experimental:validation> |
|
| 如果 Ingress 规则与任何 AdminNetworkPolicy 或 NetworkPolicy 规则不匹配,则 Ingress 是要应用到所选 pod 的 Ingress 规则列表。每个 BANP 实例中都允许 100 个 Ingress 规则。单个 BANP 对象中入口规则的相对优先级将由编写规则的顺序决定。因此,在入口规则顶部出现的规则将具有最高的优先级。没有入口规则的 BANP 不会影响入口流量。 支持:Core |
|
| BaselineAdminNetworkPolicyIngressRule 描述了一个操作,用于由 BaselineAdminNetworkPolicy 的 Subject 字段选择的特定流量集合。 |
|
| 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
-
至
-
属性 | 类型 | 描述 |
---|---|---|
|
| action 指定此规则对匹配流量的影响。目前支持以下操作: Allow: 允许所选流量 Deny: 拒绝所选流量 支持:Core |
|
| name 是此规则的标识符,长度不超过 100 个字符。实现应使用此字段来帮助改进任何应用的 BaselineAdminNetworkPolicies 的可观察性、可读性和错误报告。 支持:Core |
|
| 端口允许根据端口和协议匹配流量。此字段是传出出口流量的目标端口列表。如果没有设置 Ports,则规则不会通过端口过滤流量。 |
|
| AdminNetworkPolicyPort 描述了如何选择 pod 上的网络端口。必须设置一个字段。 |
|
| to 是此规则应用到的目的地列表。如果任何 AdminNetworkPolicyEgressPeer 与传出流量的目的地匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。 支持:Core |
|
| AdminNetworkPolicyEgressPeer 定义了一个允许流量的对等点。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。 |
5.1.4. .spec.egress[].ports 复制链接链接已复制到粘贴板!
- 描述
- 端口允许根据端口和协议匹配流量。此字段是传出出口流量的目标端口列表。如果没有设置 Ports,则规则不会通过端口过滤流量。
- 类型
-
array
5.1.5. .spec.egress[].ports[] 复制链接链接已复制到粘贴板!
- 描述
- AdminNetworkPolicyPort 描述了如何选择 pod 上的网络端口。必须设置一个字段。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| NamedPort 根据名称选择一个 pod 上的端口。 支持:扩展 <network-policy-api:experimental> |
|
| port 根据数字选择 pod 上的端口。 支持:Core |
|
| PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。 支持:Core |
5.1.6. .spec.egress[].ports[].portNumber 复制链接链接已复制到粘贴板!
- 描述
port 根据数字选择 pod 上的端口。
支持:Core
- 类型
-
object
- 必填
-
port
-
protocol
-
属性 | 类型 | 描述 |
---|---|---|
|
| number 定义网络端口值。 支持:Core |
|
| 协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。 支持:Core |
5.1.7. .spec.egress[].ports[].portRange 复制链接链接已复制到粘贴板!
- 描述
PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。
支持:Core
- 类型
-
object
- 必填
-
end
-
start
-
属性 | 类型 | 描述 |
---|---|---|
|
| end 定义端口范围末尾的网络端口,End 值必须大于 Start。 支持:Core |
|
| 协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。 支持:Core |
|
| start 定义端口范围起始的网络端口,Start 值必须小于 End。 支持:Core |
5.1.8. .spec.egress[].to 复制链接链接已复制到粘贴板!
- 描述
to 是此规则应用到的目的地列表。如果任何 AdminNetworkPolicyEgressPeer 与传出流量的目的地匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。
支持:Core
- 类型
-
array
5.1.9. .spec.egress[].to[] 复制链接链接已复制到粘贴板!
- 描述
- AdminNetworkPolicyEgressPeer 定义了一个允许流量的对等点。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。 支持:Core |
|
|
网络定义了通过 CIDR 块选择对等点的方法。这用于表示集群外部的实体,这些实体不能被 pod、命名空间和节点对等点选择,但请注意,集群内部流量也会针对该规则进行检查。因此,如果您允许或拒绝到 Networks 中的每个项目都应该以 CIDR 格式提供,且应为 IPv4 或 IPv6,如 "10.0.0.0/8" 或 "fd00::/8"。 网络可以最多指定 25 个 CIDR。 支持:扩展 <network-policy-api:experimental> |
|
| 节点定义了选择集群中一组节点的方法。此字段遵循标准标签选择器语义;如果存在,它会选择所有节点。 支持:扩展 <network-policy-api:experimental> |
|
| Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。 支持:Core |
5.1.10. .spec.egress[].to[].namespaces 复制链接链接已复制到粘贴板!
- 描述
命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。
支持:Core
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
5.1.11. .spec.egress[].to[].namespaces.matchExpressions 复制链接链接已复制到粘贴板!
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
5.1.13. .spec.egress[].to[].nodes 复制链接链接已复制到粘贴板!
- 描述
节点定义了选择集群中一组节点的方法。此字段遵循标准标签选择器语义;如果存在,它会选择所有节点。
支持:扩展
<network-policy-api:experimental>
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
5.1.16. .spec.egress[].to[].pods 复制链接链接已复制到粘贴板!
- 描述
Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。
支持:Core
- 类型
-
object
- 必填
-
namespaceSelector
-
podSelector
-
属性 | 类型 | 描述 |
---|---|---|
|
| namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。 |
|
| podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。 |
5.1.17. .spec.egress[].to[].pods.namespaceSelector 复制链接链接已复制到粘贴板!
- 描述
- namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
5.1.20. .spec.egress[].to[].pods.podSelector 复制链接链接已复制到粘贴板!
- 描述
- podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| action 指定此规则对匹配流量的影响。目前支持以下操作: Allow: 允许所选流量 Deny: 拒绝所选流量 支持:Core |
|
| from 是此规则应用到的源列表。如果任何 AdminNetworkPolicyIngressPeer 与传入流量的来源匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。 支持:Core |
|
| AdminNetworkPolicyIngressPeer 定义了一个集群内对等点,以允许来自的流量。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。 |
|
| name 是此规则的标识符,长度不超过 100 个字符。实现应使用此字段来帮助改进任何应用的 BaselineAdminNetworkPolicies 的可观察性、可读性和错误报告。 支持:Core |
|
| 端口允许根据端口和协议匹配流量。此字段是一个端口列表,应在针对此策略选择的 pod 上匹配,例如策略的主题。因此,它与入口流量的目标端口上匹配。如果没有设置 Ports,则规则不会通过端口过滤流量。 支持:Core |
|
| AdminNetworkPolicyPort 描述了如何选择 pod 上的网络端口。必须设置一个字段。 |
5.1.25. .spec.ingress[].from 复制链接链接已复制到粘贴板!
- 描述
from 是此规则应用到的源列表。如果任何 AdminNetworkPolicyIngressPeer 与传入流量的来源匹配,则会应用指定的操作。必须定义此字段并至少包含一个项。
支持:Core
- 类型
-
array
5.1.26. .spec.ingress[].from[] 复制链接链接已复制到粘贴板!
- 描述
- AdminNetworkPolicyIngressPeer 定义了一个集群内对等点,以允许来自的流量。必须为给定的对等点设置其中一个选择器指针。如果消费者观察没有设置其字段,它们必须假定指定了未知选项,并且关闭失败。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。 支持:Core |
|
| Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。 支持:Core |
5.1.27. .spec.ingress[].from[].namespaces 复制链接链接已复制到粘贴板!
- 描述
命名空间定义了选择一组命名空间中的所有 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。
支持:Core
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
5.1.30. .spec.ingress[].from[].pods 复制链接链接已复制到粘贴板!
- 描述
Pod 定义了在一组命名空间中选择一组 pod 的方法。请注意,主机网络的 pod 没有包含在这种对等状态中。
支持:Core
- 类型
-
object
- 必填
-
namespaceSelector
-
podSelector
-
属性 | 类型 | 描述 |
---|---|---|
|
| namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。 |
|
| podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。 |
5.1.31. .spec.ingress[].from[].pods.namespaceSelector 复制链接链接已复制到粘贴板!
- 描述
- namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
5.1.34. .spec.ingress[].from[].pods.podSelector 复制链接链接已复制到粘贴板!
- 描述
- podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 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
属性 | 类型 | 描述 |
---|---|---|
|
| NamedPort 根据名称选择一个 pod 上的端口。 支持:扩展 <network-policy-api:experimental> |
|
| port 根据数字选择 pod 上的端口。 支持:Core |
|
| PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。 支持:Core |
5.1.39. .spec.ingress[].ports[].portNumber 复制链接链接已复制到粘贴板!
- 描述
port 根据数字选择 pod 上的端口。
支持:Core
- 类型
-
object
- 必填
-
port
-
protocol
-
属性 | 类型 | 描述 |
---|---|---|
|
| number 定义网络端口值。 支持:Core |
|
| 协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。 支持:Core |
5.1.40. .spec.ingress[].ports[].portRange 复制链接链接已复制到粘贴板!
- 描述
PortRange 根据提供的 start 和 end 值在 pod 上选择一个端口范围。
支持:Core
- 类型
-
object
- 必填
-
end
-
start
-
属性 | 类型 | 描述 |
---|---|---|
|
| end 定义端口范围末尾的网络端口,End 值必须大于 Start。 支持:Core |
|
| 协议是流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。 支持:Core |
|
| start 定义端口范围起始的网络端口,Start 值必须小于 End。 支持:Core |
5.1.41. .spec.subject 复制链接链接已复制到粘贴板!
- 描述
subject 定义此 BaselineAdminNetworkPolicy 应用到的 pod。请注意,主机网络的 pod 不包含在主题选择中。
支持:Core
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 命名空间用于通过命名空间选择器选择 pod。 |
|
| Pod 用于通过命名空间 AND pod 选择器选择 pod。 |
5.1.42. .spec.subject.namespaces 复制链接链接已复制到粘贴板!
- 描述
- 命名空间用于通过命名空间选择器选择 pod。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
5.1.45. .spec.subject.pods 复制链接链接已复制到粘贴板!
- 描述
- Pod 用于通过命名空间 AND pod 选择器选择 pod。
- 类型
-
object
- 必填
-
namespaceSelector
-
podSelector
-
属性 | 类型 | 描述 |
---|---|---|
|
| namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。 |
|
| podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。 |
5.1.46. .spec.subject.pods.namespaceSelector 复制链接链接已复制到粘贴板!
- 描述
- namespaceSelector 遵循标准标签选择器语义;如果为空,它会选择所有命名空间。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
5.1.49. .spec.subject.pods.podSelector 复制链接链接已复制到粘贴板!
- 描述
- podSelector 用于显式选择命名空间中的 pod;如果为空,它会选择所有 Pod。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
5.1.50. .spec.subject.pods.podSelector.matchExpressions 复制链接链接已复制到粘贴板!
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
5.1.52. .status 复制链接链接已复制到粘贴板!
- 描述
- Status 是实现要报告的状态。
- 类型
-
object
- 必填
-
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 // other fields } |
5.1.53. .status.conditions 复制链接链接已复制到粘贴板!
- 描述
- 类型
-
array
5.1.54. .status.conditions[] 复制链接链接已复制到粘贴板!
- 描述
条件包含此 API 资源当前状态的一个方面的详情。--- 这个结构旨在直接用作字段路径 .status.conditions 中的数组。例如,
Copy to Clipboard Copied! Toggle word wrap Toggle overflow // other fields }
// other fields }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 类型
-
object
- 必填
-
lastTransitionTime
-
message
-
reason
-
status
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。 |
|
| Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。 |
|
| observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。 |
|
| reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| 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 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出类型为 BaselineAdminNetworkPolicy 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 BaselineAdminNetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| BaselineAdminNetworkPolicy 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 BaselineAdminNetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 BaselineAdminNetworkPolicy
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 BaselineAdminNetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 BaselineAdminNetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| BaselineAdminNetworkPolicy 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 BaselineAdminNetworkPolicy 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 BaselineAdminNetworkPolicy 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 BaselineAdminNetworkPolicy 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
- 描述
CloudPrivateIPConfig 将私有 IP 地址分配给与云虚拟机关联的主 NIC。这可以通过指定 IP 应该分配给的 IP 和 Kubernetes 节点来完成。此 CRD 旨在由管理集群网络的网络插件使用。spec 端代表网络插件请求的状态,状态端表示此 CRD 控制器执行的当前状态。没有用户修改它的权限,如果 cluster-admin 决定编辑它,则在下次网络插件协调对象时,其更改将被覆盖。注: CR 的名称必须指定请求的私有 IP 地址(可以是 IPv4 或 IPv6)。
兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。
- 类型
-
object
- 必填
-
spec
-
6.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| spec 是所需专用 IP 请求的定义。 |
|
| status 是所需私有 IP 请求的观察状态。只读。 |
6.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- spec 是所需专用 IP 请求的定义。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| node 是节点名称,由 Kubernetes 字段指定:node.metadata.name |
6.1.2. .status 复制链接链接已复制到粘贴板!
- 描述
- status 是所需私有 IP 请求的观察状态。只读。
- 类型
-
object
- 必填
-
conditions
-
属性 | 类型 | 描述 |
---|---|---|
|
| condition 是专用 IP 及其状态的分配条件 |
|
| condition 包含此 API 资源当前状态的一个方面的详细信息。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。 |
|
| Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。 |
|
| observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。 |
|
| reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| 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 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 CloudPrivateIPConfig 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 CloudPrivateIPConfig
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| CloudPrivateIPConfig 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 CloudPrivateIPConfig
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 CloudPrivateIPConfig
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 CloudPrivateIPConfig
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 CloudPrivateIPConfig
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| CloudPrivateIPConfig 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 CloudPrivateIPConfig 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 CloudPrivateIPConfig 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 CloudPrivateIPConfig 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
第 7 章 EgressFirewall [k8s.ovn.org/v1] 复制链接链接已复制到粘贴板!
- 描述
- EgressFirewall 描述了命名空间的当前出口防火墙。系统将针对 pod 的命名空间 EgressFirewall 中的每个 EgressFirewallRule 检查从 pod 到集群外的 IP 地址的流量。如果没有规则匹配(或不存在 EgressFirewall),则默认允许流量。
- 类型
-
object
- 必填
-
spec
-
7.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| 指定 EgressFirewall 所需的行为。 |
|
| 观察 EgressFirewall 的状态 |
7.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- 指定 EgressFirewall 所需的行为。
- 类型
-
object
- 必填
-
egress
-
属性 | 类型 | 描述 |
---|---|---|
|
| 出口防火墙规则对象的集合 |
|
| EgressFirewallRule 是一个单一的 egressfirewall 规则对象 |
7.1.2. .spec.egress 复制链接链接已复制到粘贴板!
- 描述
- 出口防火墙规则对象的集合
- 类型
-
array
7.1.3. .spec.egress[] 复制链接链接已复制到粘贴板!
- 描述
- EgressFirewallRule 是一个单一的 egressfirewall 规则对象
- 类型
-
object
- 必填
-
至
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| 端口指定规则适用的端口和协议 |
|
| EgressFirewallPort 指定允许或拒绝流量的端口 |
|
| to 是允许/拒绝流量的目标 |
|
| type 将此标记为 "Allow" 或 "Deny" 规则 |
7.1.4. .spec.egress[].ports 复制链接链接已复制到粘贴板!
- 描述
- 端口指定规则适用的端口和协议
- 类型
-
array
7.1.5. .spec.egress[].ports[] 复制链接链接已复制到粘贴板!
- 描述
- EgressFirewallPort 指定允许或拒绝流量的端口
- 类型
-
object
- 必填
-
port
-
protocol
-
属性 | 类型 | 描述 |
---|---|---|
|
| 流量必须匹配的端口 |
|
| 流量必须匹配的协议(tcp、udp、sctp)。 |
7.1.6. .spec.egress[].to 复制链接链接已复制到粘贴板!
- 描述
- to 是允许/拒绝流量的目标
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| cidrSelector 是允许/拒绝流量的 CIDR 范围。如果设置了,dnsName 和 nodeSelector 必须取消设置。 |
|
| dnsName 是允许/拒绝流量的域名。如果设置了,则必须取消设置 cidrSelector 和 nodeSelector。对于通配符 DNS 名称,'' 只会匹配一个标签。另外,在通配符 DNS 名称的开头只能使用一个 ''。例如: '*.example.com' 将匹配 'sub1.example.com',但不匹配 'sub2.sub1.example.com'。 |
|
| nodeSelector 将允许/拒绝到所选节点的 Kubernetes 节点 IP 的流量。如果设置了,则必须取消设置 cidrSelector 和 DNSName。 |
7.1.7. .spec.egress[].to.nodeSelector 复制链接链接已复制到粘贴板!
- 描述
- nodeSelector 将允许/拒绝到所选节点的 Kubernetes 节点 IP 的流量。如果设置了,则必须取消设置 cidrSelector 和 DNSName。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
7.1.10. .status 复制链接链接已复制到粘贴板!
- 描述
- 观察 EgressFirewall 的状态
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| |
|
|
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 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 EgressFirewall 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 EgressFirewall 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 EgressFirewall
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| EgressFirewall 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 EgressFirewall
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 EgressFirewall
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 EgressFirewall
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 EgressFirewall
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| EgressFirewall 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 EgressFirewall 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 EgressFirewall 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 EgressFirewall 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
第 8 章 EgressIP [k8s.ovn.org/v1] 复制链接链接已复制到粘贴板!
- 描述
- EgressIP 是一个 CRD,用户可以为其 spec 定义来自与 EgressIP 资源匹配的 pod 的所有出口流量定义固定源 IP。
- 类型
-
object
- 必填
-
spec
-
8.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| 所需 EgressIP 行为的规格。 |
|
| 观察到 EgressIP 的状态。只读。 |
8.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- 所需 EgressIP 行为的规格。
- 类型
-
object
- 必填
-
egressIPs
-
namespaceSelector
-
属性 | 类型 | 描述 |
---|---|---|
|
| egressIPs 是请求的出口 IP 地址列表。可以是 IPv4 和/或 IPv6。这个字段是必须的。 |
|
| namespaceSelector 仅将出口 IP 应用到与此定义匹配的命名空间。这个字段是必须的。 |
|
| podSelector 仅将出口 IP 应用到与此定义匹配的 pod。此字段是可选的,如果未设置,则会将出口 IP 应用到与 NamespaceSelector 匹配的命名空间中的所有 pod。如果它被设置:使用 NamespaceSelector 进行交集,因此将出口 IP 应用到 pod (在与这个 pod 选择器匹配的 NamespaceSelector 中)。 |
8.1.2. .spec.namespaceSelector 复制链接链接已复制到粘贴板!
- 描述
- namespaceSelector 仅将出口 IP 应用到与此定义匹配的命名空间。这个字段是必须的。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 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
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
8.1.8. .status 复制链接链接已复制到粘贴板!
- 描述
- 观察到 EgressIP 的状态。只读。
- 类型
-
object
- 必填
-
items
-
属性 | 类型 | 描述 |
---|---|---|
|
| 分配出口 IP 列表及其对应的节点分配。 |
|
| 每个节点状态,用于分配的出口 IP。 |
8.1.9. .status.items 复制链接链接已复制到粘贴板!
- 描述
- 分配出口 IP 列表及其对应的节点分配。
- 类型
-
array
8.1.10. .status.items[] 复制链接链接已复制到粘贴板!
- 描述
- 每个节点状态,用于分配的出口 IP。
- 类型
-
object
- 必填
-
egressIP
-
node
-
属性 | 类型 | 描述 |
---|---|---|
|
| 分配的出口 IP |
|
| 分配的节点名称 |
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 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 EgressIP 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 EgressIP
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
8.2.2. /apis/k8s.ovn.org/v1/egressips/{name} 复制链接链接已复制到粘贴板!
参数 | 类型 | 描述 |
---|---|---|
|
| EgressIP 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 EgressIP
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 读取指定的 EgressIP
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 EgressIP
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 EgressIP
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
第 9 章 EgressQoS [k8s.ovn.org/v1] 复制链接链接已复制到粘贴板!
- 描述
- egressqos 是一个 CRD,允许用户在其命名空间中为 pod 出口流量定义 DSCP 值到指定的 CIDR。来自这些 pod 的流量将根据命名空间的 EgressQoSRule 中的每个 EgressQoSRule 检查,如果存在与相关 DSCP 值匹配的流量。
- 类型
-
object
9.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| EgressQoSSpec 定义所需的 EgressQoS 状态 |
|
| EgressQoSStatus 定义 EgressQoS 的观察状态 |
9.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- EgressQoSSpec 定义所需的 EgressQoS 状态
- 类型
-
object
- 必填
-
egress
-
属性 | 类型 | 描述 |
---|---|---|
|
| 一组 Egress QoS 规则对象 |
|
|
9.1.2. .spec.egress 复制链接链接已复制到粘贴板!
- 描述
- 一组 Egress QoS 规则对象
- 类型
-
array
9.1.3. .spec.egress[] 复制链接链接已复制到粘贴板!
- 描述
- 类型
-
object
- 必填
-
dscp
-
属性 | 类型 | 描述 |
---|---|---|
|
| DSCP 标记用于匹配 Pod 流量的值。 |
|
| DstCIDR 指定目的地的 CIDR。只有到此 CIDR 的流量标题将标记为 DSCP 值。此字段是可选的,如果没有设置该规则,无论目的地是什么,则规则会应用到所有出口流量。 |
|
| podSelector 只会将 QoS 规则应用到与这个定义匹配的命名空间中的 pod。此字段是可选的,如果没有设置会导致规则应用到命名空间中的所有 pod。 |
9.1.4. .spec.egress[].podSelector 复制链接链接已复制到粘贴板!
- 描述
- podSelector 只会将 QoS 规则应用到与这个定义匹配的命名空间中的 pod。此字段是可选的,如果没有设置会导致规则应用到命名空间中的所有 pod。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
9.1.7. .status 复制链接链接已复制到粘贴板!
- 描述
- EgressQoSStatus 定义 EgressQoS 的观察状态
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 条件对象数组,指示 EgressQoS 对象状态的详细信息。 |
|
| 条件包含此 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 // other fields } |
|
| 简要指示是否成功应用了 EgressQoS 资源。 |
9.1.8. .status.conditions 复制链接链接已复制到粘贴板!
- 描述
- 条件对象数组,指示 EgressQoS 对象状态的详细信息。
- 类型
-
array
9.1.9. .status.conditions[] 复制链接链接已复制到粘贴板!
- 描述
条件包含此 API 资源当前状态的一个方面的详情。--- 这个结构旨在直接用作字段路径 .status.conditions 中的数组。例如,
Copy to Clipboard Copied! Toggle word wrap Toggle overflow // other fields }
// other fields }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 类型
-
object
- 必填
-
lastTransitionTime
-
message
-
reason
-
status
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。 |
|
| Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。 |
|
| observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。 |
|
| reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| 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 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 EgressQoS 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出类型为 EgressQoS 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 EgressQoS
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| EgressQoS 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 EgressQoS
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 EgressQoS
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 EgressQoS
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 EgressQoS
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| EgressQoS 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 EgressQoS 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 EgressQoS 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 EgressQoS 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
第 10 章 EgressService [k8s.ovn.org/v1] 复制链接链接已复制到粘贴板!
- 描述
- EgressService 是一个 CRD,允许用户请求来自对应 LoadBalancer 服务端点的所有 pod 的出口数据包的源 IP 是其入口 IP。另外,它允许用户请求来自作为 LoadBalancer 服务端点的所有 pod 的出口数据包,并使用与主服务不同的网络。
- 类型
-
object
10.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| EgressServiceSpec 定义所需的 EgressService 状态 |
|
| EgressServiceStatus 定义 EgressService 的观察状态 |
10.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- EgressServiceSpec 定义所需的 EgressService 状态
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 此服务应向哪些网络发送出口和对应的入口回复。这通常作为 VRF 映射实现,代表一个由省略使用默认主机路由的路由表的数字 id 或字符串名称。 |
|
| 允许限制可以选择的节点在 sourceIPBy=LoadBalancerIP 时处理服务的流量。当只显示标签与指定选择器匹配的节点时,才能选择处理服务的流量。如果不指定集群中的任何节点,就可以选择它来管理该服务的流量。 |
|
|
决定源自支持 LoadBalancer 服务的 pod 的出口流量的源 IP。当 |
10.1.2. .spec.nodeSelector 复制链接链接已复制到粘贴板!
- 描述
- 允许限制可以选择的节点在 sourceIPBy=LoadBalancerIP 时处理服务的流量。当只显示标签与指定选择器匹配的节点时,才能选择处理服务的流量。如果不指定集群中的任何节点,就可以选择它来管理该服务的流量。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
10.1.5. .status 复制链接链接已复制到粘贴板!
- 描述
- EgressServiceStatus 定义 EgressService 的观察状态
- 类型
-
object
- 必填
-
主机
-
属性 | 类型 | 描述 |
---|---|---|
|
| 选择用于处理服务流量的节点名称。如果 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 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 EgressService 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 EgressService 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 EgressService
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| EgressService 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 EgressService
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 EgressService
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 EgressService
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 EgressService
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| EgressService 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 EgressService 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 EgressService 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 EgressService 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
第 11 章 Endpoints [v1] 复制链接链接已复制到粘贴板!
- 描述
端点是实施实际服务的端点集合。Example:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 类型
-
object
11.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| 所有端点的集合是所有子集的联合。根据它们共享的 IP,地址被放入子集中。具有多个端口的单一地址,其中有些地址已就绪,它们没有(因为它们来自不同的容器)将导致不同端口的不同子集中显示地址。同一子集中的 Addresses 和 NotReadyAddresses 中都没有地址。组成服务的地址和端口集合。 |
|
| 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}] }
{ Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}], Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}] }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成的端点集可视为:
a: [ 10.10.1.1:8675, 10.10.2.2:8675 ], b: [ 10.10.1.1:309, 10.10.2.2:309 ]
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 Copied! Toggle word wrap Toggle overflow - 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 提供标记为就绪的相关端口的 IP 地址。这些端点应该被视为安全的负载均衡器和客户端。 |
|
| EndpointAddress 是一个描述单个 IP 地址的元组。 |
|
| 提供相关端口但当前未标记为就绪的 IP 地址,因为它们尚未完成,并且最近未完成就绪度检查,或者最近失败了存活度检查。 |
|
| EndpointAddress 是一个描述单个 IP 地址的元组。 |
|
| 相关 IP 地址上可用的端口号。 |
|
| EndpointPort 是一个描述单个端口的元组。 |
11.1.3. .subsets[].addresses 复制链接链接已复制到粘贴板!
- 描述
- 提供标记为就绪的相关端口的 IP 地址。这些端点应该被视为安全的负载均衡器和客户端。
- 类型
-
array
11.1.4. .subsets[].addresses[] 复制链接链接已复制到粘贴板!
- 描述
- EndpointAddress 是一个描述单个 IP 地址的元组。
- 类型
-
object
- 必填
-
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)。 |
|
| 可选:托管此端点的节点。这可用于确定本地到节点的端点。 |
|
| ObjectReference 包含足够信息供您检查或修改引用的对象。 |
11.1.5. .subsets[].addresses[].targetRef 复制链接链接已复制到粘贴板!
- 描述
- ObjectReference 包含足够信息供您检查或修改引用的对象。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 引用的 API 版本。 |
|
| 如果引用的是对象的一部分而非整个对象,则该字符串应包含有效的 JSON/Go 字段访问声明,如 desiredState.manifest.containers[2]。例如,如果对象引用是一个 pod 中的容器,它应该还以下类似: "spec.containers{name}"(其中 "name" 是指触发事件的容器的名称),如果不使用容器名称,则应类似于 "spec.containers[2]"(使用此 pod 中索引值为 2 的容器)。选择这个语法的原因是,为了有一些指向对象部分的正确定义方法。 |
|
| 引用的类型。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
| 引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
|
| 引用的命名空间。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ |
|
| 指定构成这个引用的 resourceVersion(如果存在)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
|
| 引用的 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 此端点的主机名 |
|
| 此端点的 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)。 |
|
| 可选:托管此端点的节点。这可用于确定本地到节点的端点。 |
|
| ObjectReference 包含足够信息供您检查或修改引用的对象。 |
11.1.8. .subsets[].notReadyAddresses[].targetRef 复制链接链接已复制到粘贴板!
- 描述
- ObjectReference 包含足够信息供您检查或修改引用的对象。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 引用的 API 版本。 |
|
| 如果引用的是对象的一部分而非整个对象,则该字符串应包含有效的 JSON/Go 字段访问声明,如 desiredState.manifest.containers[2]。例如,如果对象引用是一个 pod 中的容器,它应该还以下类似: "spec.containers{name}"(其中 "name" 是指触发事件的容器的名称),如果不使用容器名称,则应类似于 "spec.containers[2]"(使用此 pod 中索引值为 2 的容器)。选择这个语法的原因是,为了有一些指向对象部分的正确定义方法。 |
|
| 引用的类型。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
| 引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
|
| 引用的命名空间。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ |
|
| 指定构成这个引用的 resourceVersion(如果存在)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
|
| 引用的 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 此端口的应用程序协议。这用作实现的提示,以便为它们理解的协议提供更丰富的行为。此字段遵循标准 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。 |
|
| 此端口的名称。这必须与对应的 ServicePort 中的 'name' 字段匹配。必须是 DNS_LABEL。仅在定义了一个端口时才可选。 |
|
| 端点的端口号。 |
|
| 此端口的 IP 协议。必须是 UDP、TCP 或 SCTP。默认为 TCP。
可能枚举值: - |
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 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
11.2.2. /api/v1/watch/endpoints 复制链接链接已复制到粘贴板!
- HTTP 方法
-
GET
- 描述
- 观察单个对 Endpoints 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
11.2.3. /api/v1/namespaces/{namespace}/endpoints 复制链接链接已复制到粘贴板!
- HTTP 方法
-
DELETE
- 描述
- 删除端点集合
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出或监视类型为 Endpoints 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建端点
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
11.2.4. /api/v1/watch/namespaces/{namespace}/endpoints 复制链接链接已复制到粘贴板!
- HTTP 方法
-
GET
- 描述
- 观察单个对 Endpoints 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
11.2.5. /api/v1/namespaces/{namespace}/endpoints/{name} 复制链接链接已复制到粘贴板!
参数 | 类型 | 描述 |
---|---|---|
|
| 端点的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除端点
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 读取指定的端点
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的端点
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的端点
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| 端点的名称 |
- HTTP 方法
-
GET
- 描述
- 观察对类型为 Endpoints 的对象的更改。已弃用:使用带列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
第 12 章 EndpointSlice [discovery.k8s.io/v1] 复制链接链接已复制到粘贴板!
- 描述
- EndpointSlice 代表实施服务的端点的子集。对于给定服务,可能有多个 EndpointSlice 对象,它们通过标签选择,必须加入来生成完整的端点。
- 类型
-
object
- 必填
-
addressType
-
端点
-
12.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| addressType 指定此 EndpointSlice 执行的地址类型。这个片段中的所有地址都必须是相同的类型。此字段在创建后是不可变的。目前支持以下地址类型:* IPv4:代表 IPv4 地址。* IPv6:代表 IPv6 地址。* FQDN:代表完全限定域名。
可能枚举值: - |
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| 端点是此片段中唯一端点的列表。每个片段最多可能包括 1000 个端点。 |
|
| 端点代表实施服务的单一逻辑"后端"。 |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。 | |
|
| ports 指定此片段中每个端点公开的网络端口列表。每个端口都必须具有唯一的名称。当端口为空时,这表明没有定义的端口。当使用 nil port 值定义端口时,它表示 "all ports"。每个片段最多可能包括 100 个端口。 |
|
| EndpointPort 代表 EndpointSlice 使用的端口 |
12.1.1. .endpoints 复制链接链接已复制到粘贴板!
- 描述
- 端点是此片段中唯一端点的列表。每个片段最多可能包括 1000 个端点。
- 类型
-
array
12.1.2. .endpoints[] 复制链接链接已复制到粘贴板!
- 描述
- 端点代表实施服务的单一逻辑"后端"。
- 类型
-
object
- 必填
-
addresses
-
属性 | 类型 | 描述 |
---|---|---|
|
| 此端点的地址。此字段的内容会根据对应的 EndpointSlice addressType 字段进行解释。消费者必须在自身功能的情况下处理不同类型的地址。这必须至少包含一个地址,但没有超过 100 个。这些都假定是非常有的,客户端可能会选择仅使用第一个元素。请参阅 :https://issue.k8s.io/106267 |
|
| EndpointConditions 代表端点的当前条件。 |
|
| deprecatedTopology 包含 v1beta1 API 的拓扑信息部分。此字段已弃用,并在 v1beta1 API 被删除时删除(不早于 kubernetes v1.24)。虽然此字段可以保存值,但无法通过 v1 API 写入值,但任何尝试写入它都将静默忽略。拓扑信息可在 zone 和 nodeName 字段中找到。 |
|
| EndpointHints 提供了描述如何使用端点的提示。 |
|
| 此端点的主机名。此字段可由端点使用者使用,以区分不同的端点(例如在 DNS 名称中)。使用相同主机名的多个端点应被视为无限(例如,DNS 中的多个 A 值)。必须是小写并传递 DNS 标签(RFC 1123)验证。 |
|
| nodeName 代表托管此端点的节点的名称。这可用于确定本地到节点的端点。 |
| TargetRef 是代表此端点的 Kubernetes 对象的引用。 | |
|
| zone 是此端点所在的区域的名称。 |
12.1.3. .endpoints[].conditions 复制链接链接已复制到粘贴板!
- 描述
- EndpointConditions 代表端点的当前条件。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| Ready 表示此端点已准备好接收流量,具体取决于任何系统正在管理端点。nil 值表示未知状态。在大多数情况下,消费者应将此未知状态解释为就绪。出于兼容性的原因,对于终止端点,ready 不应该为 "true",但当正常就绪度行为被显式覆盖时,例如,相关服务设置了 publishNotReadyAddresses 标志时。 |
|
| serving 与 ready 相同,除了无论端点终止状态如何设置。对于终止的就绪端点,此条件应设为 true。如果为 nil,消费者应该会延迟到 ready 条件。 |
|
| Terminating 表示此端点正在终止。nil 值表示未知状态。消费者应解释这个未知状态,以表示端点没有终止。 |
12.1.4. .endpoints[].hints 复制链接链接已复制到粘贴板!
- 描述
- EndpointHints 提供了描述如何使用端点的提示。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| forZones 表示此端点应使用的区域,以启用拓扑感知路由。 |
|
| ForZone 提供有关哪些区域应使用此端点的信息。 |
12.1.5. .endpoints[].hints.forZones 复制链接链接已复制到粘贴板!
- 描述
- forZones 表示此端点应使用的区域,以启用拓扑感知路由。
- 类型
-
array
12.1.6. .endpoints[].hints.forZones[] 复制链接链接已复制到粘贴板!
- 描述
- ForZone 提供有关哪些区域应使用此端点的信息。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 代表区域的名称。 |
12.1.7. .ports 复制链接链接已复制到粘贴板!
- 描述
- ports 指定此片段中每个端点公开的网络端口列表。每个端口都必须具有唯一的名称。当端口为空时,这表明没有定义的端口。当使用 nil port 值定义端口时,它表示 "all ports"。每个片段最多可能包括 100 个端口。
- 类型
-
array
12.1.8. .ports[] 复制链接链接已复制到粘贴板!
- 描述
- EndpointPort 代表 EndpointSlice 使用的端口
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 此端口的应用程序协议。这用作实现的提示,以便为它们理解的协议提供更丰富的行为。此字段遵循标准 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 表示此端口的名称。EndpointSlice 中的所有端口都必须具有唯一的名称。如果 EndpointSlice 派生自 Kubernetes 服务,则对应于 Service.ports[].name。name 必须是空字符串或传递 DNS_LABEL 验证:* 不得超过 63 个字符。* 必须包含小写字母数字字符或 '-'。* 必须以字母数字字符开头和结尾。默认为空字符串。 |
|
| port 代表端点的端口号。如果没有指定,则端口不会被限制,必须在特定消费者的上下文中解释端口。 |
|
| protocol 代表此端口的 IP 协议。必须是 UDP、TCP 或 SCTP。默认为 TCP。
可能枚举值: - |
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 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
12.2.2. /apis/discovery.k8s.io/v1/watch/endpointslices 复制链接链接已复制到粘贴板!
- HTTP 方法
-
GET
- 描述
- 观察单个对 EndpointSlice 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 EndpointSlice 集合
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出或监视 EndpointSlice 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 EndpointSlice
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 观察单个对 EndpointSlice 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| EndpointSlice 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 EndpointSlice
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 EndpointSlice
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 EndpointSlice
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 EndpointSlice
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| EndpointSlice 的名称 |
- HTTP 方法
-
GET
- 描述
- 观察对类型为 EndpointSlice 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
第 13 章 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
- 必填
-
spec
-
13.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| 所需出口路由器的规格。 |
|
| 观察到 EgressRouter 的状态。 |
13.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- 所需出口路由器的规格。
- 类型
-
object
- 必填
-
addresses
-
模式
-
networkInterface
-
属性 | 类型 | 描述 |
---|---|---|
|
| 要在 pod 二级接口上配置的 IP 地址列表。 |
|
| EgressRouterAddress 包含要在路由器接口上配置的 IP CIDR 和网关的一对 |
|
| 模式描述用于出口路由器的模式。默认模式为 "Redirect",它是目前唯一支持的模式。 |
|
| 要创建/使用的接口规格。默认值为 macvlan。目前只支持 macvlan。 |
|
| redirect 代表特定于重定向模式的配置参数。 |
13.1.2. .spec.addresses 复制链接链接已复制到粘贴板!
- 描述
- 要在 pod 二级接口上配置的 IP 地址列表。
- 类型
-
array
13.1.3. .spec.addresses[] 复制链接链接已复制到粘贴板!
- 描述
- EgressRouterAddress 包含要在路由器接口上配置的 IP CIDR 和网关的一对
- 类型
-
object
- 必填
-
ip
-
属性 | 类型 | 描述 |
---|---|---|
|
| 如果无法自动决定下一跃点网关的 IP 地址。可以是 IPv4 或 IPv6。 |
|
| IP 是要在路由器接口上配置的地址。可以是 IPv4 或 IPv6。 |
13.1.4. .spec.networkInterface 复制链接链接已复制到粘贴板!
- 描述
- 要创建/使用的接口规格。默认值为 macvlan。目前只支持 macvlan。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 特定于 interfaceType macvlan 的参数 |
13.1.5. .spec.networkInterface.macvlan 复制链接链接已复制到粘贴板!
- 描述
- 特定于 interfaceType macvlan 的参数
- 类型
-
object
- 必填
-
模式
-
属性 | 类型 | 描述 |
---|---|---|
|
| master 接口的名称。如果可以从 IP 地址中推断出来,则不需要指定。 |
|
| 模式描述了用于 macvlan 接口的模式 ; Bridge|Private|VEPA|Passthru 之一。默认模式为 "Bridge"。 |
13.1.6. .spec.redirect 复制链接链接已复制到粘贴板!
- 描述
- redirect 代表特定于重定向模式的配置参数。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| fallbackIP 指定远程目的地的 IP 地址。可以是 IPv4 或 IPv6。如果没有指定重定向规则,则来自路由器的所有流量都会被重定向到此 IP。如果指定了重定向规则,则路由器上的任何其他端口(未定义)上的任何连接都将重定向到此 IP。如果指定了重定向规则,且没有提供回退 IP,则其他端口上的连接将直接被拒绝。 |
|
| L4RedirectRules 列表,在重定向模式中定义从 pod 到目的地的 DNAT 重定向。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| ip 指定远程目标的 IP 地址。可以是 IPv4 或 IPv6。 |
|
| port 是客户端应向其发送流量的端口号。 |
|
| 协议可以是 TCP、SCTP 或 UDP。 |
|
| targetPort 允许指定流量重定向到的远程目的地上的端口号。如果未指定,则使用 "Port" 的值。 |
13.1.9. .status 复制链接链接已复制到粘贴板!
- 描述
- 观察到 EgressRouter 的状态。
- 类型
-
object
- 必填
-
conditions
-
属性 | 类型 | 描述 |
---|---|---|
|
| 观察出口路由器的状态 |
|
| EgressRouterStatusCondition 代表出口路由器的受管和受监控组件的状态。 |
13.1.10. .status.conditions 复制链接链接已复制到粘贴板!
- 描述
- 观察出口路由器的状态
- 类型
-
array
13.1.11. .status.conditions[] 复制链接链接已复制到粘贴板!
- 描述
- EgressRouterStatusCondition 代表出口路由器的受管和受监控组件的状态。
- 类型
-
object
- 必填
-
status
-
type
-
属性 | 类型 | 描述 |
---|---|---|
| `` | lastTransitionTime 是当前 status 属性最后一次更新的时间。 |
|
| Message 提供有关当前条件的附加信息。这只能被人类使用。它可以包含行 Feed 字符(U+000A),该字符应作为新行呈现。 |
|
| reason 是条件当前状态的 CamelCase 原因。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| 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 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 EgressRouter 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 EgressRouter 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 EgressRouter
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| EgressRouter 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 EgressRouter
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 EgressRouter
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 EgressRouter
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 EgressRouter
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| EgressRouter 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 EgressRouter 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 EgressRouter 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 EgressRouter 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
第 14 章 GRPCRoute [gateway.networking.k8s.io/v1] 复制链接链接已复制到粘贴板!
- 描述
GRPCRoute 提供路由 gRPC 请求的方法。这包括通过主机名、gRPC 服务、gRPC 方法或 HTTP/2 标头来匹配请求的能力。过滤器可用于指定其他处理步骤。后端指定匹配请求的位置。
GRPCRoute 在网关 API 内受扩展支持。在以下规格中,单词 "MUST" 表示支持 GRPCRoute 的实施必须符合指定要求,但不支持此路由类型的实施不需要遵循要求,除非明确指示。
支持带有
HTTPS
ProtocolType
的GRPCRoute
的实施必须接受 HTTP/2 连接,而无需从 HTTP/1.1 进行初始升级,例如通过 ALPN。如果实现不支持此功能,则必须将受影响监听器的 "Accepted" 条件设置为 "False",原因为 "UnsupportedProtocol"。实施 MAY 也接受来自 HTTP/1 的 HTTP/2 连接。支持带有
HTTP
ProtocolType
的GRPCRoute
的实现,在没有从 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. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| spec 定义 GRPCRoute 的所需状态。 |
|
| Status 定义 GRPCRoute 的当前状态。 |
14.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- spec 定义 GRPCRoute 的所需状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| hostnames 定义一组与 GRPC Host 标头匹配的主机名,以选择处理请求的 GRPCRoute。这与主机名的 RFC 1123 定义匹配,并带有 2 值得例外:
1.不允许使用 IP。2.主机名可以带有通配符标签前缀(.<)。 如果主机名由 Listener 和 GRPCRoute 指定,则必须至少有一个用于 GRPCRoute 的交集主机名才能附加到 Listener。例如:
* 使用
带有通配符标签(MyPlaybooks)前缀的主机名被解释为后缀匹配。
如果 Listener 和 GRPCRoute 都指定了主机名,则忽略任何与 Listener 主机名不匹配的 GRPCRoute 主机名。例如,如果指定了 Listener.
如果 Listener 和 GRPCRoute 都指定了主机名,并且与上述条件都不匹配,则实施不接受 GRPCRoute MUST。实现 MUST 引发 'Accepted' Condition,其状态在对应的 RouteParentStatus 中。 如果类型为 HTTPRoute 或 GRPCRoute 的 Route (A)附加到 Listener,并且侦听器已附加了其他类型的路由(B),并且 A 和 B 主机名的交集是非空的,那么实施 MUST 接受这两个路由之一,具体由以下条件确定: * 基于创建时间戳的最旧的路由。* 路由以字母顺序按 "{namespace}/{name}" 开头。 拒绝的路由在对应的 RouteParentStatus 中引发 'Accepted' 条件,状态为 'False'。 支持:Core |
|
| 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 条目会有所不同。就字段而言,这意味着由 一些示例:
* 如果一个 ParentRef 设置 可以单独引用多个不同的对象,这些对象可能会被实施折叠。例如,一些实现可能会选择将兼容的网关 Listeners 合并在一起。如果是这种情况,则也应合并附加到这些资源的路由列表。 请注意,对于跨命名空间边界的 ParentRefs,有特定的规则。只有跨命名空间引用被引用的命名空间中明确允许时才有效。例如,Gateway 具有 AllowedRoutes 字段,ReferenceGrant 提供了启用其他类型的跨命名空间参考的通用方法。 |
|
| ParentReference 识别一个 API 对象(通常是网关),它被视为此资源的父项(通常是路由)。支持"Core"支持的父资源有两种: * gateway (Gateway conformance profile)* Service (Mesh conformance profile, only ClusterIP Services) 以后可能会扩展此 API,以支持其他类型的父资源。 API 对象必须在集群中有效;集群中必须注册 Group 和 Kind,以便此引用有效。 |
|
| 规则是 GRPC 匹配器、过滤器和操作的列表。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。如果未指定,"gateway.networking.k8s.io" 将推断出来。要设置核心 API 组(如 "Service" kind referent),Group 必须明确设置为 "" (空字符串)。 支持:Core |
|
| kind 是引用的类型。 支持"Core"支持的父资源有两种: * gateway (Gateway conformance profile)* Service (Mesh conformance profile, only ClusterIP Services) 对其他资源的支持是特定于实施的。 |
|
| name 是引用的名称。 支持:Core |
|
| namespace 是引用的命名空间。如果未指定,这指的是 Route 的本地命名空间。 请注意,对于跨命名空间边界的 ParentRefs 有特定的规则。只有跨命名空间引用被引用的命名空间中明确允许时才有效。例如: Gateway 具有 AllowedRoutes 字段,ReferenceGrant 提供了一种通用方法来启用其他类型的跨命名空间引用。 支持:Core |
|
| port 是此 Route 目标的网络端口。它可以根据父资源的类型进行解释。
当父资源是网关时,此目标是在支持此类 Route (并选择此路由)的指定端口上侦听所有的监听程序。不建议设置 实施 MAY 选择支持其他父资源。支持其他类型的父资源的实施必须清楚地记录/如果端口的解释方式。 对于状态,只要父资源接受部分,则附加被视为成功。例如,网关监听程序可以通过 Route kind、namespace 或 hostname 来限制哪些 Routes 可以附加到它们。如果 2 网关监听程序的 1 个接受来自引用路由的附件,则路由必须被视为成功附加。如果没有网关监听程序接受来自此 Route 的附件,则路由必须被视为与网关分离。 支持:扩展 |
|
| 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
属性 | 类型 | 描述 |
---|---|---|
|
| BackendRefs 定义应发送匹配的请求的后端。 此处的故障行为取决于指定的 BackendRefs 数量以及无效的后端。
如果 BackendRefs 中的所有 条目都无效,且没有在此路由规则中指定过滤器,则 与这个 规则匹配的所有流量都必须接收 有关使单个 GRPCBackendRef 无效的规则,请参阅 GRPCBackendRef 定义。
当 GRPCBackendRef 无效时,必须为其他路由到无效后端的请求返回
例如,如果指定了两个后端,并带有相等的权重,一个无效,50% 的流量需要接收 支持 :Kubernetes Service 的核心 支持:特定于任何其他资源的实现 对权重的支持: Core |
|
| GRPCBackendRef 定义 GRPCRoute 如何转发 gRPC 请求。 请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。 |
|
| 过滤器定义应用到与此规则匹配的请求的过滤器。 当前未指定多个行为的排序效果。这可以根据 alpha 阶段中的反馈来改变。 此级别上的一致性级别会根据过滤器类型定义: - 所有核心过滤器都必须受到支持 GRPCRoute 的所有实现支持。- 鼓励实施器支持扩展过滤器。- 特定于实施的自定义过滤器在实现过程中没有 API 保证。 除非在过滤器中明确指定,否则不支持多次指定同一过滤器。
如果实施无法支持过滤器的组合,它必须清楚地记录该限制。如果指定了不兼容或不支持的过滤器,并导致 支持:Core |
|
| GRPCRouteFilter 定义在请求或响应生命周期内必须完成的处理步骤。GRPCRouteFilters 充当一个扩展点,用于表达在网关实施中可能完成的处理。有些示例包括请求或响应修改、实施身份验证策略、速率限制和流量控制。API 保证/格式根据过滤器的类型定义。 |
|
| matches 定义用于与传入 gRPC 请求匹配的规则的条件。每个匹配项都独立,例如,如果 满足任何 其中一个匹配项,则此规则将匹配。 例如,使用以下内容匹配配置: matches: - method: service: foo.bar headers: values: version: 2 - method: service: foo.bar.v2 要针对此规则匹配请求,它必须满足两个条件的 EITHER:
- foo.bar AND 的服务包含标头 有关如何指定要同时指定多个匹配条件的信息,请参阅 GRPCRouteMatch 文档。 如果没有指定匹配项,实施必须匹配每个 gRPC 请求。 从 GRPCRoutes MUST 生成的代理或负载均衡器路由配置根据以下条件确定规则的优先级,继续绑定。GRPCRoutes 和 HTTPRoutes 之间不进行合并。优先级必须为具有最大数量的规则指定: * 在匹配非通配符主机名中的字符。* 匹配主机名中的字符。* 匹配服务中的字符。* 匹配方法中的字符。* 标头匹配。 如果绑定仍存在于多个路由中,则按以下条件顺序确定匹配的优先级,继续绑定: * 基于创建时间戳的最旧的路由。* 路由以字母顺序按 "{namespace}/{name}" 开头。 如果绑定仍存在于给定优先级的路由中,则必须为满足上述条件的第一个匹配规则授予匹配的优先级。 |
|
| GRPCRouteMatch 定义用于将请求与给定操作匹配的 predicate。多个匹配类型是 AND,即仅在满足所有条件时,匹配才会评估为 true。
例如,只有在服务是 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 只有当请求被转发到此处定义的后端时,才会执行此级别中定义的过滤器。 支持:特定于实现的(对于更广泛的过滤器支持,请使用 GRPCRouteRule 中的 Filters 字段。) |
|
| GRPCRouteFilter 定义在请求或响应生命周期内必须完成的处理步骤。GRPCRouteFilters 充当一个扩展点,用于表达在网关实施中可能完成的处理。有些示例包括请求或响应修改、实施身份验证策略、速率限制和流量控制。API 保证/格式根据过滤器的类型定义。 |
|
| 组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。 |
|
| kind 是引用的 Kubernetes 资源类型。例如 "Service"。 如果没有指定,则默认为 "Service"。 ExternalName 服务可以引用集群中可能位于的 CNAME DNS 记录,因此很难考虑一致性。它们也可能不安全(请参阅 CVE-2021-25740 了解更多信息)。实施 SHOULD 不支持 ExternalName 服务。 Support: Core (带有 ExternalName 以外的类型的服务) 支持:特定于实现的(类型为 ExternalName 的服务) |
|
| name 是引用的名称。 |
|
| namespace 是后端的命名空间。如果未指定,本地命名空间将被推断出来。 请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。 支持:Core |
|
| port 指定用于此资源的目标端口号。当引用是 Kubernetes 服务时,需要端口。在本例中,端口号是服务端口号,而不是目标端口。对于其他资源,目的地端口可能源自引用资源或此字段。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。 支持:特定于实施 此过滤器可以在同一规则内多次使用。 |
|
| RequestHeaderModifier 定义修改请求标头的过滤器的模式。 支持:Core |
|
| RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。 此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。 支持:扩展 |
|
| ResponseHeaderModifier 为修改响应标头的过滤器定义模式。 支持:扩展 |
|
| Type 标识要应用的过滤器类型。与其他 API 字段一样,类型被分为三个一致性级别: - core :过滤类型及其在这个软件包中"Support: Core"定义的相应配置,例如:"RequestHeaderModifier".支持 GRPCRoute 的所有实施都必须支持核心过滤器。 - Extended: Filter type 及其对应的配置由这个软件包中的"Support: Extended"定义,例如:"RequestMirror"。我们鼓励实施人员支持扩展过滤器。
- 特定于实现的:由特定供应商定义和支持的过滤器。未来,显示多个实施中行为的过滤器将被视为扩展或核心一致性级别。这些过滤器的特定于过滤器的配置使用 ExtensionRef 字段指定。 我们鼓励实施人员定义自定义实施类型,以使用特定于实施的行为来扩展核心 API。 如果无法解析对自定义过滤器类型的引用,则不会跳过过滤器。相反,已由该过滤器处理的请求接收 HTTP 错误响应。 |
- 描述
ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。
支持:特定于实施
此过滤器可以在同一规则内多次使用。
- 类型
-
object
- 必填
-
group
-
kind
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。 |
|
| kind 是引用的类型。例如 "HTTPRoute" 或 "Service"。 |
|
| name 是引用的名称。 |
- 描述
RequestHeaderModifier 定义修改请求标头的过滤器的模式。
支持:Core
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。 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 标头名称和值。 |
|
| 在操作前,从 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 |
|
| 在操作前,使用给定标头(名称、值)设置覆盖请求。 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 标头名称和值。 |
- 描述
在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。
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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| value 是要匹配的 HTTP 标头的值。 |
- 描述
RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。
此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。
支持:扩展
- 类型
-
object
- 必填
-
backendRef
-
属性 | 类型 | 描述 |
---|---|---|
|
| BackendRef 引用发送镜像请求的资源。 镜像请求必须只发送到此 BackendRef 中的单个目标端点,无论此 BackendRef 中有多少端点。
如果无法找到引用,则此 BackendRef 无效,且必须从网关中丢弃。控制器必须确保将 Route 状态上的 "ResolvedRefs" 条件设置为
如果对 ReferenceGrant 不允许 的现有 对象有一个跨命名空间引用,控制器必须确保 Route 上的 "ResolvedRefs" 条件被设置为
在任一错误情况下,应该使用 支持:为 Kubernetes Service 扩展 支持:特定于任何其他资源的实现 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。 |
|
| kind 是引用的 Kubernetes 资源类型。例如 "Service"。 如果没有指定,则默认为 "Service"。 ExternalName 服务可以引用集群中可能位于的 CNAME DNS 记录,因此很难考虑一致性。它们也可能不安全(请参阅 CVE-2021-25740 了解更多信息)。实施 SHOULD 不支持 ExternalName 服务。 Support: Core (带有 ExternalName 以外的类型的服务) 支持:特定于实现的(类型为 ExternalName 的服务) |
|
| name 是引用的名称。 |
|
| namespace 是后端的命名空间。如果未指定,本地命名空间将被推断出来。 请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。 支持:Core |
|
| port 指定用于此资源的目标端口号。当引用是 Kubernetes 服务时,需要端口。在本例中,端口号是服务端口号,而不是目标端口。对于其他资源,目的地端口可能源自引用资源或此字段。 |
- 描述
fraction 代表应镜像到 BackendRef 的请求的比例。
只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。
- 类型
-
object
- 必填
-
numerator
-
属性 | 类型 | 描述 |
---|---|---|
|
| |
|
|
- 描述
ResponseHeaderModifier 为修改响应标头的过滤器定义模式。
支持:扩展
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。 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 标头名称和值。 |
|
| 在操作前,从 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 |
|
| 在操作前,使用给定标头(名称、值)设置覆盖请求。 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 标头名称和值。 |
- 描述
在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。
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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。 支持:特定于实施 此过滤器可以在同一规则内多次使用。 |
|
| RequestHeaderModifier 定义修改请求标头的过滤器的模式。 支持:Core |
|
| RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。 此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。 支持:扩展 |
|
| ResponseHeaderModifier 为修改响应标头的过滤器定义模式。 支持:扩展 |
|
| Type 标识要应用的过滤器类型。与其他 API 字段一样,类型被分为三个一致性级别: - core :过滤类型及其在这个软件包中"Support: Core"定义的相应配置,例如:"RequestHeaderModifier".支持 GRPCRoute 的所有实施都必须支持核心过滤器。 - Extended: Filter type 及其对应的配置由这个软件包中的"Support: Extended"定义,例如:"RequestMirror"。我们鼓励实施人员支持扩展过滤器。
- 特定于实现的:由特定供应商定义和支持的过滤器。未来,显示多个实施中行为的过滤器将被视为扩展或核心一致性级别。这些过滤器的特定于过滤器的配置使用 ExtensionRef 字段指定。 我们鼓励实施人员定义自定义实施类型,以使用特定于实施的行为来扩展核心 API。 如果无法解析对自定义过滤器类型的引用,则不会跳过过滤器。相反,已由该过滤器处理的请求接收 HTTP 错误响应。 |
14.1.26. .spec.rules[].filters[].extensionRef 复制链接链接已复制到粘贴板!
- 描述
ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。
支持:特定于实施
此过滤器可以在同一规则内多次使用。
- 类型
-
object
- 必填
-
group
-
kind
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。 |
|
| kind 是引用的类型。例如 "HTTPRoute" 或 "Service"。 |
|
| name 是引用的名称。 |
14.1.27. .spec.rules[].filters[].requestHeaderModifier 复制链接链接已复制到粘贴板!
- 描述
RequestHeaderModifier 定义修改请求标头的过滤器的模式。
支持:Core
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。 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 标头名称和值。 |
|
| 在操作前,从 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 |
|
| 在操作前,使用给定标头(名称、值)设置覆盖请求。 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 标头名称和值。 |
- 描述
在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。
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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| value 是要匹配的 HTTP 标头的值。 |
14.1.32. .spec.rules[].filters[].requestMirror 复制链接链接已复制到粘贴板!
- 描述
RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。
此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。
支持:扩展
- 类型
-
object
- 必填
-
backendRef
-
属性 | 类型 | 描述 |
---|---|---|
|
| BackendRef 引用发送镜像请求的资源。 镜像请求必须只发送到此 BackendRef 中的单个目标端点,无论此 BackendRef 中有多少端点。
如果无法找到引用,则此 BackendRef 无效,且必须从网关中丢弃。控制器必须确保将 Route 状态上的 "ResolvedRefs" 条件设置为
如果对 ReferenceGrant 不允许 的现有 对象有一个跨命名空间引用,控制器必须确保 Route 上的 "ResolvedRefs" 条件被设置为
在任一错误情况下,应该使用 支持:为 Kubernetes Service 扩展 支持:特定于任何其他资源的实现 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。 |
|
| kind 是引用的 Kubernetes 资源类型。例如 "Service"。 如果没有指定,则默认为 "Service"。 ExternalName 服务可以引用集群中可能位于的 CNAME DNS 记录,因此很难考虑一致性。它们也可能不安全(请参阅 CVE-2021-25740 了解更多信息)。实施 SHOULD 不支持 ExternalName 服务。 Support: Core (带有 ExternalName 以外的类型的服务) 支持:特定于实现的(类型为 ExternalName 的服务) |
|
| name 是引用的名称。 |
|
| namespace 是后端的命名空间。如果未指定,本地命名空间将被推断出来。 请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。 支持:Core |
|
| port 指定用于此资源的目标端口号。当引用是 Kubernetes 服务时,需要端口。在本例中,端口号是服务端口号,而不是目标端口。对于其他资源,目的地端口可能源自引用资源或此字段。 |
14.1.34. .spec.rules[].filters[].requestMirror.fraction 复制链接链接已复制到粘贴板!
- 描述
fraction 代表应镜像到 BackendRef 的请求的比例。
只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。
- 类型
-
object
- 必填
-
numerator
-
属性 | 类型 | 描述 |
---|---|---|
|
| |
|
|
14.1.35. .spec.rules[].filters[].responseHeaderModifier 复制链接链接已复制到粘贴板!
- 描述
ResponseHeaderModifier 为修改响应标头的过滤器定义模式。
支持:扩展
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。 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 标头名称和值。 |
|
| 在操作前,从 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 |
|
| 在操作前,使用给定标头(名称、值)设置覆盖请求。 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 标头名称和值。 |
- 描述
在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。
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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| 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}"。
如果绑定仍存在于给定优先级的路由中,则必须为满足上述条件的第一个匹配规则授予匹配的优先级。
-
foo.bar AND 的服务包含标头
- 类型
-
数组
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
属性 | 类型 | 描述 |
---|---|---|
|
| 标头指定 gRPC 请求标头匹配器。多个匹配值是 ANDed,这意味着请求需要匹配所有指定的标头才能选择路由。 |
|
| GRPCHeaderMatch 描述了如何通过匹配 gRPC 请求标头来选择 gRPC 路由。 |
|
| method 指定 gRPC 请求服务/方法匹配器。如果没有指定此字段,则所有服务和方法都将匹配。 |
14.1.42. .spec.rules[].matches[].headers 复制链接链接已复制到粘贴板!
- 描述
- 标头指定 gRPC 请求标头匹配器。多个匹配值是 ANDed,这意味着请求需要匹配所有指定的标头才能选择路由。
- 类型
-
数组
14.1.43. .spec.rules[].matches[].headers[] 复制链接链接已复制到粘贴板!
- 描述
- GRPCHeaderMatch 描述了如何通过匹配 gRPC 请求标头来选择 gRPC 路由。
- 类型
-
object
- 必填
-
name
-
value
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 gRPC 标头的名称。 如果多个条目指定了等同的标头名称,则只有具有等同名称的第一个条目才被认为是匹配的。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| type 指定如何与标头值匹配。 |
|
| value 是要匹配的 gRPC 标头的值。 |
14.1.44. .spec.rules[].matches[].method 复制链接链接已复制到粘贴板!
- 描述
- method 指定 gRPC 请求服务/方法匹配器。如果没有指定此字段,则所有服务和方法都将匹配。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 要匹配的方法值。如果留空或省略,将匹配所有服务。 至少一个服务和方法必须是非空字符串。 |
|
| 要匹配的服务的值。如果留空或省略,将匹配任何服务。 至少一个服务和方法必须是非空字符串。 |
|
| type 指定如何与服务和/或方法匹配。支持:Core (指定服务和方法) 支持:特定于实现的(使用指定的方法,未指定服务) 支持:特定于实施(RegularExpression) |
14.1.45. .status 复制链接链接已复制到粘贴板!
- 描述
- Status 定义 GRPCRoute 的当前状态。
- 类型
-
object
- 必填
-
parents
-
属性 | 类型 | 描述 |
---|---|---|
|
| parents 是与路由关联的父资源(通常是网关)的列表,以及每个父对象的路由的状态。当此路由附加到父路由时,管理父路由的控制器必须在控制器第一次看到路由时向这个列表添加一个条目,并在修改路由或网关时更新条目。 请注意,无法通过此 API 实现解析的父引用不会添加到此列表中。此 API 的实现只能为它们负责的网关/父资源填充 Route 状态。 此列表中最多表示 32 个网关。空列表表示路由尚未附加到任何网关。 |
|
| RouteParentStatus 描述了与相关 Parent 相关的路由的状态。 |
14.1.46. .status.parents 复制链接链接已复制到粘贴板!
- 描述
parents 是与路由关联的父资源(通常是网关)的列表,以及每个父对象的路由的状态。当此路由附加到父路由时,管理父路由的控制器必须在控制器第一次看到路由时向这个列表添加一个条目,并在修改路由或网关时更新条目。
请注意,无法通过此 API 实现解析的父引用不会添加到此列表中。此 API 的实现只能为它们负责的网关/父资源填充 Route 状态。
此列表中最多表示 32 个网关。空列表表示路由尚未附加到任何网关。
- 类型
-
数组
14.1.47. .status.parents[] 复制链接链接已复制到粘贴板!
- 描述
- RouteParentStatus 描述了与相关 Parent 相关的路由的状态。
- 类型
-
object
- 必填
-
controllerName
-
parentRef
-
属性 | 类型 | 描述 |
---|---|---|
|
| conditions 描述了与网关相关的路由状态。请注意,路由的可用性也取决于网关自己的状态条件和侦听器状态。 如果 Route 的 ParentRef 指定支持路由路由的现有网关,且网关的控制器有足够的访问权限,那么该网关的控制器必须在 Route 上设置 "Accepted" 条件,以指示网关接受或拒绝该路由,以及原因。 如果网关实施至少一个 Route 规则,则路由必须被视为"接受"。 有些情况下,因为缺少控制器可见性,可能无法设置 "Accepted" 条件,其中包括: * Route 指的是不存在的父对象。* Route 是控制器不支持的类型。* Route 位于控制器无法访问的命名空间中。 |
|
| condition 包含此 API 资源当前状态的一个方面的详细信息。 |
|
| 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 与 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。 |
|
| Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。 |
|
| observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。 |
|
| reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| CamelCase 或 foo.example.com/CamelCase 中的条件类型。 |
14.1.50. .status.parents[].parentRef 复制链接链接已复制到粘贴板!
- 描述
- ParentRef 与 spec 中的 ParentRef 对应,这个 RouteParentStatus struct 描述其状态。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。如果未指定,"gateway.networking.k8s.io" 将推断出来。要设置核心 API 组(如 "Service" kind referent),Group 必须明确设置为 "" (空字符串)。 支持:Core |
|
| kind 是引用的类型。 支持"Core"支持的父资源有两种: * gateway (Gateway conformance profile)* Service (Mesh conformance profile, only ClusterIP Services) 对其他资源的支持是特定于实施的。 |
|
| name 是引用的名称。 支持:Core |
|
| namespace 是引用的命名空间。如果未指定,这指的是 Route 的本地命名空间。 请注意,对于跨命名空间边界的 ParentRefs 有特定的规则。只有跨命名空间引用被引用的命名空间中明确允许时才有效。例如: Gateway 具有 AllowedRoutes 字段,ReferenceGrant 提供了一种通用方法来启用其他类型的跨命名空间引用。 支持:Core |
|
| port 是此 Route 目标的网络端口。它可以根据父资源的类型进行解释。
当父资源是网关时,此目标是在支持此类 Route (并选择此路由)的指定端口上侦听所有的监听程序。不建议设置 实施 MAY 选择支持其他父资源。支持其他类型的父资源的实施必须清楚地记录/如果端口的解释方式。 对于状态,只要父资源接受部分,则附加被视为成功。例如,网关监听程序可以通过 Route kind、namespace 或 hostname 来限制哪些 Routes 可以附加到它们。如果 2 网关监听程序的 1 个接受来自引用路由的附件,则路由必须被视为成功附加。如果没有网关监听程序接受来自此 Route 的附件,则路由必须被视为与网关分离。 支持:扩展 |
|
| 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 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 GRPCRoute 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出类型为 GRPCRoute 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 GRPCRoute
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| GRPCRoute 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 GRPCRoute
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 读取指定的 GRPCRoute
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 GRPCRoute
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 GRPCRoute
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| GRPCRoute 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 GRPCRoute 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 GRPCRoute 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 GRPCRoute 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
第 15 章 Gateway [gateway.networking.k8s.io/v1] 复制链接链接已复制到粘贴板!
- 描述
- gateway 通过将 Listeners 绑定到一组 IP 地址来代表服务流量处理基础架构的实例。
- 类型
-
object
- 必填
-
spec
-
15.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| spec 定义网关的所需状态。 |
|
| Status 定义网关的当前状态。 |
15.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- spec 定义网关的所需状态。
- 类型
-
object
- 必填
-
gatewayClassName
-
监听器
-
属性 | 类型 | 描述 |
---|---|---|
|
| 为此网关请求的地址。这是可选的,行为取决于实现。如果在 spec 中设置值并且请求的地址无效或不可用,实施必须指示在 GatewayStatus.Addresses 中的关联条目中指明这一点。 Addresses 字段表示在网关"外面"地址的请求,此网关绑定的流量将使用。这可以是外部负载均衡器或其他网络基础架构的 IP 地址或主机名,或者流量将发送到的一些其他地址。 如果没有指定地址,实施 MAY 以特定于实施的方式调度网关,分配适当的地址集合。 实现 MUST 将所有 Listeners 绑定到分配给网关的每个网关Address,并在 GatewayStatus.Addresses 中添加对应的条目。 支持:扩展 |
|
| GatewayAddress 描述了可绑定到网关的地址。 |
|
| 用于此网关的 GatewayClassName。这是 GatewayClass 资源的名称。 |
|
| 基础架构定义了有关此网关实例的基础架构级属性。 支持:扩展 |
|
| 与此网关关联的监听器.侦听器定义在这个网关地址上绑定的逻辑端点。至少指定一个 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 协议相同的 在这种情况下,所有与 TCP Listener 共享端口的 Listeners 并不不同,因此不接受它。 如果实现不支持 TCP 协议 Listeners,则不会应用前面的规则,并且不接受 TCP Listeners SHOULD。
请注意, # 监听程序只通过主机名不同 当 Listeners 只根据主机名不同时,入站请求主机名需要与最具体的特定主机名值匹配,以选择正确的 Listener 及其相关路由集合。
在通配符匹配前,需要处理完全匹配,在回退(空主机名值)匹配前,会处理通配符匹配。例如:
此外,如果有多个通配符条目,必须在较少的特定通配符条目之前处理更具体的通配符条目。例如: 这里的精确定义是通配符字符右侧的点数越高,优先级越高。
通配符字符会将任意数量的字符和 点 与左侧匹配,因此 处理不一致的 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 隔离功能的实现有明确记录,但必须声明支持
支持 Listener 隔离 SHOULD 声明对扩展 兼容 Listeners 如果出现以下情况,网关的 Listeners 被视为 兼容 : 1.它们与众不同。2.该实施可以满足所有所分配的地址上可用的地址要求。 扩展支持中的兼容组合因实施而异。与一个实现兼容的组合可能与另一个实现不兼容。 例如,一个不能在同一地址上提供 TCP 和 UDP 侦听器的实现,或者无法混合 HTTPS 和通用 TLS 侦听同一端口,也不会考虑兼容这些情况,即使它们不同。 如果所有网关中的所有 Listeners 都兼容,则实施 MAY 将单独的网关合并到一组地址上。 在以后的发行版本中,MinItems=1 要求被丢弃。 支持:Core |
|
| 侦听器传播网关接受网络连接的逻辑端点的概念。 |
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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 地址的类型。 |
|
| 地址值。值的有效性取决于控制器的类型和支持。
示例:1.2. |
15.1.4. .spec.infrastructure 复制链接链接已复制到粘贴板!
- 描述
基础架构定义了有关此网关实例的基础架构级属性。
支持:扩展
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 将 SHOULD 应用到响应此网关创建的任何资源的注解。
对于创建其他 Kubernetes 对象的实现,这应该是对资源的 实施可能会选择添加其他特定于实施的注解,因为它们认为适合。 支持:扩展 |
|
| SHOULD 应用于响应此网关创建的任何资源的标签。
对于创建其他 Kubernetes 对象的实现,这应该是资源上的 实施可能会选择添加其他特定于实施的标签,因为它们认为适合。 如果实现将这些标签映射到 Pod,或者在标签更改时重新创建任何其他资源,则 SHOULD 会明确警告文档中此行为。 支持:扩展 |
|
| ParametersRef 是对包含与网关对应的配置参数的资源的引用。如果控制器不需要任何其他配置,则这是可选的。
这与 GatewayClass 的 parameter
网关的 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。 |
|
| kind 是引用的类型。 |
|
| 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
- HTTPRoute, Port: 80, Protocol: HTTP
- HTTPRoute, Port: 443, Protocol: HTTPS, TLS Mode: Terminate, TLS keypair provided
TLSRoute
- 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 被视为 兼容 :
- 它们与众不同。
- 该实施可以满足所有所分配的地址上可用的地址要求。
扩展支持中的兼容组合因实施而异。与一个实现兼容的组合可能与另一个实现不兼容。
例如,一个不能在同一地址上提供 TCP 和 UDP 侦听器的实现,或者无法混合 HTTPS 和通用 TLS 侦听同一端口,也不会考虑兼容这些情况,即使它们不同。
如果所有网关中的所有 Listeners 都兼容,则实施 MAY 将单独的网关合并到一组地址上。
在以后的发行版本中,MinItems=1 要求被丢弃。
支持:Core
- 类型
-
数组
15.1.7. .spec.listeners[] 复制链接链接已复制到粘贴板!
- 描述
- 侦听器传播网关接受网络连接的逻辑端点的概念。
- 类型
-
object
- 必填
-
name
-
port
-
protocol
-
属性 | 类型 | 描述 |
---|---|---|
|
| 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 指定与定义此概念的协议类型匹配的虚拟主机名。如果未指定,则所有主机名都匹配。对于不需要基于主机名的匹配的协议,会忽略此字段。 实现必须针对以下每个协议正确应用主机名匹配: * 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 资源,有与
带有通配符标签(MyPlaybooks)前缀的主机名被解释为后缀匹配。 支持:Core |
|
| name 是 Listener 的名称。此名称必须在网关内唯一。 支持:Core |
|
| port 是网络端口。多个监听器可能会使用相同的端口,受 Listener 兼容性规则。 支持:Core |
|
| protocol 指定此监听器希望接收的网络协议。 支持:Core |
|
| 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
属性 | 类型 | 描述 |
---|---|---|
|
| kind 指定允许绑定到此网关 Listener 的组和路由类型。如果未指定或为空,则使用 Listener 协议决定选择的路由类型。 RouteGroupKind MUST 与 Listener 协议 字段中指定的应用程序协议兼容的路由类型对应。如果实现不支持或识别此资源类型,则必须将这个 Listener 的 "ResolvedRefs" 条件设置为 False,原因为 "InvalidRouteKinds"。 支持:Core |
|
| RouteGroupKind 表示组和 Route 资源的类型。 |
|
| 命名空间表示可以从哪个路由附加到此 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| group 是 Route 的组。 |
|
| kind 是 Route 的种类。 |
15.1.11. .spec.listeners[].allowedRoutes.namespaces 复制链接链接已复制到粘贴板!
- 描述
命名空间表示可以从哪个路由附加到此 Listener 的命名空间。默认情况下,这仅限于此网关的命名空间。
支持:Core
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| from 表示为这个网关选择 Routes 的位置。可能的值有: :此网关都可以使用所有命名空间中的 all: 路由。* selector: 由选择器选择的命名空间中的路由可以被此网关使用。* 相同:只有同一命名空间中的路由可以被这个网关使用。 支持:Core |
|
| 当 From 设置为 "Selector" 时,必须指定选择器。在这种情况下,只有与这个 Selector 匹配的命名空间中的 Routes 才会被这个网关选择。对于"From"的其他值,会忽略此字段。 支持:Core |
- 描述
当 From 设置为 "Selector" 时,必须指定选择器。在这种情况下,只有与这个 Selector 匹配的命名空间中的 Routes 才会被这个网关选择。对于"From"的其他值,会忽略此字段。
支持:Core
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 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
属性 | 类型 | 描述 |
---|---|---|
|
| 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 的单一引用 支持:特定于实施的(而不是一个参考或其他资源类型) |
|
| SecretObjectReference 识别一个 API 对象,包括其命名空间,默认为 Secret。 API 对象必须在集群中有效;集群中必须注册 Group 和 Kind,以便此引用有效。 对具有无效 Group 和 Kind 的对象的引用无效,且必须由实施被拒绝,并在包含对象上设置适当的 Conditions。 |
|
| mode 定义客户端启动的 TLS 会话的 TLS 行为。有两种可能模式: - 终止:下游客户端和网关之间的 TLS 会话在网关终止。此模式需要以某种方式指定证书,如填充 certificateRefs 字段。- Passthrough:TLS 会话不会由网关终止。这意味着网关无法解码 TLS 流,但 TLS 协议的 ClientHello 消息除外。这个模式中会忽略 certificateRefs 字段。 支持:Core |
|
| 选项是键/值对列表,用于为每个实现启用扩展 TLS 配置。例如,配置最小 TLS 版本或支持的密码套件。
API 将定义一组通用密钥 MAY。为了避免任何模糊的实现特定实施定义,需要使用域前缀名称,如 支持:特定于实施 |
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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。 |
|
| kind 是引用的类型。例如 "Secret"。 |
|
| name 是引用的名称。 |
|
| namespace 是引用对象的命名空间。如果未指定,本地命名空间将被推断出来。 请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。 支持:Core |
15.1.18. .status 复制链接链接已复制到粘贴板!
- 描述
- Status 定义网关的当前状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| addresses 列出已绑定到网关的网络地址。 这个列表可能与某些条件下 spec 中提供的地址不同: * 没有指定地址,所有地址都会被动态分配为指定地址的组合,并分配动态地址的 * 一个指定的地址不可用(例如已在使用中) |
|
| GatewayStatusAddress 描述了绑定到网关的网络地址。 |
|
| 条件描述了网关的当前条件。
实现应该更喜欢使用 已知条件类型是: * "accepted" * "Programmed" * "Ready" |
|
| condition 包含此 API 资源当前状态的一个方面的详细信息。 |
|
| 监听器为 Spec 中定义的每个唯一监听程序端口提供状态。 |
|
| ListenerStatus 是与 Listener 关联的状态。 |
15.1.19. .status.addresses 复制链接链接已复制到粘贴板!
- 描述
addresses 列出已绑定到网关的网络地址。
这个列表可能与某些条件下 spec 中提供的地址不同:
- 未指定地址,将动态分配所有地址
- 分配指定和动态地址的组合
- 指定的地址不可用(例如已在使用中)
- 类型
-
array
15.1.20. .status.addresses[] 复制链接链接已复制到粘贴板!
- 描述
- GatewayStatusAddress 描述了绑定到网关的网络地址。
- 类型
-
object
- 必填
-
value
-
属性 | 类型 | 描述 |
---|---|---|
|
| 地址的类型。 |
|
| 地址值。值的有效性取决于控制器的类型和支持。
示例:1.2. |
15.1.21. .status.conditions 复制链接链接已复制到粘贴板!
- 描述
条件描述了网关的当前条件。
实现应该更喜欢使用
GatewayConditionType
和GatewayConditionReason
常量来表达网关条件,以便操作员和工具可以聚合到通用 vocabulary 来描述网关状态。已知条件类型是:
- "accepted"
- "programmed"
- "ready"
- 类型
-
array
15.1.22. .status.conditions[] 复制链接链接已复制到粘贴板!
- 描述
- condition 包含此 API 资源当前状态的一个方面的详细信息。
- 类型
-
object
- 必填
-
lastTransitionTime
-
message
-
reason
-
status
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。 |
|
| Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。 |
|
| observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。 |
|
| reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| CamelCase 或 foo.example.com/CamelCase 中的条件类型。 |
15.1.23. .status.listeners 复制链接链接已复制到粘贴板!
- 描述
- 监听器为 Spec 中定义的每个唯一监听程序端口提供状态。
- 类型
-
数组
15.1.24. .status.listeners[] 复制链接链接已复制到粘贴板!
- 描述
- ListenerStatus 是与 Listener 关联的状态。
- 类型
-
object
- 必填
-
attachedRoutes
-
conditions
-
name
-
supportedKinds
-
属性 | 类型 | 描述 |
---|---|---|
|
| AttachedRoutes 代表已成功附加到此 Listener 的路由总数。 成功将路由附加到 Listener 只会基于相应 Listener 和 Route 的 ParentRefs 字段上的 AllowedRoutes 字段的组合。当一个 Route 被 Listener 的 AllowedRoutes 字段选择,并且 Route 有一个有效的 ParentRef 选择整个网关资源,或一个特定的 Listener 作为父资源(可在各种 Route 类型 ParentRefs 字段的文档中找到它)。监听器或 Route 状态不会影响成功附加,即对于带有 condition Accepted: false 和 MUST 计数的 Listeners 设置 AttachedRoutes 字段数。 此字段使用包括对 Route 附加进行故障排除,并测量对 Listener 的更改的影响。 |
|
| 条件描述了此侦听器的当前条件。 |
|
| condition 包含此 API 资源当前状态的一个方面的详细信息。 |
|
| name 是此状态对应的 Listener 的名称。 |
|
| SupportedKinds 是指示此监听程序支持的 Kinds 的列表。这必须代表支持该 Listener 配置的实施。 如果在不支持的 Spec 中指定类型,它们必须不会出现在此列表中,并且实施必须将 "ResolvedRefs" 条件设置为 "False",并带有 "InvalidRouteKinds" 原因。如果同时指定了有效和无效的 Route 类型,实现必须引用指定的有效 Route 类型。 |
|
| RouteGroupKind 表示组和 Route 资源的类型。 |
15.1.25. .status.listeners[].conditions 复制链接链接已复制到粘贴板!
- 描述
- 条件描述了此侦听器的当前条件。
- 类型
-
数组
15.1.26. .status.listeners[].conditions[] 复制链接链接已复制到粘贴板!
- 描述
- condition 包含此 API 资源当前状态的一个方面的详细信息。
- 类型
-
object
- 必填
-
lastTransitionTime
-
message
-
reason
-
status
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。 |
|
| Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。 |
|
| observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。 |
|
| reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| group 是 Route 的组。 |
|
| 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
- 描述
- 列出类型为网关的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除网关集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出类型为网关的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建网关
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| 网关的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除网关
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 读取指定的网关
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的网关
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的网关
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| 网关的名称 |
- HTTP 方法
-
GET
- 描述
- 指定网关的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定网关的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定网关的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
第 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. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| spec 定义 GatewayClass 所需的状态。 |
|
| Status 定义 GatewayClass 的当前状态。 实现需要为所有 GatewayClass 资源填充状态,以指定其控制器名称。 |
16.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- spec 定义 GatewayClass 所需的状态。
- 类型
-
object
- 必填
-
controllerName
-
属性 | 类型 | 描述 |
---|---|---|
|
| ControllerName 是管理此类网关的控制器的名称。此字段的值必须是域前缀路径。 示例:"example.net/gateway-controller"。 此字段不可可变,不能为空。 支持:Core |
|
| 描述可帮助描述 GatewayClass,其更多详情。 |
|
| ParametersRef 是对包含与 GatewayClass 对应的配置参数的资源的引用。如果控制器不需要任何其他配置,则这是可选的。 ParametersRef 可以引用标准 Kubernetes 资源,如 ConfigMap 或特定于实现的自定义资源。资源可以是集群范围的,也可以是命名空间范围的。 如果无法找到引用,请参阅不支持的 kind 或当该资源中的数据格式不正确时,GatewayClass SHOULD 将被拒绝,并将 "Accepted" 状态条件设置为 "False",以及 "InvalidParameters" 原因。
此网关Class 的网关可能会提供自己的 支持:特定于实施 |
16.1.2. .spec.parametersRef 复制链接链接已复制到粘贴板!
- 描述
ParametersRef 是对包含与 GatewayClass 对应的配置参数的资源的引用。如果控制器不需要任何其他配置,则这是可选的。
ParametersRef 可以引用标准 Kubernetes 资源,如 ConfigMap 或特定于实现的自定义资源。资源可以是集群范围的,也可以是命名空间范围的。
如果无法找到引用,请参阅不支持的 kind 或当该资源中的数据格式不正确时,GatewayClass SHOULD 将被拒绝,并将 "Accepted" 状态条件设置为 "False",以及 "InvalidParameters" 原因。
此网关Class 的网关可能会提供自己的
参数Ref
。当两者都被指定时,合并行为是特定于实现的。通常建议 GatewayClass 提供可由网关覆盖的默认值。支持:特定于实施
- 类型
-
object
- 必填
-
group
-
kind
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。 |
|
| kind 是引用的类型。 |
|
| name 是引用的名称。 |
|
| namespace 是引用的命名空间。当引用命名空间范围的资源时,需要此字段,在引用集群范围的资源时必须取消设置。 |
16.1.3. .status 复制链接链接已复制到粘贴板!
- 描述
Status 定义 GatewayClass 的当前状态。
实现需要为所有 GatewayClass 资源填充状态,以指定其控制器名称。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 条件是此 GatewayClass 的控制器中的当前状态。 控制器应更喜欢为每个 Condition 类型使用 GatewayClassConditionType 值发布条件。 |
|
| condition 包含此 API 资源当前状态的一个方面的详细信息。 |
16.1.4. .status.conditions 复制链接链接已复制到粘贴板!
- 描述
条件是此 GatewayClass 的控制器中的当前状态。
控制器应更喜欢为每个 Condition 类型使用 GatewayClassConditionType 值发布条件。
- 类型
-
array
16.1.5. .status.conditions[] 复制链接链接已复制到粘贴板!
- 描述
- condition 包含此 API 资源当前状态的一个方面的详细信息。
- 类型
-
object
- 必填
-
lastTransitionTime
-
message
-
reason
-
status
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。 |
|
| Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。 |
|
| observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。 |
|
| reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| 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 的状态
-
- HTTP 方法
-
DELETE
- 描述
- 删除 GatewayClass 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 kind GatewayClass 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 GatewayClass
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| GatewayClass 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 GatewayClass
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 读取指定的 GatewayClass
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 GatewayClass
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 GatewayClass
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| GatewayClass 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 GatewayClass 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 GatewayClass 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 GatewayClass 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
第 17 章 HTTPRoute [gateway.networking.k8s.io/v1] 复制链接链接已复制到粘贴板!
- 描述
- HTTPRoute 提供路由 HTTP 请求的方式。这包括按主机名、路径、标头或查询参数匹配请求的能力。过滤器可用于指定其他处理步骤。后端指定应该路由匹配的请求。
- 类型
-
object
- 必填
-
spec
-
17.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| spec 定义 HTTPRoute 的所需状态。 |
|
| Status 定义 HTTPRoute 的当前状态。 |
17.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- spec 定义 HTTPRoute 的所需状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| hostnames 定义一组主机名,它们应当与 HTTP 主机标头匹配,以选择用于处理请求的 HTTPRoute。实施必须忽略 HTTP 主机标头中指定的任何端口值,同时执行匹配项和(任何适用的标头修改配置的absent)必须将此标头未修改转发到后端。 主机名的有效值由带有 2 值得例外的主机名的 RFC 1123 定义决定:
1.不允许使用 IP。2.主机名可以带有通配符标签前缀(.<)。 如果主机名同时由 Listener 和 HTTPRoute 指定,则必须至少有一个交集主机名,以便 HTTPRoute 才能附加到 Listener。例如:
* 使用
带有通配符标签(MyPlaybooks)前缀的主机名被解释为后缀匹配。
如果 Listener 和 HTTPRoute 都指定了主机名,则所有与 Listener 主机名不匹配的 HTTPRoute 主机名都会被忽略。例如,如果指定了 Listener.
如果 Listener 和 HTTPRoute 都指定了主机名,并且与上述条件都不匹配,则不接受 HTTPRoute。实现必须引发 'Accepted' Condition 状态,其状态在对应的 RouteParentStatus 中。 如果多个 HTTPRoutes 指定交集主机名(例如,重叠通配符匹配和完全匹配主机名),则必须将优先级提供给 HTTPRoute 中带有最大数量的 HTTPRoute 的规则: * 在匹配非通配符主机名中的字符。* 匹配主机名中的字符。 如果在多个路由间有绑定,HTTPRouteMatches 的匹配优先级规则会接管。 支持:Core |
|
| 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 条目会有所不同。就字段而言,这意味着由 一些示例:
* 如果一个 ParentRef 设置 可以单独引用多个不同的对象,这些对象可能会被实施折叠。例如,一些实现可能会选择将兼容的网关 Listeners 合并在一起。如果是这种情况,则也应合并附加到这些资源的路由列表。 请注意,对于跨命名空间边界的 ParentRefs,有特定的规则。只有跨命名空间引用被引用的命名空间中明确允许时才有效。例如,Gateway 具有 AllowedRoutes 字段,ReferenceGrant 提供了启用其他类型的跨命名空间参考的通用方法。 |
|
| ParentReference 识别一个 API 对象(通常是网关),它被视为此资源的父项(通常是路由)。支持"Core"支持的父资源有两种: * gateway (Gateway conformance profile)* Service (Mesh conformance profile, only ClusterIP Services) 以后可能会扩展此 API,以支持其他类型的父资源。 API 对象必须在集群中有效;集群中必须注册 Group 和 Kind,以便此引用有效。 |
|
| 规则是 HTTP 匹配器、过滤器和操作的列表。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。如果未指定,"gateway.networking.k8s.io" 将推断出来。要设置核心 API 组(如 "Service" kind referent),Group 必须明确设置为 "" (空字符串)。 支持:Core |
|
| kind 是引用的类型。 支持"Core"支持的父资源有两种: * gateway (Gateway conformance profile)* Service (Mesh conformance profile, only ClusterIP Services) 对其他资源的支持是特定于实施的。 |
|
| name 是引用的名称。 支持:Core |
|
| namespace 是引用的命名空间。如果未指定,这指的是 Route 的本地命名空间。 请注意,对于跨命名空间边界的 ParentRefs 有特定的规则。只有跨命名空间引用被引用的命名空间中明确允许时才有效。例如: Gateway 具有 AllowedRoutes 字段,ReferenceGrant 提供了一种通用方法来启用其他类型的跨命名空间引用。 支持:Core |
|
| port 是此 Route 目标的网络端口。它可以根据父资源的类型进行解释。
当父资源是网关时,此目标是在支持此类 Route (并选择此路由)的指定端口上侦听所有的监听程序。不建议设置 实施 MAY 选择支持其他父资源。支持其他类型的父资源的实施必须清楚地记录/如果端口的解释方式。 对于状态,只要父资源接受部分,则附加被视为成功。例如,网关监听程序可以通过 Route kind、namespace 或 hostname 来限制哪些 Routes 可以附加到它们。如果 2 网关监听程序的 1 个接受来自引用路由的附件,则路由必须被视为成功附加。如果没有网关监听程序接受来自此 Route 的附件,则路由必须被视为与网关分离。 支持:扩展 |
|
| 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
属性 | 类型 | 描述 |
---|---|---|
|
| 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 |
|
| HTTPBackendRef 定义 HTTPRoute 如何转发 HTTP 请求。 请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。 |
|
| 过滤器定义应用到与此规则匹配的请求的过滤器。 在可能的情况下,实施 SHOULD 按指定的顺序实施过滤器。 实施 MAY 选择严格实施此排序,从而拒绝不支持的任何过滤器组合或顺序。如果实现选择对过滤排序的严格解释,则它们必须清楚地记录该行为。 要拒绝无效的过滤器组合或过滤器顺序,实现 SHOULD 会考虑带有此配置的 Route 规则无效。如果路由中的所有路由规则都无效,则整个路由将被视为无效。如果只有一部分 Route 规则无效,则实现必须为 Route 设置 "PartiallyInvalid" 条件。 此级别上的一致性级别会根据过滤器类型定义: - 所有核心过滤器都必须由所有实现支持。- 鼓励实现的实现来支持扩展过滤器。- 特定于实现的自定义过滤器在实现过程中没有 API 保证。 除非在过滤器中明确指定,否则不支持多次指定同一过滤器。
除 URLRewrite 和 RequestRedirect 过滤器外,所有过滤器都应该相互兼容,但可能无法组合使用。如果实施不支持其他过滤器组合,它们必须清楚地记录那个限制。如果指定了不兼容或不支持的过滤器,并导致 支持:Core |
|
| HTTPRouteFilter 定义在请求或响应生命周期内必须完成的处理步骤。HTTPRouteFilters 充当一个扩展点,用于表达在网关实施中可能完成的处理。有些示例包括请求或响应修改、实施身份验证策略、速率限制和流量控制。API 保证/格式根据过滤器的类型定义。 |
|
| matches 定义用于与传入 HTTP 请求匹配的规则的条件。每个匹配项都独立,例如,如果 满足任何 其中一个匹配项,则此规则将匹配。 例如,使用以下内容匹配配置: matches: - path: value: "/foo" headers: - name: "version" value: "v2" - path: value: "/v2/foo" 要与此规则匹配的请求,请求必须满足两个条件的 EITHER:
- 带有 有关如何指定应同时存在的多个匹配条件的信息,请参阅 HTTPRouteMatch 文档。 如果没有指定匹配项,则默认值是前缀路径与"/"匹配,其效果与每个 HTTP 请求匹配。 根据以下条件,从 HTTPRoutes MUST 生成的代理或 Load Balancer 路由配置会按照以下条件继续匹配。在适用路由中指定的所有规则中,必须为匹配项提供优先级: * "exact" 路径匹配。* "prefix" 路径与最大字符数匹配。* 方法匹配。* 最大的标头匹配数。* 的最大查询参数数匹配。 注: RegularExpression 路径匹配的优先级是特定于实现的。 如果绑定仍存在于多个路由中,则按以下条件顺序确定匹配的优先级,继续绑定: * 基于创建时间戳的最旧的路由。* 路由以字母顺序按 "{namespace}/{name}" 开头。 如果 HTTPRoute 中仍然存在 ties,则匹配的优先级必须授予 FIRST 匹配规则(按列表顺序),符合上述条件。 如果没有与请求成功附加到父请求的规则时,将返回 HTTP 404 状态代码 MUST。 |
|
| HTTPRouteMatch 定义用于将请求与给定操作匹配的 predicate。多个匹配类型是 AND,即仅在满足所有条件时,匹配才会评估为 true。
例如,只有在其路径以 match: path: value: "/foo" headers: - name: "version" value "v1" |
|
| 超时定义可以为 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 只有在请求被转发到此处定义的后端时,才应执行此级别中定义的过滤器。 支持:特定于实现的(对于更广泛的过滤器支持,请使用 HTTPRouteRule 中的 Filters 字段。) |
|
| HTTPRouteFilter 定义在请求或响应生命周期内必须完成的处理步骤。HTTPRouteFilters 充当一个扩展点,用于表达在网关实施中可能完成的处理。有些示例包括请求或响应修改、实施身份验证策略、速率限制和流量控制。API 保证/格式根据过滤器的类型定义。 |
|
| 组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。 |
|
| kind 是引用的 Kubernetes 资源类型。例如 "Service"。 如果没有指定,则默认为 "Service"。 ExternalName 服务可以引用集群中可能位于的 CNAME DNS 记录,因此很难考虑一致性。它们也可能不安全(请参阅 CVE-2021-25740 了解更多信息)。实施 SHOULD 不支持 ExternalName 服务。 Support: Core (带有 ExternalName 以外的类型的服务) 支持:特定于实现的(类型为 ExternalName 的服务) |
|
| name 是引用的名称。 |
|
| namespace 是后端的命名空间。如果未指定,本地命名空间将被推断出来。 请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。 支持:Core |
|
| port 指定用于此资源的目标端口号。当引用是 Kubernetes 服务时,需要端口。在本例中,端口号是服务端口号,而不是目标端口。对于其他资源,目的地端口可能源自引用资源或此字段。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。 此过滤器可以在同一规则内多次使用。 支持:特定于实施 |
|
| RequestHeaderModifier 定义修改请求标头的过滤器的模式。 支持:Core |
|
| RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。 此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。 支持:扩展 |
|
| RequestRedirect 定义通过 HTTP 重定向响应请求的过滤器的模式。 支持:Core |
|
| ResponseHeaderModifier 为修改响应标头的过滤器定义模式。 支持:扩展 |
|
| Type 标识要应用的过滤器类型。与其他 API 字段一样,类型被分为三个一致性级别: - core :过滤类型及其在这个软件包中"Support: Core"定义的相应配置,例如:"RequestHeaderModifier".所有实施都必须支持核心过滤器。 - Extended: Filter type 及其对应的配置由这个软件包中的"Support: Extended"定义,例如:"RequestMirror"。我们鼓励实施人员支持扩展过滤器。
- 特定于实现的:由特定供应商定义和支持的过滤器。未来,显示多个实施中行为的过滤器将被视为扩展或核心一致性级别。这些过滤器的特定于过滤器的配置使用 ExtensionRef 字段指定。 我们鼓励实施人员定义自定义实施类型,以使用特定于实施的行为来扩展核心 API。 如果无法解析对自定义过滤器类型的引用,则不会跳过过滤器。相反,已由该过滤器处理的请求接收 HTTP 错误响应。 请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。
此处的未知值必须实现将 Route 的 Accepted Condition 设置为 |
|
| URLRewrite 为过滤器定义了一个 schema,用于在转发过程中修改请求。 支持:扩展 |
- 描述
ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。
此过滤器可以在同一规则内多次使用。
支持:特定于实施
- 类型
-
object
- 必填
-
group
-
kind
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。 |
|
| kind 是引用的类型。例如 "HTTPRoute" 或 "Service"。 |
|
| name 是引用的名称。 |
- 描述
RequestHeaderModifier 定义修改请求标头的过滤器的模式。
支持:Core
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。 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 标头名称和值。 |
|
| 在操作前,从 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 |
|
| 在操作前,使用给定标头(名称、值)设置覆盖请求。 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 标头名称和值。 |
- 描述
在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。
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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| value 是要匹配的 HTTP 标头的值。 |
- 描述
RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。
此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。
支持:扩展
- 类型
-
object
- 必填
-
backendRef
-
属性 | 类型 | 描述 |
---|---|---|
|
| BackendRef 引用发送镜像请求的资源。 镜像请求必须只发送到此 BackendRef 中的单个目标端点,无论此 BackendRef 中有多少端点。
如果无法找到引用,则此 BackendRef 无效,且必须从网关中丢弃。控制器必须确保将 Route 状态上的 "ResolvedRefs" 条件设置为
如果对 ReferenceGrant 不允许 的现有 对象有一个跨命名空间引用,控制器必须确保 Route 上的 "ResolvedRefs" 条件被设置为
在任一错误情况下,应该使用 支持:为 Kubernetes Service 扩展 支持:特定于任何其他资源的实现 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。 |
|
| kind 是引用的 Kubernetes 资源类型。例如 "Service"。 如果没有指定,则默认为 "Service"。 ExternalName 服务可以引用集群中可能位于的 CNAME DNS 记录,因此很难考虑一致性。它们也可能不安全(请参阅 CVE-2021-25740 了解更多信息)。实施 SHOULD 不支持 ExternalName 服务。 Support: Core (带有 ExternalName 以外的类型的服务) 支持:特定于实现的(类型为 ExternalName 的服务) |
|
| name 是引用的名称。 |
|
| namespace 是后端的命名空间。如果未指定,本地命名空间将被推断出来。 请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。 支持:Core |
|
| port 指定用于此资源的目标端口号。当引用是 Kubernetes 服务时,需要端口。在本例中,端口号是服务端口号,而不是目标端口。对于其他资源,目的地端口可能源自引用资源或此字段。 |
- 描述
fraction 代表应镜像到 BackendRef 的请求的比例。
只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。
- 类型
-
object
- 必填
-
numerator
-
属性 | 类型 | 描述 |
---|---|---|
|
| |
|
|
- 描述
RequestRedirect 定义通过 HTTP 重定向响应请求的过滤器的模式。
支持:Core
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
|
hostname 是响应中 支持:Core |
|
|
path 定义用于修改传入请求路径的参数。然后,使用修改后的路径来构建 支持:扩展 |
|
|
port 是响应中 如果没有指定端口,则使用以下规则派生重定向端口 MUST: * 如果重定向方案不是空的,则重定向端口 MUST 是与重定向方案关联的已知端口。特别是"http"到端口 80 和 "https" 到端口 443。如果重定向方案没有已知的端口,则使用网关 SHOULD 的监听程序端口。* 如果重定向方案为空,则重定向端口需要是网关 Listener 端口。 在以下情况下,实现 SHOULD 不会在 'Location' 标头中添加端口号: :将使用 HTTP 的 Location 标头(无论是通过 Listener 协议或 Scheme 字段决定),并使用 端口 80。:将使用 HTTPS 的 Location 标头(无论是通过 Listener 协议或 Scheme 字段决定),并使用 端口 443。 支持:扩展 |
|
|
scheme 是响应中 方案重定向可能会影响重定向的端口,如需更多信息,请参阅此过滤器的 port 字段的文档。 请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。
此处的未知值必须实现将 Route 的 Accepted Condition 设置为 支持:扩展 |
|
| statusCode 是要响应的 HTTP 状态代码。 请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。
此处的未知值必须实现将 Route 的 Accepted Condition 设置为 支持:Core |
- 描述
path 定义用于修改传入请求路径的参数。然后,使用修改后的路径来构建
Location
标头。如果为空,请求路径将按原样使用。支持:扩展
- 类型
-
object
- 必填
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| ReplaceFullPath 指定在重写或重定向期间替换请求的完整路径的值。 |
|
| replacePrefixMatch 指定在重写或重定向期间替换请求的前缀匹配的值。例如,对 "/foo/bar" 的请求具有与 "/foo" 匹配的前缀,而 替换PrefixMatch 为 "/xyz" 将会被修改为 "/xyz/bar"。
请注意,这与 PathPrefix 匹配类型的行为匹配。这与完整 path 元素匹配。path 元素引用由
replacePrefixMatch 仅与 请求路径 | 前缀匹配 | 替换前缀 | 修改路径 |
|
| type 定义路径修饰符的类型。以后的 API 发行版本中可能会添加额外的类型。 请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。
此处的未知值必须实现将 Route 的 Accepted Condition 设置为 |
- 描述
ResponseHeaderModifier 为修改响应标头的过滤器定义模式。
支持:扩展
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。 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 标头名称和值。 |
|
| 在操作前,从 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 |
|
| 在操作前,使用给定标头(名称、值)设置覆盖请求。 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 标头名称和值。 |
- 描述
在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。
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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| value 是要匹配的 HTTP 标头的值。 |
- 描述
URLRewrite 为过滤器定义了一个 schema,用于在转发过程中修改请求。
支持:扩展
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| hostname 是转发过程中用于替换 Host 标头值的值。 支持:扩展 |
|
| path 定义路径重写。 支持:扩展 |
- 描述
path 定义路径重写。
支持:扩展
- 类型
-
object
- 必填
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| ReplaceFullPath 指定在重写或重定向期间替换请求的完整路径的值。 |
|
| replacePrefixMatch 指定在重写或重定向期间替换请求的前缀匹配的值。例如,对 "/foo/bar" 的请求具有与 "/foo" 匹配的前缀,而 替换PrefixMatch 为 "/xyz" 将会被修改为 "/xyz/bar"。
请注意,这与 PathPrefix 匹配类型的行为匹配。这与完整 path 元素匹配。path 元素引用由
replacePrefixMatch 仅与 请求路径 | 前缀匹配 | 替换前缀 | 修改路径 |
|
| type 定义路径修饰符的类型。以后的 API 发行版本中可能会添加额外的类型。 请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。
此处的未知值必须实现将 Route 的 Accepted Condition 设置为 |
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
-
属性 | 类型 | 描述 |
---|---|---|
|
| ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。 此过滤器可以在同一规则内多次使用。 支持:特定于实施 |
|
| RequestHeaderModifier 定义修改请求标头的过滤器的模式。 支持:Core |
|
| RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。 此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。 支持:扩展 |
|
| RequestRedirect 定义通过 HTTP 重定向响应请求的过滤器的模式。 支持:Core |
|
| ResponseHeaderModifier 为修改响应标头的过滤器定义模式。 支持:扩展 |
|
| Type 标识要应用的过滤器类型。与其他 API 字段一样,类型被分为三个一致性级别: - core :过滤类型及其在这个软件包中"Support: Core"定义的相应配置,例如:"RequestHeaderModifier".所有实施都必须支持核心过滤器。 - Extended: Filter type 及其对应的配置由这个软件包中的"Support: Extended"定义,例如:"RequestMirror"。我们鼓励实施人员支持扩展过滤器。
- 特定于实现的:由特定供应商定义和支持的过滤器。未来,显示多个实施中行为的过滤器将被视为扩展或核心一致性级别。这些过滤器的特定于过滤器的配置使用 ExtensionRef 字段指定。 我们鼓励实施人员定义自定义实施类型,以使用特定于实施的行为来扩展核心 API。 如果无法解析对自定义过滤器类型的引用,则不会跳过过滤器。相反,已由该过滤器处理的请求接收 HTTP 错误响应。 请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。
此处的未知值必须实现将 Route 的 Accepted Condition 设置为 |
|
| URLRewrite 为过滤器定义了一个 schema,用于在转发过程中修改请求。 支持:扩展 |
17.1.30. .spec.rules[].filters[].extensionRef 复制链接链接已复制到粘贴板!
- 描述
ExtensionRef 是 "filter" 行为的可选、特定于实现的扩展。例如,组 "networking.example.net" 中的资源 "myroutefilter"。ExtensionRef MUST 不用于核心和扩展过滤器。
此过滤器可以在同一规则内多次使用。
支持:特定于实施
- 类型
-
object
- 必填
-
group
-
kind
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。 |
|
| kind 是引用的类型。例如 "HTTPRoute" 或 "Service"。 |
|
| name 是引用的名称。 |
17.1.31. .spec.rules[].filters[].requestHeaderModifier 复制链接链接已复制到粘贴板!
- 描述
RequestHeaderModifier 定义修改请求标头的过滤器的模式。
支持:Core
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。 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 标头名称和值。 |
|
| 在操作前,从 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 |
|
| 在操作前,使用给定标头(名称、值)设置覆盖请求。 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 标头名称和值。 |
- 描述
在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。
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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| value 是要匹配的 HTTP 标头的值。 |
17.1.36. .spec.rules[].filters[].requestMirror 复制链接链接已复制到粘贴板!
- 描述
RequestMirror 为镜像请求的过滤器定义一个模式。请求将发送到指定的目的地,但来自该目的地的响应将被忽略。
此过滤器可以在同一规则内多次使用。请注意,并非所有实施都能够支持镜像到多个后端。
支持:扩展
- 类型
-
object
- 必填
-
backendRef
-
属性 | 类型 | 描述 |
---|---|---|
|
| BackendRef 引用发送镜像请求的资源。 镜像请求必须只发送到此 BackendRef 中的单个目标端点,无论此 BackendRef 中有多少端点。
如果无法找到引用,则此 BackendRef 无效,且必须从网关中丢弃。控制器必须确保将 Route 状态上的 "ResolvedRefs" 条件设置为
如果对 ReferenceGrant 不允许 的现有 对象有一个跨命名空间引用,控制器必须确保 Route 上的 "ResolvedRefs" 条件被设置为
在任一错误情况下,应该使用 支持:为 Kubernetes Service 扩展 支持:特定于任何其他资源的实现 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。例如:"gateway.networking.k8s.io"。如果未指定或空字符串时,核心 API 组将被推断出来。 |
|
| kind 是引用的 Kubernetes 资源类型。例如 "Service"。 如果没有指定,则默认为 "Service"。 ExternalName 服务可以引用集群中可能位于的 CNAME DNS 记录,因此很难考虑一致性。它们也可能不安全(请参阅 CVE-2021-25740 了解更多信息)。实施 SHOULD 不支持 ExternalName 服务。 Support: Core (带有 ExternalName 以外的类型的服务) 支持:特定于实现的(类型为 ExternalName 的服务) |
|
| name 是引用的名称。 |
|
| namespace 是后端的命名空间。如果未指定,本地命名空间将被推断出来。 请注意,当指定与本地命名空间不同的命名空间时,引用命名空间中需要一个 ReferenceGrant 对象,以允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。 支持:Core |
|
| port 指定用于此资源的目标端口号。当引用是 Kubernetes 服务时,需要端口。在本例中,端口号是服务端口号,而不是目标端口。对于其他资源,目的地端口可能源自引用资源或此字段。 |
17.1.38. .spec.rules[].filters[].requestMirror.fraction 复制链接链接已复制到粘贴板!
- 描述
fraction 代表应镜像到 BackendRef 的请求的比例。
只能指定 Fraction 或 Percent 之一。如果没有指定字段,则会镜像 100% 的请求。
- 类型
-
object
- 必填
-
numerator
-
属性 | 类型 | 描述 |
---|---|---|
|
| |
|
|
17.1.39. .spec.rules[].filters[].requestRedirect 复制链接链接已复制到粘贴板!
- 描述
RequestRedirect 定义通过 HTTP 重定向响应请求的过滤器的模式。
支持:Core
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
|
hostname 是响应中 支持:Core |
|
|
path 定义用于修改传入请求路径的参数。然后,使用修改后的路径来构建 支持:扩展 |
|
|
port 是响应中 如果没有指定端口,则使用以下规则派生重定向端口 MUST: * 如果重定向方案不是空的,则重定向端口 MUST 是与重定向方案关联的已知端口。特别是"http"到端口 80 和 "https" 到端口 443。如果重定向方案没有已知的端口,则使用网关 SHOULD 的监听程序端口。* 如果重定向方案为空,则重定向端口需要是网关 Listener 端口。 在以下情况下,实现 SHOULD 不会在 'Location' 标头中添加端口号: :将使用 HTTP 的 Location 标头(无论是通过 Listener 协议或 Scheme 字段决定),并使用 端口 80。:将使用 HTTPS 的 Location 标头(无论是通过 Listener 协议或 Scheme 字段决定),并使用 端口 443。 支持:扩展 |
|
|
scheme 是响应中 方案重定向可能会影响重定向的端口,如需更多信息,请参阅此过滤器的 port 字段的文档。 请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。
此处的未知值必须实现将 Route 的 Accepted Condition 设置为 支持:扩展 |
|
| statusCode 是要响应的 HTTP 状态代码。 请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。
此处的未知值必须实现将 Route 的 Accepted Condition 设置为 支持:Core |
17.1.40. .spec.rules[].filters[].requestRedirect.path 复制链接链接已复制到粘贴板!
- 描述
path 定义用于修改传入请求路径的参数。然后,使用修改后的路径来构建
Location
标头。如果为空,请求路径将按原样使用。支持:扩展
- 类型
-
object
- 必填
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| ReplaceFullPath 指定在重写或重定向期间替换请求的完整路径的值。 |
|
| replacePrefixMatch 指定在重写或重定向期间替换请求的前缀匹配的值。例如,对 "/foo/bar" 的请求具有与 "/foo" 匹配的前缀,而 替换PrefixMatch 为 "/xyz" 将会被修改为 "/xyz/bar"。
请注意,这与 PathPrefix 匹配类型的行为匹配。这与完整 path 元素匹配。path 元素引用由
replacePrefixMatch 仅与 请求路径 | 前缀匹配 | 替换前缀 | 修改路径 |
|
| type 定义路径修饰符的类型。以后的 API 发行版本中可能会添加额外的类型。 请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。
此处的未知值必须实现将 Route 的 Accepted Condition 设置为 |
17.1.41. .spec.rules[].filters[].responseHeaderModifier 复制链接链接已复制到粘贴板!
- 描述
ResponseHeaderModifier 为修改响应标头的过滤器定义模式。
支持:扩展
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。 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 标头名称和值。 |
|
| 在操作前,从 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 |
|
| 在操作前,使用给定标头(名称、值)设置覆盖请求。 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 标头名称和值。 |
- 描述
在操作前,将给定标头(名称、值)添加到请求。它将附加到与标头名称关联的任何现有值。
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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 标头的名称。名称匹配必须不区分大小写。(请参阅 https://tools.ietf.org/html/rfc7230#section-3.2)。 如果多个条目指定了等同的标头名称,则第一个带有等效名称的条目必须视为匹配项。带有等同标头名称的后续条目必须忽略。由于标头名称的问题单识别,"foo"和 "Foo" 被视为等同。 |
|
| value 是要匹配的 HTTP 标头的值。 |
17.1.46. .spec.rules[].filters[].urlRewrite 复制链接链接已复制到粘贴板!
- 描述
URLRewrite 为过滤器定义了一个 schema,用于在转发过程中修改请求。
支持:扩展
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| hostname 是转发过程中用于替换 Host 标头值的值。 支持:扩展 |
|
| path 定义路径重写。 支持:扩展 |
17.1.47. .spec.rules[].filters[].urlRewrite.path 复制链接链接已复制到粘贴板!
- 描述
path 定义路径重写。
支持:扩展
- 类型
-
object
- 必填
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| ReplaceFullPath 指定在重写或重定向期间替换请求的完整路径的值。 |
|
| replacePrefixMatch 指定在重写或重定向期间替换请求的前缀匹配的值。例如,对 "/foo/bar" 的请求具有与 "/foo" 匹配的前缀,而 替换PrefixMatch 为 "/xyz" 将会被修改为 "/xyz/bar"。
请注意,这与 PathPrefix 匹配类型的行为匹配。这与完整 path 元素匹配。path 元素引用由
replacePrefixMatch 仅与 请求路径 | 前缀匹配 | 替换前缀 | 修改路径 |
|
| type 定义路径修饰符的类型。以后的 API 发行版本中可能会添加额外的类型。 请注意,值可能会添加到这个 enum 中,实现必须确保未知值不会造成崩溃。
此处的未知值必须实现将 Route 的 Accepted Condition 设置为 |
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"
path: value: "/foo" headers: - name: "version" value "v1"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 标头指定 HTTP 请求标头匹配器。多个匹配值是 ANDed,这意味着请求必须与所有指定的标头匹配才能选择路由。 |
|
| HTTPHeaderMatch 描述了如何通过匹配 HTTP 请求标头来选择 HTTP 路由。 |
|
| method 指定 HTTP 方法匹配器。指定后,只有在请求具有指定方法时,此路由才会匹配。 支持:扩展 |
|
| path 指定 HTTP 请求路径匹配器。如果没有指定此字段,则会提供与 "/" 路径上的默认前缀匹配。 |
|
| queryParams 指定 HTTP 查询参数 matchers。多个匹配值是 ANDed,这意味着请求必须与所有指定的查询参数匹配,才能选择路由。 支持:扩展 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 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 指定如何与标头值匹配。 支持:Core (Exact) 支持:特定于实施(RegularExpression) 由于 RegularExpression HeaderMatchType 有特定于实现的一致性,实现可以支持 POSIX、PCRE 或正则表达式的任何其他密码。请阅读实施的文档,以确定支持的问题。 |
|
| value 是要匹配的 HTTP 标头的值。 |
17.1.52. .spec.rules[].matches[].path 复制链接链接已复制到粘贴板!
- 描述
- path 指定 HTTP 请求路径匹配器。如果没有指定此字段,则会提供与 "/" 路径上的默认前缀匹配。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| type 指定如何与路径值匹配。 支持:Core (Exact、PathPrefix) 支持:特定于实施(RegularExpression) |
|
| 要匹配的 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是要匹配的 HTTP 查询参数的名称。这必须是完全匹配。(请参阅 https://tools.ietf.org/html/rfc7230#section-2.7.3)。 如果多个条目指定了等同的查询参数名称,则只有具有等同名称的第一个条目才被认为匹配。带有等效查询参数名称的后续条目必须忽略。 如果在 HTTP 请求中重复查询参数,则行为会以未定义状态,因为不同的数据平面具有不同的功能。但是,如果数据平面支持,建议 实现与参数的第一个值匹配,因为此行为在网关 API 外的其他负载均衡上下文中预期。 用户 SHOULD 不会基于重复查询参数路由流量,以保护自身免受实施中潜在的差异。 |
|
| type 指定如何与查询参数值匹配。 支持:扩展(Exact) 支持:特定于实施(RegularExpression) 由于 RegularExpression QueryParamMatchType 有特定于实现的一致性,实现可以支持 POSIX、PCRE 或正则表达式的任何其他密码。请阅读实施的文档,以确定支持的问题。 |
|
| value 是要匹配的 HTTP 查询参数的值。 |
17.1.55. .spec.rules[].timeouts 复制链接链接已复制到粘贴板!
- 描述
超时定义可以为 HTTP 请求配置的超时。
支持:扩展
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| BackendRequest 为从网关到后端的独立请求指定一个超时。这涵盖了请求从后端收到完整响应时从网关开始发送到的时间。 将超时设置为零持续时间(例如"0s")SHOULD 完全禁用超时。无法完全禁用超时的实现,而是将零持续时间解析为可以设置超时的最长时间可能的值。 一个整个客户端 HTTP 事务,其网关由 Request 超时涵盖,可能会导致从网关到目标后端的调用数,例如如果支持自动重试。 BackendRequest 的值必须是 Gateway API Duration 字符串,由 GEP-2257 定义。当未指定此字段时,其行为是特定于实现的;在指定时,BackendRequest 的值不得超过 Request 超时的值(因为 Request 超时包含 BackendRequest 超时)。 支持:扩展 |
|
| request 指定网关响应 HTTP 请求的最长持续时间。如果网关无法在达到此截止时间前响应,网关必须返回超时错误。
例如,如果客户端请求的时间超过 将超时设置为零持续时间(例如"0s")SHOULD 完全禁用超时。无法完全禁用超时的实现,而是将零持续时间解析为可以设置超时的最长时间可能的值。 此超时旨在尽可能接近整个请求响应事务,尽管实施 MAY 选择在收到整个请求流后启动超时,而不是在客户端启动事务后立即执行。 Request 的值是一个网关 API Duration 字符串,由 GEP-2257 定义。如果未指定此字段,则请求超时行为是特定于实现的。 支持:扩展 |
17.1.56. .status 复制链接链接已复制到粘贴板!
- 描述
- Status 定义 HTTPRoute 的当前状态。
- 类型
-
object
- 必填
-
parents
-
属性 | 类型 | 描述 |
---|---|---|
|
| parents 是与路由关联的父资源(通常是网关)的列表,以及每个父对象的路由的状态。当此路由附加到父路由时,管理父路由的控制器必须在控制器第一次看到路由时向这个列表添加一个条目,并在修改路由或网关时更新条目。 请注意,无法通过此 API 实现解析的父引用不会添加到此列表中。此 API 的实现只能为它们负责的网关/父资源填充 Route 状态。 此列表中最多表示 32 个网关。空列表表示路由尚未附加到任何网关。 |
|
| RouteParentStatus 描述了与相关 Parent 相关的路由的状态。 |
17.1.57. .status.parents 复制链接链接已复制到粘贴板!
- 描述
parents 是与路由关联的父资源(通常是网关)的列表,以及每个父对象的路由的状态。当此路由附加到父路由时,管理父路由的控制器必须在控制器第一次看到路由时向这个列表添加一个条目,并在修改路由或网关时更新条目。
请注意,无法通过此 API 实现解析的父引用不会添加到此列表中。此 API 的实现只能为它们负责的网关/父资源填充 Route 状态。
此列表中最多表示 32 个网关。空列表表示路由尚未附加到任何网关。
- 类型
-
数组
17.1.58. .status.parents[] 复制链接链接已复制到粘贴板!
- 描述
- RouteParentStatus 描述了与相关 Parent 相关的路由的状态。
- 类型
-
object
- 必填
-
controllerName
-
parentRef
-
属性 | 类型 | 描述 |
---|---|---|
|
| conditions 描述了与网关相关的路由状态。请注意,路由的可用性也取决于网关自己的状态条件和侦听器状态。 如果 Route 的 ParentRef 指定支持路由路由的现有网关,且网关的控制器有足够的访问权限,那么该网关的控制器必须在 Route 上设置 "Accepted" 条件,以指示网关接受或拒绝该路由,以及原因。 如果网关实施至少一个 Route 规则,则路由必须被视为"接受"。 有些情况下,因为缺少控制器可见性,可能无法设置 "Accepted" 条件,其中包括: * Route 指的是不存在的父对象。* Route 是控制器不支持的类型。* Route 位于控制器无法访问的命名空间中。 |
|
| condition 包含此 API 资源当前状态的一个方面的详细信息。 |
|
| 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 与 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。 |
|
| Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。 |
|
| observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。 |
|
| reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| CamelCase 或 foo.example.com/CamelCase 中的条件类型。 |
17.1.61. .status.parents[].parentRef 复制链接链接已复制到粘贴板!
- 描述
- ParentRef 与 spec 中的 ParentRef 对应,这个 RouteParentStatus struct 描述其状态。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。如果未指定,"gateway.networking.k8s.io" 将推断出来。要设置核心 API 组(如 "Service" kind referent),Group 必须明确设置为 "" (空字符串)。 支持:Core |
|
| kind 是引用的类型。 支持"Core"支持的父资源有两种: * gateway (Gateway conformance profile)* Service (Mesh conformance profile, only ClusterIP Services) 对其他资源的支持是特定于实施的。 |
|
| name 是引用的名称。 支持:Core |
|
| namespace 是引用的命名空间。如果未指定,这指的是 Route 的本地命名空间。 请注意,对于跨命名空间边界的 ParentRefs 有特定的规则。只有跨命名空间引用被引用的命名空间中明确允许时才有效。例如: Gateway 具有 AllowedRoutes 字段,ReferenceGrant 提供了一种通用方法来启用其他类型的跨命名空间引用。 支持:Core |
|
| port 是此 Route 目标的网络端口。它可以根据父资源的类型进行解释。
当父资源是网关时,此目标是在支持此类 Route (并选择此路由)的指定端口上侦听所有的监听程序。不建议设置 实施 MAY 选择支持其他父资源。支持其他类型的父资源的实施必须清楚地记录/如果端口的解释方式。 对于状态,只要父资源接受部分,则附加被视为成功。例如,网关监听程序可以通过 Route kind、namespace 或 hostname 来限制哪些 Routes 可以附加到它们。如果 2 网关监听程序的 1 个接受来自引用路由的附件,则路由必须被视为成功附加。如果没有网关监听程序接受来自此 Route 的附件,则路由必须被视为与网关分离。 支持:扩展 |
|
| 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 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 HTTPRoute 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出类型为 HTTPRoute 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 HTTPRoute
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| HTTPRoute 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 HTTPRoute
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 读取指定的 HTTPRoute
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 HTTPRoute
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 HTTPRoute
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| HTTPRoute 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 HTTPRoute 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 HTTPRoute 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 HTTPRoute 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
第 18 章 Ingress [networking.k8s.io/v1] 复制链接链接已复制到粘贴板!
- 描述
- Ingress 是允许入站连接访问后端定义的端点的规则集合。可将 Ingress 配置为向外部可访问的 URL 提供服务、负载均衡流量、终止 SSL、提供基于名称的虚拟主机等。
- 类型
-
object
18.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| IngressSpec 描述了您希望存在的 Ingress 用户。 |
|
| IngressStatus 描述 Ingress 的当前状态。 |
18.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- IngressSpec 描述了您希望存在的 Ingress 用户。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| IngressBackend 描述给定服务和端口的所有端点。 |
|
|
ingressClassName 是 IngressClass 集群资源的名称。Ingress 控制器实现使用此字段通过传输连接(controller → IngressClass → Ingress 资源)知道它们是否应提供此 Ingress 资源。虽然 |
|
| rules 是用于配置 Ingress 的主机规则列表。如果未指定,或者没有规则匹配,则所有流量都会发送到默认后端。 |
|
| IngressRule 代表将指定主机下的路径映射到相关后端服务的规则。首先为主机匹配评估传入的请求,然后路由到与匹配的 IngressRuleValue 关联的后端。 |
|
| TLS 代表 TLS 配置。目前,Ingress 只支持单个 TLS 端口 443。如果此列表的多个成员指定了不同的主机,则它们将根据通过 SNI TLS 扩展指定的主机名在同一端口上进行多路,如果入口控制器满足 ingress 支持 SNI。 |
|
| IngressTLS 描述了与入口关联的传输层安全性。 |
18.1.2. .spec.defaultBackend 复制链接链接已复制到粘贴板!
- 描述
- IngressBackend 描述给定服务和端口的所有端点。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| resource 是 Ingress 对象命名空间中的另一个 Kubernetes 资源的 ObjectRef。如果指定了 resource,则无法指定 service.Name 和 service.Port。这是使用 "Service" 相互排斥的设置。 | |
|
| IngressServiceBackend 引用 Kubernetes Service 作为后端。 |
18.1.3. .spec.defaultBackend.service 复制链接链接已复制到粘贴板!
- 描述
- IngressServiceBackend 引用 Kubernetes Service 作为后端。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是引用的服务。服务必须与 Ingress 对象位于同一个命名空间中。 |
|
| ServiceBackendPort 是被引用的服务端口。 |
18.1.4. .spec.defaultBackend.service.port 复制链接链接已复制到粘贴板!
- 描述
- ServiceBackendPort 是被引用的服务端口。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| name 是服务上的端口的名称。这是一个带有 "Number" 的相互排斥的设置。 |
|
| number 是服务上的数字端口号(如 80)。这是使用 "Name" 相互排斥的设置。 |
18.1.5. .spec.rules 复制链接链接已复制到粘贴板!
- 描述
- rules 是用于配置 Ingress 的主机规则列表。如果未指定,或者没有规则匹配,则所有流量都会发送到默认后端。
- 类型
-
array
18.1.6. .spec.rules[] 复制链接链接已复制到粘贴板!
- 描述
- IngressRule 代表将指定主机下的路径映射到相关后端服务的规则。首先为主机匹配评估传入的请求,然后路由到与匹配的 IngressRuleValue 关联的后端。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
|
host 是网络主机的完全限定域名,如 RFC 3986 定义。请注意 RFC 3986: 1 中定义的 URI 的"主机"部分的以下偏差:不允许使用 IP。目前,IngressRuleValue 仅适用于父 Ingress Spec 中的 IP。2. 主机可以是"precise",它是一个没有终止网络主机的域名(如 "foo.bar.com")或"wildcard",它是一个前缀为单个通配符标签的域名(如 ".foo.com")。通配符字符 '' 必须作为第一个 DNS 标签显示,且只匹配单个标签。您不能自行有一个通配符标签(如 Host == "*")。请求将按照以下方式与 Host 字段匹配:1。如果 host 是精确的,如果 http 主机标头等于 Host,则请求与此规则匹配。2.如果 host 是通配符,则请求将与此规则匹配,如果 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
- 必填
-
路径
-
属性 | 类型 | 描述 |
---|---|---|
|
| paths 是将请求映射到后端的路径集合。 |
|
| HTTPIngressPath 将路径与后端相关联。与路径匹配的传入 URL 转发到后端。 |
18.1.8. .spec.rules[].http.paths 复制链接链接已复制到粘贴板!
- 描述
- paths 是将请求映射到后端的路径集合。
- 类型
-
array
18.1.9. .spec.rules[].http.paths[] 复制链接链接已复制到粘贴板!
- 描述
- HTTPIngressPath 将路径与后端相关联。与路径匹配的传入 URL 转发到后端。
- 类型
-
object
- 必填
-
pathType
-
后端
-
属性 | 类型 | 描述 |
---|---|---|
|
| IngressBackend 描述给定服务和端口的所有端点。 |
|
| path 与传入请求的路径匹配。目前,它可以包含不允许来自 RFC 3986 定义的 URL 的传统"path"部分。路径必须以 '/' 开头,在使用值为 "Exact" 或 "Prefix" 的 PathType 时必须存在。 |
|
| pathType 决定路径匹配的解释。pathType 可以是以下值之一:* Exact: 完全匹配 URL 路径。* prefix: 根据 URL 路径前缀匹配,由 '/' 分割。匹配按元素基于路径元素进行。path 元素引用是路径中的标签列表,由 '/' 分隔符分割。如果每个 p 是请求路径的 p 的元素前缀,则请求是 path p 的匹配项。请注意,如果路径的最后一个元素是请求路径中最后一个元素的子字符串,则不是匹配项(例如 /foo/bar/baz 匹配 /foo/bar/baz),但不匹配 /foo/barbaz。* ImplementationSpecific:检查路径匹配最多为 IngressClass。实现可以将其视为单独的 PathType,或者将其与 Prefix 或 Exact 路径类型相同。需要实施才能支持所有路径类型。
可能枚举值:- |
18.1.10. .spec.rules[].http.paths[].backend 复制链接链接已复制到粘贴板!
- 描述
- IngressBackend 描述给定服务和端口的所有端点。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| resource 是 Ingress 对象命名空间中的另一个 Kubernetes 资源的 ObjectRef。如果指定了 resource,则无法指定 service.Name 和 service.Port。这是使用 "Service" 相互排斥的设置。 | |
|
| IngressServiceBackend 引用 Kubernetes Service 作为后端。 |
18.1.11. .spec.rules[].http.paths[].backend.service 复制链接链接已复制到粘贴板!
- 描述
- IngressServiceBackend 引用 Kubernetes Service 作为后端。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是引用的服务。服务必须与 Ingress 对象位于同一个命名空间中。 |
|
| ServiceBackendPort 是被引用的服务端口。 |
18.1.12. .spec.rules[].http.paths[].backend.service.port 复制链接链接已复制到粘贴板!
- 描述
- ServiceBackendPort 是被引用的服务端口。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| name 是服务上的端口的名称。这是一个带有 "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
属性 | 类型 | 描述 |
---|---|---|
|
| 主机是 TLS 证书中包含的主机列表。此列表中的值必须与 tlsSecret 中使用的名称匹配。如果未指定,默认为 loadbalancer 控制器满足此 Ingress 的通配符主机设置。 |
|
| secretName 是用于在端口 443 上终止 TLS 流量的 secret 名称。字段保留可选,以只允许仅基于 SNI 主机名的 TLS 路由。如果监听器中的 SNI 主机与 IngressRule 使用的 "Host" 标头字段冲突,则 SNI 主机用于终止,并将 "Host" 标头的值用于路由。 |
18.1.15. .status 复制链接链接已复制到粘贴板!
- 描述
- IngressStatus 描述 Ingress 的当前状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| IngressLoadBalancerStatus 代表负载均衡器的状态。 |
18.1.16. .status.loadBalancer 复制链接链接已复制到粘贴板!
- 描述
- IngressLoadBalancerStatus 代表负载均衡器的状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| Ingress 是一个包含负载均衡器的入口点的列表。 |
|
| IngressLoadBalancerIngress 代表负载均衡器入口点的状态。 |
18.1.17. .status.loadBalancer.ingress 复制链接链接已复制到粘贴板!
- 描述
- Ingress 是一个包含负载均衡器的入口点的列表。
- 类型
-
array
18.1.18. .status.loadBalancer.ingress[] 复制链接链接已复制到粘贴板!
- 描述
- IngressLoadBalancerIngress 代表负载均衡器入口点的状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 为基于 DNS 的负载均衡器入口点设置 hostname。 |
|
| 为基于 IP 的负载均衡器入口点设置了 IP。 |
|
| 端口提供有关此 LoadBalancer 公开的端口的信息。 |
|
| IngressPortStatus 代表服务端口的错误条件 |
18.1.19. .status.loadBalancer.ingress[].ports 复制链接链接已复制到粘贴板!
- 描述
- 端口提供有关此 LoadBalancer 公开的端口的信息。
- 类型
-
array
18.1.20. .status.loadBalancer.ingress[].ports[] 复制链接链接已复制到粘贴板!
- 描述
- IngressPortStatus 代表服务端口的错误条件
- 类型
-
object
- 必填
-
port
-
protocol
-
属性 | 类型 | 描述 |
---|---|---|
|
| 错误是记录服务端口的问题。错误的格式应遵循以下规则: - 内置错误值应该在此文件中指定,而那些应该使用 CamelCase 名称 - 云供应商特定错误值必须具有符合 foo.example.com/CamelCase 格式的名称。 |
|
| port 是入口端口的端口号。 |
|
| protocol 是入口端口的协议。支持的值有:"TCP", "UDP", "SCTP"
可能枚举值: - |
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 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
18.2.2. /apis/networking.k8s.io/v1/watch/ingresses 复制链接链接已复制到粘贴板!
- HTTP 方法
-
GET
- 描述
- 观察单个对 Ingress 列表的更改。已弃用:改为使用 'watch' 参数和列表操作。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 Ingress 集合
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出或监视类型为 Ingress 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 Ingress
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
- HTTP 方法
-
GET
- 描述
- 观察单个对 Ingress 列表的更改。已弃用:改为使用 'watch' 参数和列表操作。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| Ingress 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 Ingress
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 读取指定的 Ingress
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 Ingress
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 Ingress
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| Ingress 的名称 |
- HTTP 方法
-
GET
- 描述
- 观察对类型为 Ingress 的对象的更改。已弃用:使用带有列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| Ingress 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 Ingress 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 Ingress 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 Ingress 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
第 19 章 IngressClass [networking.k8s.io/v1] 复制链接链接已复制到粘贴板!
- 描述
-
IngressClass 代表 Ingress 的类,由 Ingress Spec 引用。
ingressclass.kubernetes.io/is-default-class
注解可以用来表示 IngressClass 应该被视为 default。当单个 IngressClass 资源将此注解设置为 true 时,没有指定类的新 Ingress 资源将分配此默认存储类。 - 类型
-
object
19.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| IngressClassSpec 提供有关 Ingress 类的信息。 |
19.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- IngressClassSpec 提供有关 Ingress 类的信息。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| Controller 指的是应处理此类的控制器的名称。这允许由同一控制器控制的不同"类别"。例如,对于相同的实现控制器,您可能具有不同的参数。这应该被指定为域前缀路径长度不超过 250 个字符,如 "acme.io/ingress-controller"。此字段不可变。 |
|
| IngressClassParametersReference 标识 API 对象。这可用于指定集群或命名空间范围的资源。 |
19.1.2. .spec.parameters 复制链接链接已复制到粘贴板!
- 描述
- IngressClassParametersReference 标识 API 对象。这可用于指定集群或命名空间范围的资源。
- 类型
-
object
- 必填
-
kind
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| APIGroup 是所引用资源的组。如果没有指定 APIGroup,则指定的 Kind 必须位于 core API 组中。对于任何其他第三方类型,需要 APIGroup。 |
|
| kind 是被引用的资源类型。 |
|
| name 是被引用的资源的名称。 |
|
| namespace 是被引用的资源的命名空间。当 scope 设为 "Namespace" 时,需要此字段,且范围设置为 "Cluster" 时必须取消设置。 |
|
| 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 集合
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出或监视类型为 IngressClass 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 IngressClass
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
19.2.2. /apis/networking.k8s.io/v1/watch/ingressclasses 复制链接链接已复制到粘贴板!
- HTTP 方法
-
GET
- 描述
- 观察单个对 IngressClass 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
19.2.3. /apis/networking.k8s.io/v1/ingressclasses/{name} 复制链接链接已复制到粘贴板!
参数 | 类型 | 描述 |
---|---|---|
|
| IngressClass 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 IngressClass
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 读取指定的 IngressClass
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 IngressClass
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 IngressClass
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| IngressClass 的名称 |
- HTTP 方法
-
GET
- 描述
- 观察对类型为 IngressClass 的对象的更改。已弃用:使用带列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
第 20 章 IPAMClaim [k8s.cni.cncf.io/v1alpha1] 复制链接链接已复制到粘贴板!
- 描述
- IPAMClaim 是 IPAMClaim API 的 Schema
- 类型
-
object
20.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| |
|
|
20.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- 类型
-
object
- 必填
-
interface
-
network
-
属性 | 类型 | 描述 |
---|---|---|
|
| 创建此分配的 pod 接口名称 |
|
| 创建此永久分配的网络名称 |
20.1.2. .status 复制链接链接已复制到粘贴板!
- 描述
- 类型
-
object
- 必填
-
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 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 IPAMClaim 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出类型为 IPAMClaim 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 IPAMClaim
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| IPAMClaim 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 IPAMClaim
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 IPAMClaim
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 IPAMClaim
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 IPAMClaim
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| IPAMClaim 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 IPAMClaim 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 IPAMClaim 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 IPAMClaim 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
第 21 章 IPPool [whereabouts.cni.cncf.io/v1alpha1] 复制链接链接已复制到粘贴板!
- 描述
- IPPool 是 ippools API 的 Schema
- 类型
-
object
21.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| IPPoolSpec 定义 IPPool 的所需状态 |
21.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- IPPoolSpec 定义 IPPool 的所需状态
- 类型
-
object
- 必填
-
分配
-
range
-
属性 | 类型 | 描述 |
---|---|---|
|
| Allocation 是给定范围的分配的 IP 集合。其索引是到池范围相同的 index/offset 的 IP 的直接映射。 |
|
| IPAllocation 代表有关特定 IP 的 pod/容器所有者的元数据 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| |
|
| |
|
|
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 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 IPPool 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 IPPool 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 IPPool
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| IPPool 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 IPPool
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 读取指定的 IPPool
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 IPPool
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 IPPool
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
第 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. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| 指定此 MultiNetworkPolicy 所需的行为。 |
22.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- 指定此 MultiNetworkPolicy 所需的行为。
- 类型
-
object
- 必填
-
podSelector
-
属性 | 类型 | 描述 |
---|---|---|
|
| 要应用到所选 pod 的出口规则列表。如果没有 NetworkPolicies 选择 pod (和集群策略也允许流量),或者流量至少匹配 podSelector 与 pod 匹配的所有 NetworkPolicy 对象,则允许传出流量。如果此字段为空,则此 NetworkPolicy 会限制所有传出流量(且单独用于确保它选择的 pod 默认被隔离)。此字段在 1.8 中是 beta 级别 |
|
| NetworkPolicyEgressRule 描述了允许没有与 NetworkPolicySpec 的 pod 匹配的 pod 集合的流量。流量必须与端口 和 匹配。这个类型是 1.8 中的 beta 级别 |
|
| 要应用到所选 pod 的 ingress 规则列表。如果没有 NetworkPolicies 选择 pod (并且集群策略允许流量),或者流量源是 pod 的本地节点,或者如果流量源是 pod 的本地节点,或者如果流量至少匹配 pod 的所有 NetworkPolicy 对象中的一个入站规则,则允许流量。如果此字段为空,则此 NetworkPolicy 不允许任何流量(只服务来确保它选择的 pod 默认被隔离) |
|
| NetworkPolicyIngressRule 描述了允许 pod 集合与 NetworkPolicySpec 的 pod 匹配的特定流量。流量必须与端口 和 from 匹配。 |
|
| 这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。 |
|
| 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
属性 | 类型 | 描述 |
---|---|---|
|
| 传出流量的目标端口列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。 |
|
| NetworkPolicyPort 描述了允许流量的端口 |
|
| 为这个规则选择的 pod 的目的地列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有目的地匹配(不受目的地限制的流量)。如果此字段至少存在并包含一项,则该规则仅在流量至少与 to 列表中某一项匹配时才允许流量。 |
|
| NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合 |
22.1.4. .spec.egress[].ports 复制链接链接已复制到粘贴板!
- 描述
- 传出流量的目标端口列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。
- 类型
-
array
22.1.5. .spec.egress[].ports[] 复制链接链接已复制到粘贴板!
- 描述
- NetworkPolicyPort 描述了允许流量的端口
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 如果设置,则表示策略应允许从 port 到 endPort 的端口范围。如果没有定义 port 字段,或者 port 字段定义为命名(字符串)端口,则无法定义此字段。endPort 必须相等或大于 port。 |
|
| 给定协议上的端口。这可以是 pod 上的数字或指定端口。如果没有提供此字段,则匹配所有端口名称和编号。 |
|
| 流量必须匹配的协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。 |
22.1.6. .spec.egress[].to 复制链接链接已复制到粘贴板!
- 描述
- 为这个规则选择的 pod 的目的地列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有目的地匹配(不受目的地限制的流量)。如果此字段至少存在并包含一项,则该规则仅在流量至少与 to 列表中某一项匹配时才允许流量。
- 类型
-
array
22.1.7. .spec.egress[].to[] 复制链接链接已复制到粘贴板!
- 描述
- NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。 |
|
| 使用集群范围的标签选择 Namespaces。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。如果也设置了 PodSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在 NamespaceSelector 中选择 Namespaces 中的所有 Pod。 |
|
| 这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。 |
22.1.8. .spec.egress[].to[].ipBlock 复制链接链接已复制到粘贴板!
- 描述
- IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。
- 类型
-
object
- 必填
-
cidr
-
属性 | 类型 | 描述 |
---|---|---|
|
| 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
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 'key',运算符是 'In',值数组仅包含 'value'。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 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
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 'key',运算符是 'In',值数组仅包含 'value'。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 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
属性 | 类型 | 描述 |
---|---|---|
|
| 能够访问为这个规则选择的 pod 的源列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有源匹配(不受源限制的流量)。如果此字段至少包含一个项,则该规则仅在流量与 from 列表中至少一个项匹配时才允许流量。 |
|
| NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合 |
|
| 应该可在为此规则选择的 pod 上访问的端口列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。 |
|
| NetworkPolicyPort 描述了允许流量的端口 |
22.1.17. .spec.ingress[].from 复制链接链接已复制到粘贴板!
- 描述
- 能够访问为这个规则选择的 pod 的源列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有源匹配(不受源限制的流量)。如果此字段至少包含一个项,则该规则仅在流量与 from 列表中至少一个项匹配时才允许流量。
- 类型
-
array
22.1.18. .spec.ingress[].from[] 复制链接链接已复制到粘贴板!
- 描述
- NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。 |
|
| 使用集群范围的标签选择 Namespaces。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。如果也设置了 PodSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在 NamespaceSelector 中选择 Namespaces 中的所有 Pod。 |
|
| 这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。 |
22.1.19. .spec.ingress[].from[].ipBlock 复制链接链接已复制到粘贴板!
- 描述
- IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。
- 类型
-
object
- 必填
-
cidr
-
属性 | 类型 | 描述 |
---|---|---|
|
| 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
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 'key',运算符是 'In',值数组仅包含 'value'。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 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
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 'key',运算符是 'In',值数组仅包含 'value'。要求的逻辑关系是 AND。 |
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 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
属性 | 类型 | 描述 |
---|---|---|
|
| 如果设置,则表示策略应允许从 port 到 endPort 的端口范围。如果没有定义 port 字段,或者 port 字段定义为命名(字符串)端口,则无法定义此字段。endPort 必须相等或大于 port。 |
|
| 给定协议上的端口。这可以是 pod 上的数字或指定端口。如果没有提供此字段,则匹配所有端口名称和编号。 |
|
| 流量必须匹配的协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。 |
22.1.28. .spec.podSelector 复制链接链接已复制到粘贴板!
- 描述
- 这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
|
22.1.29. .spec.podSelector.matchExpressions 复制链接链接已复制到粘贴板!
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
22.1.30. .spec.podSelector.matchExpressions[] 复制链接链接已复制到粘贴板!
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 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
-
- HTTP 方法
-
GET
- 描述
- 列出 MultiNetworkPolicy 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 MultiNetworkPolicy 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 MultiNetworkPolicy 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建一个 MultiNetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| MultiNetworkPolicy 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除一个 MultiNetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 MultiNetworkPolicy
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 MultiNetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 MultiNetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
第 23 章 NetworkAttachmentDefinition [k8s.cni.cncf.io/v1] 复制链接链接已复制到粘贴板!
- 描述
- NetworkAttachmentDefinition 是 Network Plumbing Working Group 指定的 CRD 模式,用于表达将 pod 附加到一个或多个逻辑或物理网络的意图。更多信息: https://github.com/k8snetworkplumbingwg/multi-net-spec
- 类型
-
object
23.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| NetworkAttachmentDefinition spec 定义网络附加的所需状态 |
23.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- NetworkAttachmentDefinition spec 定义网络附加的所需状态
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 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 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 NetworkAttachmentDefinition 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 NetworkAttachmentDefinition 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 NetworkAttachmentDefinition
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| NetworkAttachmentDefinition 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 NetworkAttachmentDefinition
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 读取指定的 NetworkAttachmentDefinition
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 NetworkAttachmentDefinition
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 NetworkAttachmentDefinition
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
第 24 章 NetworkPolicy [networking.k8s.io/v1] 复制链接链接已复制到粘贴板!
- 描述
- NetworkPolicy 描述一组 Pod 允许哪些网络流量
- 类型
-
object
24.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| NetworkPolicySpec 提供 NetworkPolicy 的规格 |
24.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- NetworkPolicySpec 提供 NetworkPolicy 的规格
- 类型
-
object
- 必填
-
podSelector
-
属性 | 类型 | 描述 |
---|---|---|
|
| egress 是要应用到所选 pod 的出口规则列表。如果没有 NetworkPolicies 选择 pod (和集群策略也允许流量),或者流量至少匹配 podSelector 与 pod 匹配的所有 NetworkPolicy 对象,则允许传出流量。如果此字段为空,则此 NetworkPolicy 会限制所有传出流量(且单独用于确保它选择的 pod 默认被隔离)。此字段在 1.8 中是 beta 级别 |
|
| NetworkPolicyEgressRule 描述了允许没有与 NetworkPolicySpec 的 pod 匹配的 pod 集合的流量。流量必须与端口 和 匹配。这个类型是 1.8 中的 beta 级别 |
|
| Ingress 是要应用到所选 pod 的 ingress 规则列表。如果没有 NetworkPolicies 选择 pod (并且集群策略允许流量),或者流量源是 pod 的本地节点,或者如果流量源是 pod 的本地节点,或者如果流量至少匹配 pod 的所有 NetworkPolicy 对象中的一个入站规则,则允许流量。如果此字段为空,则此 NetworkPolicy 不允许任何流量(只服务来确保它选择的 pod 默认被隔离) |
|
| NetworkPolicyIngressRule 描述了允许 pod 集合与 NetworkPolicySpec 的 pod 匹配的特定流量。流量必须与端口 和 from 匹配。 |
| podSelector 选择此 NetworkPolicy 对象应用到的 pod。ingress 规则数组应用到此字段选择的任何 pod。多个网络策略可以选择同一组 pod。在这种情况下,每个的入站规则都会有一定的合并。此字段不可选,并遵循标准标签选择器语义。空 podSelector 匹配此命名空间中的所有 pod。 | |
|
| 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
属性 | 类型 | 描述 |
---|---|---|
|
| ports 是传出流量的目标端口列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。 |
|
| NetworkPolicyPort 描述了允许流量的端口 |
|
| to 是为这个规则选择的 pod 的传出流量的目的地列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有目的地匹配(不受目的地限制的流量)。如果此字段至少存在并包含一项,则该规则仅在流量至少与 to 列表中某一项匹配时才允许流量。 |
|
| NetworkPolicyPeer 描述了允许进出流量的对等点。只允许某些字段组合 |
24.1.4. .spec.egress[].ports 复制链接链接已复制到粘贴板!
- 描述
- ports 是传出流量的目标端口列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。
- 类型
-
array
24.1.5. .spec.egress[].ports[] 复制链接链接已复制到粘贴板!
- 描述
- NetworkPolicyPort 描述了允许流量的端口
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| endPort 表示策略允许端口到 endPort 的端口范围。如果没有定义 port 字段,或者 port 字段定义为命名(字符串)端口,则无法定义此字段。endPort 必须相等或大于 port。 |
| port 代表给定协议上的端口。这可以是 pod 上的数字或指定端口。如果没有提供此字段,则匹配所有端口名称和编号。如果存在,则仅匹配指定协议和端口上的流量。 | |
|
| protocol 代表流量必须匹配的协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。
可能枚举值: - |
24.1.6. .spec.egress[].to 复制链接链接已复制到粘贴板!
- 描述
- to 是为这个规则选择的 pod 的传出流量的目的地列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有目的地匹配(不受目的地限制的流量)。如果此字段至少存在并包含一项,则该规则仅在流量至少与 to 列表中某一项匹配时才允许流量。
- 类型
-
array
24.1.7. .spec.egress[].to[] 复制链接链接已复制到粘贴板!
- 描述
- NetworkPolicyPeer 描述了允许进出流量的对等点。只允许某些字段组合
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| IPBlock 描述了特定的 CIDR (Ex)"192.168.1.0/24","2001:db8::/64"),允许与 NetworkPolicySpec 的 podSelector 匹配的 pod。例外条目描述了不应包含在此规则中的 CIDR。 |
| namespaceSelector 使用集群范围的标签选择命名空间。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。 如果也设置了 podSelector,则 NetworkPolicyPeer 作为整个选择在 namespaceSelector 选择的命名空间中与 podSelector 匹配的 pod。否则,它会选择 namespaceSelector 选择的命名空间中的所有 pod。 | |
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 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
属性 | 类型 | 描述 |
---|---|---|
|
| from 是源列表,应能够访问为此规则选择的 pod。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有源匹配(不受源限制的流量)。如果此字段至少包含一个项,则该规则仅在流量与 from 列表中至少一个项匹配时才允许流量。 |
|
| NetworkPolicyPeer 描述了允许进出流量的对等点。只允许某些字段组合 |
|
| ports 是应该可在针对此规则选择的 pod 上访问的端口的列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。 |
|
| NetworkPolicyPort 描述了允许流量的端口 |
24.1.11. .spec.ingress[].from 复制链接链接已复制到粘贴板!
- 描述
- from 是源列表,应能够访问为此规则选择的 pod。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有源匹配(不受源限制的流量)。如果此字段至少包含一个项,则该规则仅在流量与 from 列表中至少一个项匹配时才允许流量。
- 类型
-
array
24.1.12. .spec.ingress[].from[] 复制链接链接已复制到粘贴板!
- 描述
- NetworkPolicyPeer 描述了允许进出流量的对等点。只允许某些字段组合
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| IPBlock 描述了特定的 CIDR (Ex)"192.168.1.0/24","2001:db8::/64"),允许与 NetworkPolicySpec 的 podSelector 匹配的 pod。例外条目描述了不应包含在此规则中的 CIDR。 |
| namespaceSelector 使用集群范围的标签选择命名空间。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。 如果也设置了 podSelector,则 NetworkPolicyPeer 作为整个选择在 namespaceSelector 选择的命名空间中与 podSelector 匹配的 pod。否则,它会选择 namespaceSelector 选择的命名空间中的所有 pod。 | |
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 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
属性 | 类型 | 描述 |
---|---|---|
|
| endPort 表示策略允许端口到 endPort 的端口范围。如果没有定义 port 字段,或者 port 字段定义为命名(字符串)端口,则无法定义此字段。endPort 必须相等或大于 port。 |
| port 代表给定协议上的端口。这可以是 pod 上的数字或指定端口。如果没有提供此字段,则匹配所有端口名称和编号。如果存在,则仅匹配指定协议和端口上的流量。 | |
|
| protocol 代表流量必须匹配的协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。
可能枚举值: - |
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 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
24.2.2. /apis/networking.k8s.io/v1/watch/networkpolicies 复制链接链接已复制到粘贴板!
- HTTP 方法
-
GET
- 描述
- 观察单个对 NetworkPolicy 列表的更改。已弃用:使用带有列表操作的 'watch' 参数。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 NetworkPolicy 集合
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出或监视类型为 NetworkPolicy 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 NetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 观察单个对 NetworkPolicy 列表的更改。已弃用:使用带有列表操作的 'watch' 参数。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| NetworkPolicy 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 NetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 读取指定的 NetworkPolicy
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 NetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 NetworkPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| NetworkPolicy 的名称 |
- HTTP 方法
-
GET
- 描述
- 观察对类型为 NetworkPolicy 的对象的更改。已弃用:使用带有列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
第 25 章 NodeSlicePool [whereabouts.cni.cncf.io/v1alpha1] 复制链接链接已复制到粘贴板!
- 描述
- NodeSlicePool 是 nodesliceippools API 的 Schema
- 类型
-
object
25.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| NodeSlicePoolSpec 定义 NodeSlicePool 的所需状态 |
|
| NodeSlicePoolStatus 定义 NodeSlicePool 的所需状态 |
25.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- NodeSlicePoolSpec 定义 NodeSlicePool 的所需状态
- 类型
-
object
- 必填
-
range
-
sliceSize
-
属性 | 类型 | 描述 |
---|---|---|
|
| range 是一个 RFC 4632/4291-style 字符串,代表 CIDR 标记中的 IP 地址和前缀长度,这指的是为节点分配子集的完整范围 |
|
| SliceSize 是要分配每个节点的范围的子网或片段大小 |
25.1.2. .status 复制链接链接已复制到粘贴板!
- 描述
- NodeSlicePoolStatus 定义 NodeSlicePool 的所需状态
- 类型
-
object
- 必填
-
分配
-
属性 | 类型 | 描述 |
---|---|---|
|
| 分配会保存对分片的分配 |
|
|
25.1.3. .status.allocations 复制链接链接已复制到粘贴板!
- 描述
- 分配会保存对分片的分配
- 类型
-
数组
25.1.4. .status.allocations[] 复制链接链接已复制到粘贴板!
- 描述
- 类型
-
object
- 必填
-
nodeName
-
sliceRange
-
属性 | 类型 | 描述 |
---|---|---|
|
| nodeName 是分配给此片段的节点的名称,空节点名称是一个可用分片,用于分配 |
|
| 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 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 NodeSlicePool 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 NodeSlicePool 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- create a NodeSlicePool
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| NodeSlicePool 的名称 |
- HTTP 方法
-
DELETE
- 描述
- delete a NodeSlicePool
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 NodeSlicePool
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 NodeSlicePool
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 NodeSlicePool
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
- 描述
- OverlappingRangeIPReservation 是 OverlappingRangeIPReservations API 的 Schema
- 类型
-
object
- 必填
-
spec
-
26.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| OverlappingRangeIPReservationSpec 定义所需的 OverlappingRangeIPReservation |
26.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- OverlappingRangeIPReservationSpec 定义所需的 OverlappingRangeIPReservation
- 类型
-
object
- 必填
-
podref
-
属性 | 类型 | 描述 |
---|---|---|
|
| |
|
| |
|
|
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 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 OverlappingRangeIPReservation 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 OverlappingRangeIPReservation 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 OverlappingRangeIPReservation
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| OverlappingRangeIPReservation 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 OverlappingRangeIPReservation
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 OverlappingRangeIPReservation
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 OverlappingRangeIPReservation
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 OverlappingRangeIPReservation
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
- 描述
PodNetworkConnectivityCheck
兼容性级别 4:不提供兼容性,API 可能会因为任何原因而有所变化。这些功能不应由需要长期支持的应用程序使用。
- 类型
-
object
- 必填
-
spec
-
27.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| spec 定义连接检查的源和目标 |
|
| status 包含连接检查的观察状态 |
27.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- spec 定义连接检查的源和目标
- 类型
-
object
- 必填
-
sourcePod
-
targetEndpoint
-
属性 | 类型 | 描述 |
---|---|---|
|
| sourcePod 将从中检查条件的 pod 命名为 |
|
| 要检查的 EndpointAddress。形式为 host:port 的 TCP 地址。请注意,如果 host 是 DNS 名称,则如果无法解析 DNS 名称,则检查将失败。为主机指定要绕过 DNS 名称查找的 IP 地址。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是引用的 secret 的 metadata.name |
27.1.3. .status 复制链接链接已复制到粘贴板!
- 描述
- status 包含连接检查的观察状态
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 条件总结检查的状态 |
|
| PodNetworkConnectivityCheckCondition 代表 pod 网络连接的整体状态。 |
|
| 失败包含失败的检查操作的日志 |
|
| LogEntry 记录事件 |
|
| 中断包含中断时间的日志 |
|
| OutageEntry 记录中断的时间段 |
|
| successes 包含日志成功检查操作 |
|
| LogEntry 记录事件 |
27.1.4. .status.conditions 复制链接链接已复制到粘贴板!
- 描述
- 条件总结检查的状态
- 类型
-
array
27.1.5. .status.conditions[] 复制链接链接已复制到粘贴板!
- 描述
- PodNetworkConnectivityCheckCondition 代表 pod 网络连接的整体状态。
- 类型
-
object
- 必填
-
status
-
type
-
属性 | 类型 | 描述 |
---|---|---|
| `` | 条件从一个状态转换到另一个状态最后一次的时间。 |
|
| 消息以人类可读的格式表示最后一次转换的详细信息。 |
|
| 以机器可读格式替换条件的最后状态转换的原因。 |
|
| 条件的状态 |
|
| 条件的类型 |
27.1.6. .status.failures 复制链接链接已复制到粘贴板!
- 描述
- 失败包含失败的检查操作的日志
- 类型
-
array
27.1.7. .status.failures[] 复制链接链接已复制到粘贴板!
- 描述
- LogEntry 记录事件
- 类型
-
object
- 必填
-
success
-
属性 | 类型 | 描述 |
---|---|---|
| `` | 延迟记录了条目中提到的操作的时间。 |
|
| 以人类可读的格式解释状态的消息。 |
|
| 以机器可读格式状态的原因。 |
|
| success 表示日志条目是否表示成功或失败。 |
| `` | 检查操作的开始时间。 |
27.1.8. .status.outages 复制链接链接已复制到粘贴板!
- 描述
- 中断包含中断时间的日志
- 类型
-
array
27.1.9. .status.outages[] 复制链接链接已复制到粘贴板!
- 描述
- OutageEntry 记录中断的时间段
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| `` | 检测到中断结束 |
|
| endLogs 包含与此中断结束相关的日志条目。应包含已解决中断的成功条目,并且可能存在几个前面的故障日志条目。 |
|
| LogEntry 记录事件 |
|
| 消息以人类可读的格式汇总中断详情。 |
| `` | 检测到中断的开始 |
|
| startLogs 包含与此中断开始相关的日志条目。应该包含原始失败,以及任何失败模式更改的条目。 |
|
| LogEntry 记录事件 |
27.1.10. .status.outages[].endLogs 复制链接链接已复制到粘贴板!
- 描述
- endLogs 包含与此中断结束相关的日志条目。应包含已解决中断的成功条目,并且可能存在几个前面的故障日志条目。
- 类型
-
array
27.1.11. .status.outages[].endLogs[] 复制链接链接已复制到粘贴板!
- 描述
- LogEntry 记录事件
- 类型
-
object
- 必填
-
success
-
属性 | 类型 | 描述 |
---|---|---|
| `` | 延迟记录了条目中提到的操作的时间。 |
|
| 以人类可读的格式解释状态的消息。 |
|
| 以机器可读格式状态的原因。 |
|
| success 表示日志条目是否表示成功或失败。 |
| `` | 检查操作的开始时间。 |
27.1.12. .status.outages[].startLogs 复制链接链接已复制到粘贴板!
- 描述
- startLogs 包含与此中断开始相关的日志条目。应该包含原始失败,以及任何失败模式更改的条目。
- 类型
-
array
27.1.13. .status.outages[].startLogs[] 复制链接链接已复制到粘贴板!
- 描述
- LogEntry 记录事件
- 类型
-
object
- 必填
-
success
-
属性 | 类型 | 描述 |
---|---|---|
| `` | 延迟记录了条目中提到的操作的时间。 |
|
| 以人类可读的格式解释状态的消息。 |
|
| 以机器可读格式状态的原因。 |
|
| success 表示日志条目是否表示成功或失败。 |
| `` | 检查操作的开始时间。 |
27.1.14. .status.successes 复制链接链接已复制到粘贴板!
- 描述
- successes 包含日志成功检查操作
- 类型
-
array
27.1.15. .status.successes[] 复制链接链接已复制到粘贴板!
- 描述
- LogEntry 记录事件
- 类型
-
object
- 必填
-
success
-
属性 | 类型 | 描述 |
---|---|---|
| `` | 延迟记录了条目中提到的操作的时间。 |
|
| 以人类可读的格式解释状态的消息。 |
|
| 以机器可读格式状态的原因。 |
|
| success 表示日志条目是否表示成功或失败。 |
| `` | 检查操作的开始时间。 |
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 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 PodNetworkConnectivityCheck 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出类型为 PodNetworkConnectivityCheck 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 PodNetworkConnectivityCheck
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| PodNetworkConnectivityCheck 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 PodNetworkConnectivityCheck
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 PodNetworkConnectivityCheck
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 PodNetworkConnectivityCheck
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 PodNetworkConnectivityCheck
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| PodNetworkConnectivityCheck 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 PodNetworkConnectivityCheck 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 PodNetworkConnectivityCheck 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 PodNetworkConnectivityCheck 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
- 描述
ReferenceGrant 识别其他命名空间中受信任的资源类型,这些资源在与策略相同的命名空间中引用指定种类的资源。
每个 ReferenceGrant 都可用于代表唯一的信任关系。其他 Reference Grants 可用于添加到其定义的命名空间的入站引用集合中。
网关 API 中的所有跨命名空间引用(跨命名空间网关附加除外)都需要参考人员。
ReferenceGrant 是运行时验证的形式,允许用户断言允许跨命名空间对象引用。支持 ReferenceGrant MUST 的实现不允许没有授权的跨命名空间引用,通过撤销授权的访问权限来响应删除授权。
- 类型
-
object
28.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| spec 定义所需的 ReferenceGrant 状态。 |
28.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- spec 定义所需的 ReferenceGrant 状态。
- 类型
-
object
- 必填
-
from
-
至
-
属性 | 类型 | 描述 |
---|---|---|
|
| from 描述了可引用"To"中描述的资源的可信命名空间和类型。此列表中的每个条目都必须视为一个额外的位置,引用可以从其有效,或者以另一种方式放置条目,必须使用 OR 合并条目。 支持:Core |
|
| ReferenceGrantFrom 描述了可信命名空间和类型。 |
|
| 描述可能由"From"中描述的资源引用的资源。此列表中的每个条目都必须视为一个额外的位置,引用可以有效,或者以另一种方式放置条目,必须使用 OR 合并条目。 支持:Core |
|
| ReferenceGrantTo 描述了允许什么 Kind 作为参考目标。 |
28.1.2. .spec.from 复制链接链接已复制到粘贴板!
- 描述
from 描述了可引用"To"中描述的资源的可信命名空间和类型。此列表中的每个条目都必须视为一个额外的位置,引用可以从其有效,或者以另一种方式放置条目,必须使用 OR 合并条目。
支持:Core
- 类型
-
数组
28.1.3. .spec.from[] 复制链接链接已复制到粘贴板!
- 描述
- ReferenceGrantFrom 描述了可信命名空间和类型。
- 类型
-
object
- 必填
-
group
-
kind
-
namespace
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。如果为空,Kubernetes 核心 API 组将被推断出来。 支持:Core |
|
| kind 是引用的种类。虽然实施可能会支持其他资源,但以下类型是此字段的"Core"支持级别的一部分。 用于允许 SecretObjectReference 时: * gateway 用于允许 BackendObjectReference 时: * GRPCRoute * HTTPRoute * TCPRoute * TLSRoute * UDPRoute |
|
| namespace 是引用的命名空间。 支持:Core |
28.1.4. .spec.to 复制链接链接已复制到粘贴板!
- 描述
描述可能由"From"中描述的资源引用的资源。此列表中的每个条目都必须视为一个额外的位置,引用可以有效,或者以另一种方式放置条目,必须使用 OR 合并条目。
支持:Core
- 类型
-
数组
28.1.5. .spec.to[] 复制链接链接已复制到粘贴板!
- 描述
- ReferenceGrantTo 描述了允许什么 Kind 作为参考目标。
- 类型
-
object
- 必填
-
group
-
kind
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。如果为空,Kubernetes 核心 API 组将被推断出来。 支持:Core |
|
| kind 是引用的种类。虽然实现可能会支持其他资源,但以下类型是此字段的"Core"支持级别的一部分: * secret 当用于允许 SecretObjectReference * Service 时用于允许 BackendObjectReference |
|
| 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 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 ReferenceGrant 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出类型为 ReferenceGrant 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建参考人员
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| ReferenceGrant 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除参考信息
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的参考Grant
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的参考Grant
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 ReferenceGrant
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
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. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| metadata 是标准对象的元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| RouteSpec 描述了路由公开的主机名或路径、任何安全信息,以及到路由指向的四个后端(服务)。根据分配给每个后端的权重在后端间分布请求。当使用 roundrobin 调度进入每个后端的请求部分时,后端权重会除以所有后端权重的总和。当后端有多个端点时,后端结束的请求会在端点之间循环分布。权重介于 0 到 256 之间,默认为 100。权重 0 会导致请求到后端。如果所有权重都为零,则路由将被视为没有后端并返回标准 503 响应。
|
|
| RouteStatus 提供有关路由状态的相关信息,包括确认哪个路由器。 |
29.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
RouteSpec 描述了路由公开的主机名或路径、任何安全信息,以及到路由指向的四个后端(服务)。根据分配给每个后端的权重在后端间分布请求。当使用 roundrobin 调度进入每个后端的请求部分时,后端权重会除以所有后端权重的总和。当后端有多个端点时,后端结束的请求会在端点之间循环分布。权重介于 0 到 256 之间,默认为 100。权重 0 会导致请求到后端。如果所有权重都为零,则路由将被视为没有后端并返回标准 503 响应。
tls
字段是可选的,允许路由的特定证书或行为。路由器通常在通配符域中配置默认证书,以在没有显式证书的情况下终止路由,但自定义主机名通常必须选择 passthrough (通过 TLS Server-Name- Indication 字段向后端发送流量)或提供证书。- 类型
-
object
- 必填
-
至
-
属性 | 类型 | 描述 |
---|---|---|
|
| alternateBackends 允许最多 3 个额外的后端分配给路由。只允许 Service kind,它将默认为 Service。使用 RouteTargetReference 对象中的 weight 字段指定相对的首选项。 |
|
| RouteTargetReference 指定解析为端点的目标。只允许 'Service' kind。使用"weight"字段加重其他字段。 |
|
| 主机是一个指向该服务的别名/DNS。可选。如果没有指定路由名称,则通常会自动选择。必须遵循 DNS952 子域惯例。 |
|
| RouteHTTPHeaders 为 HTTP 标头定义策略。 |
|
| 路由器监视的路径,将流量路由到该服务的流量。选填 |
|
| RoutePort 定义从路由器到服务端点中的端点的端口映射。 |
|
| 子域是在入口控制器的域(作为子域)中请求的 DNS 子域。如果设置 host,则忽略此字段。入口控制器可能会选择忽略这个建议的名称,在这种情况下,控制器会在 status.ingress 数组中报告分配的名称,或拒绝接受该路由。如果设置了这个值,且服务器不支持此字段,主机则会自动填充。否则主机将留空。该字段可能有多个以点分开的部分,但并非所有入口控制器都遵守请求。创建后无法更改此字段,但具有更新路由/自定义主机权限的用户除外。
示例:子域 |
|
| TLSConfig 定义用于保护路由并提供终止的配置 |
|
| RouteTargetReference 指定解析为端点的目标。只允许 'Service' kind。使用"weight"字段加重其他字段。 |
|
| 用于路由的通配符策略。目前只允许 '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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 路由引用的目标种类。目前,只允许 'Service' |
|
| 要引用的服务/目标的名称,如服务的名称 |
|
| weight 作为 0 到 256 之间的整数,默认 100 指定针对其他目标引用对象的目标相对权重。0 会阻止请求进入此后端。 |
29.1.4. .spec.httpHeaders 复制链接链接已复制到粘贴板!
- 描述
- RouteHTTPHeaders 为 HTTP 标头定义策略。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| RouteHTTPHeaderActions 定义 HTTP 请求和响应标头的操作配置。 |
29.1.5. .spec.httpHeaders.actions 复制链接链接已复制到粘贴板!
- 描述
- RouteHTTPHeaderActions 定义 HTTP 请求和响应标头的操作配置。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
|
request 是要修改的 HTTP 请求标头列表。目前,操作可以定义为 |
|
| RouteHTTPHeader 指定设置或删除 HTTP 标头的配置。 |
|
|
response 是要修改的 HTTP 响应标头列表。目前,操作可以定义为 |
|
| RouteHTTPHeader 指定设置或删除 HTTP 标头的配置。 |
29.1.6. .spec.httpHeaders.actions.request 复制链接链接已复制到粘贴板!
- 描述
-
request 是要修改的 HTTP 请求标头列表。目前,操作可以定义为
Set
或Delete
标头值。此处定义的操作将修改通过路由发出的所有请求的请求标头。这些操作应用于集群内定义的特定路由,例如通过路由进行的连接。目前,操作可以定义为Set
或Delete
标头值。路由操作将在请求标头的 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| RouteHTTPHeaderActionUnion 指定对 HTTP 标头执行的操作。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| RouteSetHTTPHeader 指定在 HTTP 标头上需要设置什么值。 |
|
| type 定义要在标头中应用的操作类型。可能的值有 Set 或 Delete。设置允许您设置 HTTP 请求和响应标头。通过删除,您可以删除 HTTP 请求和响应标头。 |
29.1.9. .spec.httpHeaders.actions.request[].action.set 复制链接链接已复制到粘贴板!
- 描述
- RouteSetHTTPHeader 指定在 HTTP 标头上需要设置什么值。
- 类型
-
object
- 必填
-
value
-
属性 | 类型 | 描述 |
---|---|---|
|
| 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 响应标头列表。目前,操作可以定义为
Set
或Delete
标头值。此处定义的操作将修改通过路由发出的所有请求的响应标头。这些操作应用于集群内定义的特定路由,例如通过路由进行的连接。路由操作将在响应标头的 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| RouteHTTPHeaderActionUnion 指定对 HTTP 标头执行的操作。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| RouteSetHTTPHeader 指定在 HTTP 标头上需要设置什么值。 |
|
| type 定义要在标头中应用的操作类型。可能的值有 Set 或 Delete。设置允许您设置 HTTP 请求和响应标头。通过删除,您可以删除 HTTP 请求和响应标头。 |
29.1.13. .spec.httpHeaders.actions.response[].action.set 复制链接链接已复制到粘贴板!
- 描述
- RouteSetHTTPHeader 指定在 HTTP 标头上需要设置什么值。
- 类型
-
object
- 必填
-
value
-
属性 | 类型 | 描述 |
---|---|---|
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
| 此路由所指向的服务选择的 pod 上的目标端口。如果这是字符串,它会在目标端点端口列表中作为命名的端口进行查找。必填 |
29.1.15. .spec.tls 复制链接链接已复制到粘贴板!
- 描述
- TLSConfig 定义用于保护路由并提供终止的配置
- 类型
-
object
- 必填
-
termination
-
属性 | 类型 | 描述 |
---|---|---|
|
| caCertificate 提供证书颁发机构证书内容 |
|
| 证书提供证书内容。这应该是单一服务证书,而不是证书链。不要包括 CA 证书。 |
|
| destinationCACertificate 提供最终目的地的 ca 证书的内容。使用重新加密终止时,应提供此文件,以便让路由器将它用于安全连接上的健康检查。如果没有指定此字段,路由器可能会提供自己的目标 CA,并使用短服务名称(service.namespace.svc)执行主机名验证,它允许基础架构生成的证书自动验证。 |
|
| LocalObjectReference 包含足够信息,供您在同一命名空间中找到引用的对象。 |
|
| insecureEdgeTerminationPolicy 表示路由不安全连接所需的行为。虽然每个路由器可能会对要公开的端口做出自己的决定,但通常这是端口 80。 如果路由没有指定 insecureEdgeTerminationPolicy,则默认行为是 "None"。 * allow - 流量发送到不安全端口中的服务器(仅限边缘/重新加密终止)。 * None - 在不安全的端口(默认)上不允许流量。 * Redirect - 客户端被重定向到安全端口。 |
|
| 密钥提供密钥文件内容 |
|
| termination 表示终止类型。 * edge - TLS 终止由路由器完成,http 用于与后端通信(默认)= 透传 - 在不提供 TLS 终止的路由器时直接发送到目的地,TLS 终止由路由器完成,https 用于与后端通信 注:passthrough 终止与 httpHeader 操作不兼容 |
29.1.16. .spec.tls.externalCertificate 复制链接链接已复制到粘贴板!
- 描述
- LocalObjectReference 包含足够信息,供您在同一命名空间中找到引用的对象。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
29.1.17. .spec.to 复制链接链接已复制到粘贴板!
- 描述
- RouteTargetReference 指定解析为端点的目标。只允许 'Service' kind。使用"weight"字段加重其他字段。
- 类型
-
object
- 必填
-
kind
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| 路由引用的目标种类。目前,只允许 'Service' |
|
| 要引用的服务/目标的名称,如服务的名称 |
|
| weight 作为 0 到 256 之间的整数,默认 100 指定针对其他目标引用对象的目标相对权重。0 会阻止请求进入此后端。 |
29.1.18. .status 复制链接链接已复制到粘贴板!
- 描述
- RouteStatus 提供有关路由状态的相关信息,包括确认哪个路由器。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
|
Ingress 描述了可公开路由的位置。ingress 点列表可能包含重复的主机或 RouterName 值。路由在就绪后被视为 |
|
| RouteIngress 包含有关公开路由的位置的信息。 |
29.1.19. .status.ingress 复制链接链接已复制到粘贴板!
- 描述
-
Ingress 描述了可公开路由的位置。ingress 点列表可能包含重复的主机或 RouterName 值。路由在就绪后被视为
Ready
- 类型
-
array
29.1.20. .status.ingress[] 复制链接链接已复制到粘贴板!
- 描述
- RouteIngress 包含有关公开路由的位置的信息。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 条件是路由的状态,可能为空。 |
|
| RouteIngressCondition 包含特定路由器上此路由的当前条件的详情。 |
|
| host 是公开路由的主机字符串;需要这个值 |
|
| CanonicalHostname 是路由器的外部主机名,可用作为此路由请求的主机的 CNAME。这个值是可选的,可能不会在所有情况下设置。 |
|
| 名称是路由器选择以标识自身的名称;需要这个值 |
|
| 通配符策略是允许公开此路由的通配符策略。 |
29.1.21. .status.ingress[].conditions 复制链接链接已复制到粘贴板!
- 描述
- 条件是路由的状态,可能为空。
- 类型
-
array
29.1.22. .status.ingress[].conditions[] 复制链接链接已复制到粘贴板!
- 描述
- RouteIngressCondition 包含特定路由器上此路由的当前条件的详情。
- 类型
-
object
- 必填
-
type
-
status
-
属性 | 类型 | 描述 |
---|---|---|
| 当条件最后转换时的 RFC 3339 日期和时间 | |
|
| 人类可读的消息,指示最后一次转换的详细信息。 |
|
| (简洁) 条件最后一次转换的原因,通常是机器和人类可读的常量。 |
|
| status 是条件的状态。可以是 True, False, Unknown。 |
|
| 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 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
29.2.2. /apis/route.openshift.io/v1/watch/routes 复制链接链接已复制到粘贴板!
- HTTP 方法
-
GET
- 描述
- 观察单个对 Route 列表的更改。已弃用:改为使用 'watch' 参数和列表操作。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除路由集合
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出或监视类型为 Route 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建路由
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
- HTTP 方法
-
GET
- 描述
- 观察单个对 Route 列表的更改。已弃用:改为使用 'watch' 参数和列表操作。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| 路由的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除路由
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 读取指定的路由
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的路由
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的路由
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| 路由的名称 |
- HTTP 方法
-
GET
- 描述
- 观察对类型为 Route 的对象的更改。已弃用:使用带有列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| 路由的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 Route 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定路由的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 Route 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
第 30 章 Service [v1] 复制链接链接已复制到粘贴板!
- 描述
- 服务是一个由代理侦听的本地端口(如 mysql)组成的、指定软件服务的抽象概念,以及决定哪些 Pod 将通过代理发送的请求的选择器。
- 类型
-
object
30.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| ServiceSpec 描述了用户在服务上创建的属性。 |
|
| ServiceStatus 代表服务的当前状态。 |
30.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- ServiceSpec 描述了用户在服务上创建的属性。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| allocateLoadBalancerNodePorts 定义是否为类型为 LoadBalancer 的服务自动分配 NodePort。默认值为 "true"。如果集群负载均衡器不依赖于 NodePort,则可能会将其设置为 "false"。如果调用者请求特定的 NodePort (通过指定值),无论此字段如何,将遵守这些请求。此字段只能为类型为 LoadBalancer 的服务设置,并在类型改为任何其他类型时清除。 |
|
| 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 是分配给此服务的 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 是集群中节点也接受此服务的流量的 IP 地址列表。这些 IP 不由 Kubernetes 管理。用户负责确保流量到达具有此 IP 的节点。一个常见的例子是不是 Kubernetes 系统一部分的外部负载均衡器。 |
|
|
ExternalName 是外部引用,发现机制将返回为该服务的别名(例如,DNS CNAME 记录)。不涉及代理。必须是小写 RFC-1123 主机名(https://tools.ietf.org/html/rfc1123),且需要 |
|
| ExternalTrafficPolicy 描述了节点如何在其中一个服务"面向服务的"外部"地址(NodePort、ExternalIP 和 LoadBalancer IP)上接收服务流量。如果设置为"本地",代理将以一种方式配置服务,假设外部负载均衡器负责在节点间平衡服务流量,因此每个节点只会向服务的本地端点发送流量,而不伪装客户端源 IP。(流量错误地发送到没有端点的节点。)默认值 "Cluster" 使用了平均路由到所有端点的标准行为(可能是根据拓扑和其他功能修改)。请注意,从集群内部发送到外部 IP 或 LoadBalancer IP 的流量将始终获得"集群"语义,但从集群中发送到 NodePort 的客户端可能需要在选择节点时考虑流量策略。
可能枚举值: - |
|
| HealthCheckNodePort 为服务指定健康检查 nodePort。这仅在将 type 设置为 LoadBalancer 并且 externalTrafficPolicy 设置为 Local 时才适用。如果指定了值,为 in-range,但没有在使用中,它将被使用。如果没有指定,则会自动分配值。外部系统(如负载均衡器)可以使用此端口来确定给定节点是否包含此服务的端点。如果在创建不需要的 Service 时指定了此字段,则创建将失败。当更新 Service 时,将擦除此字段,使其不再需要(例如更改类型)。设置后,不能更新此字段。 |
|
| internalTrafficPolicy 描述了节点如何分发它们在 ClusterIP 上接收的服务流量。如果设置为 "Local",代理将假定 pod 只想与与 pod 相同的节点上与服务端点通信,如果没有本地端点,则丢弃流量。默认值 "Cluster" 使用了平均路由到所有端点的标准行为(可能是根据拓扑和其他功能修改)。
可能枚举值: - |
|
| ipFamilies 是分配给此服务的 IP 系列(如 IPv4、IPv6)的列表。通常会根据集群配置和 ipFamilyPolicy 字段自动分配此字段。如果手动指定此字段,则集群中提供了请求的系列,并且 ipFamilyPolicy 允许它,否则创建服务将失败。此字段有条件性 :它允许添加或删除二级 IP 系列,但它不允许更改服务的主 IP 系列。有效值为 "IPv4" 和 "IPv6"。此字段只适用于 ClusterIP、NodePort 和 LoadBalancer 类型的服务,并适用于 "headless" 服务。当将 Service 更新为类型为 ExternalName 时,此字段将擦除。 此字段最多可保留两个条目(以任一顺序排列的双栈系列)。如果指定,这些系列必须与 clusterIPs 字段的值对应。clusterIPs 和 ipFamilies 都由 ipFamilyPolicy 字段管理。 |
|
| ipFamilyPolicy 代表此 Service 请求或所需的双栈。如果没有提供值,则此字段将设置为 SingleStack。服务可以是"SingleStack" (单一 IP 系列)、"PreferDualStack" (在双栈配置的集群或单堆栈群集上的单个 IP 系列)或"RequireDualStack" (双堆栈配置群集的两个 IP 系列),否则失败。ipFamilies 和 clusterIPs 字段取决于此字段的值。当将服务更新为类型为 ExternalName 时,将擦除此字段。
可能枚举值:- |
|
| loadBalancerClass 是此服务所属的负载均衡器实现的类。如果指定,此字段的值必须是标签式标识符,带有可选前缀,如 "internal-vip" 或 "example.com/internal-vip"。Unprefixed name 为最终用户保留。只有在 Service type 为 'LoadBalancer' 时,才能设置此字段。如果没有设置,则使用默认负载均衡器实施,现在这通常通过云供应商集成来实现,但应该适用于任何默认的实施。如果设置,则会假定负载均衡器实现正在监视具有匹配类的服务。任何默认的负载均衡器实现(如云供应商)都应忽略设置此字段的服务。此字段只能在创建或更新 Service 以键入"LoadBalancer"时设置。设置后,无法更改它。当服务更新为非"LoadBalancer"类型时,将擦除此字段。 |
|
| 只适用于 Service Type: LoadBalancer。此功能取决于创建负载均衡器时是否支持指定 loadBalancerIP 底层的 cloud-provider。如果 cloud-provider 不支持该功能,则此字段将被忽略。弃用:此字段是指定的,其含义因实现而异。使用它不可移植,可能不支持双栈。我们鼓励用户在可用时使用特定于实施的注解。 |
|
| 如果平台指定和支持,这将限制通过 cloud-provider 负载平衡器的流量将限制为指定的客户端 IP。如果 cloud-provider 不支持该功能,则此字段将被忽略。更多信息: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/ |
|
| 此服务公开的端口列表。更多信息: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies |
|
| servicePort 包含服务端口的信息。 |
|
| publishNotReadyAddresses 表示处理此服务端点的任何代理,应忽略任何就绪/未就绪的指示。设置此字段的主要用例是 StatefulSet 的无标头服务,用于其 Pod 的 SRV DNS 记录,用于对等发现。为服务生成 Endpoints 和 EndpointSlice 资源的 Kubernetes 控制器会解释它,这意味着即使 Pod 本身没有,所有端点都被视为"就绪"。只有通过 Endpoints 或 EndpointSlice 资源消耗 Kubernetes 生成的端点的代理可以安全地假设此行为。 |
|
| 使用与此选择器匹配的标签键和值将服务流量路由到 pod。如果为空或不存在,则假定服务具有管理其端点的外部进程,Kubernetes 将不会被修改。仅适用于类型 ClusterIP、NodePort 和 LoadBalancer。如果 type 是 ExternalName,则忽略。更多信息: https://kubernetes.io/docs/concepts/services-networking/service/ |
|
| 支持"ClientIP"和"None"。用于维护会话关联。启用基于客户端 IP 的会话关联性。必须是 ClientIP 或 None。默认值为 None。更多信息: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
可能枚举值: - |
|
| sessionAffinityConfig 代表会话关联性的配置。 |
|
| TrafficDistribution 提供了一种方式,用于表达流量如何分发到服务端点的首选项。实现可以使用此字段作为提示,但不一定要保证严格遵循。如果没有设置字段,实施将应用其默认路由策略。如果设置为 "PreferClose",则实现应优先排序地关闭端点(例如,同一区域)。这是一个 beta 字段,需要启用 ServiceTrafficDistribution 功能。 |
|
| 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
可能枚举值: - |
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
-
属性 | 类型 | 描述 |
---|---|---|
|
| 此端口的应用程序协议。这用作实现的提示,以便为它们理解的协议提供更丰富的行为。此字段遵循标准 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。 |
|
| 此端口在服务内的名称。这必须是 DNS_LABEL。ServiceSpec 中的所有端口都必须具有唯一的名称。在考虑服务的端点时,这必须与 EndpointPort 中的 'name' 字段匹配。如果在这个服务中只定义了一个 ServicePort。 |
|
| 当类型为 NodePort 或 LoadBalancer 时,此服务在其上公开的每个节点上的端口。通常由系统分配。如果指定了值( in-range),并且不使用它,则会使用它,否则操作将失败。如果没有指定,如果此服务需要端口,则会分配端口。如果在创建不需要的 Service 时指定了此字段,则创建将失败。当将 Service 更新为不再需要时(例如,将类型从 NodePort 更改为 ClusterIP),将擦除此字段。更多信息: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport |
|
| 此服务将由此服务公开的端口。 |
|
| 此端口的 IP 协议。支持"TCP"、"UDP"和"SCTP"。默认为 TCP。
可能枚举值: - |
| 在服务目标的 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
属性 | 类型 | 描述 |
---|---|---|
|
| ClientIPConfig 代表基于客户端 IP 的会话关联性的配置。 |
30.1.5. .spec.sessionAffinityConfig.clientIP 复制链接链接已复制到粘贴板!
- 描述
- ClientIPConfig 代表基于客户端 IP 的会话关联性的配置。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| timeoutSeconds 指定 ClientIP 类型粘性时间的秒数。如果 ServiceAffinity == "ClientIP",则该值必须是 >0 && wagon86400 (1 天)。默认值为 10800 (3 小时)。 |
30.1.6. .status 复制链接链接已复制到粘贴板!
- 描述
- ServiceStatus 代表服务的当前状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| 当前服务状态 | |
|
| LoadBalancerStatus 代表负载均衡器的状态。 |
30.1.7. .status.loadBalancer 复制链接链接已复制到粘贴板!
- 描述
- LoadBalancerStatus 代表负载均衡器的状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| Ingress 是一个包含负载均衡器的入口点的列表。为服务预期的流量应发送到这些入口点。 |
|
| LoadBalancerIngress 代表负载均衡器入口点的状态:服务预期的流量应发送到入口点。 |
30.1.8. .status.loadBalancer.ingress 复制链接链接已复制到粘贴板!
- 描述
- Ingress 是一个包含负载均衡器的入口点的列表。为服务预期的流量应发送到这些入口点。
- 类型
-
array
30.1.9. .status.loadBalancer.ingress[] 复制链接链接已复制到粘贴板!
- 描述
- LoadBalancerIngress 代表负载均衡器入口点的状态:服务预期的流量应发送到入口点。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 为基于 DNS 的负载均衡器入口点设置 hostname (通常是 AWS 负载均衡器) |
|
| 为基于 IP (通常是 GCE 或 OpenStack 负载平衡器)的负载均衡器入站点设置 IP |
|
| ipMode 指定负载均衡器 IP 的行为方式,只能在指定 ip 字段时指定。把它设置为 "VIP" 表示将目的地设置为负载均衡器的 IP 和端口到节点的流量。把它设置为 "Proxy" 表示流量传送到节点或 pod,目的地设置为节点的 IP 和节点端口或 pod 的 IP 和端口。服务实施可能会使用此信息来调整流量路由。 |
|
| ports 是服务端口的记录列表(如果使用),服务中定义的每个端口都应该在其中有一个条目 |
|
| PortStatus 代表服务端口的错误条件 |
30.1.10. .status.loadBalancer.ingress[].ports 复制链接链接已复制到粘贴板!
- 描述
- ports 是服务端口的记录列表(如果使用),服务中定义的每个端口都应该在其中有一个条目
- 类型
-
array
30.1.11. .status.loadBalancer.ingress[].ports[] 复制链接链接已复制到粘贴板!
- 描述
- PortStatus 代表服务端口的错误条件
- 类型
-
object
- 必填
-
port
-
protocol
-
属性 | 类型 | 描述 |
---|---|---|
|
| 错误是记录服务端口的问题。错误的格式应遵循以下规则: - 内置错误值应该在此文件中指定,而那些应该使用 CamelCase 名称 - 云供应商特定错误值必须具有符合 foo.example.com/CamelCase 格式的名称。 |
|
| port 是记录状态的服务端口的端口号 |
|
| protocol 是服务端口的协议,此处记录状态,支持的值有: "TCP", "UDP", "SCTP"
可能枚举值: - |
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 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
30.2.2. /api/v1/watch/services 复制链接链接已复制到粘贴板!
- HTTP 方法
-
GET
- 描述
- 观察单个对服务列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
30.2.3. /api/v1/namespaces/{namespace}/services 复制链接链接已复制到粘贴板!
- HTTP 方法
-
DELETE
- 描述
- 删除服务集合
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出或监视类型为 Service 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建服务
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
30.2.4. /api/v1/watch/namespaces/{namespace}/services 复制链接链接已复制到粘贴板!
- HTTP 方法
-
GET
- 描述
- 观察单个对服务列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
30.2.5. /api/v1/namespaces/{namespace}/services/{name} 复制链接链接已复制到粘贴板!
参数 | 类型 | 描述 |
---|---|---|
|
| Service 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除服务
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 读取指定的服务
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的服务
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的服务
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
参数 | 类型 | 描述 |
---|---|---|
|
| Service 的名称 |
- HTTP 方法
-
GET
- 描述
- 观察对类型为 Service 的对象的更改。已弃用:使用带有列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| Service 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定服务的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定服务的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
- HTTP 方法
-
PUT
- 描述
- 替换指定服务的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
第 31 章 UserDefinedNetwork [k8s.ovn.org/v1] 复制链接链接已复制到粘贴板!
- 描述
- UserDefinedNetwork 描述 Namespace 的网络请求。
- 类型
-
object
- 必填
-
spec
-
31.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| UserDefinedNetworkSpec 定义 UserDefinedNetworkSpec 的所需状态。 |
|
| UserDefinedNetworkStatus 包含 UserDefinedNetwork 的观察状态。 |
31.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- UserDefinedNetworkSpec 定义 UserDefinedNetworkSpec 的所需状态。
- 类型
-
object
- 必填
-
topology
-
属性 | 类型 | 描述 |
---|---|---|
|
| Layer2 是 Layer2 拓扑配置。 |
|
| Layer3 是 Layer3 拓扑配置。 |
|
| 拓扑描述了网络配置。 允许的值是 "Layer3", "Layer2"。Layer3 拓扑会为每个节点创建一个第 2 层段,各自有不同的子网。第 3 层路由用于互连节点子网。Layer2 拓扑创建一个供所有节点共享的逻辑交换机。 |
31.1.2. .spec.layer2 复制链接链接已复制到粘贴板!
- 描述
- Layer2 是 Layer2 拓扑配置。
- 类型
-
object
- 必填
-
role
-
属性 | 类型 | 描述 |
---|---|---|
|
| IPAM 部分包含与网络相关的 IPAM 配置。 |
|
| JoinSubnets 在 OVN 网络拓扑中使用。 双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。此字段仅允许"Primary"网络。不建议在不明确需要和了解 OVN 网络拓扑的情况下设置此字段。省略时,平台将选择一个合理的默认值,该默认值可能会随时间变化。 |
|
| MTU 是网络的最大传输单元。如果没有提供 MTU,则 OVN-Kubernetes 中全局配置的值(默认为 1400)用于网络。 |
|
| Role 描述了 pod 中的 network 角色。
允许的值是 "Secondary"。二级网络只分配给使用 |
|
| 子网用于集群中的 pod 网络。双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。
格式应该与标准 CIDR 表示法匹配(例如 "10.128.0.0/16")。如果 |
31.1.3. .spec.layer2.ipam 复制链接链接已复制到粘贴板!
- 描述
- IPAM 部分包含与网络相关的 IPAM 配置。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 生命周期控制 IP 地址管理生命周期。
唯一允许的值是 Persistent。设置后,OVN Kubernetes 分配的 IP 地址将保留在 |
|
|
模式 控制 OVN 管理 IP 配置的数量。 |
31.1.4. .spec.layer3 复制链接链接已复制到粘贴板!
- 描述
- Layer3 是 Layer3 拓扑配置。
- 类型
-
object
- 必填
-
role
-
subnets
-
属性 | 类型 | 描述 |
---|---|---|
|
| JoinSubnets 在 OVN 网络拓扑中使用。 双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。此字段仅允许"Primary"网络。不建议在不明确需要和了解 OVN 网络拓扑的情况下设置此字段。省略时,平台将选择一个合理的默认值,该默认值可能会随时间变化。 |
|
| MTU 是网络的最大传输单元。 如果没有提供 MTU,则 OVN-Kubernetes 中全局配置的值(默认为 1400)用于网络。 |
|
| Role 描述了 pod 中的 network 角色。
允许的值是 "Primary" 和 "Secondary"。主网络会自动分配给在同一命名空间中创建的每个 pod。二级网络只分配给使用 |
|
| 子网用于集群中的 pod 网络。 双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。给定子网被分成较小的子网。 |
|
|
31.1.5. .spec.layer3.subnets 复制链接链接已复制到粘贴板!
- 描述
子网用于集群中的 pod 网络。
双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。给定子网被分成较小的子网。
- 类型
-
数组
31.1.6. .spec.layer3.subnets[] 复制链接链接已复制到粘贴板!
- 描述
- 类型
-
object
- 必填
-
cidr
-
属性 | 类型 | 描述 |
---|---|---|
|
| CIDR 指定 L3Subnet,每个节点被分成较小的子网。 |
|
| HostSubnet 指定每个节点的子网大小。 如果没有设置,则会自动分配。 |
31.1.7. .status 复制链接链接已复制到粘贴板!
- 描述
- UserDefinedNetworkStatus 包含 UserDefinedNetwork 的观察状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| |
|
| condition 包含此 API 资源当前状态的一个方面的详细信息。 |
31.1.8. .status.conditions 复制链接链接已复制到粘贴板!
- 描述
- 类型
-
array
31.1.9. .status.conditions[] 复制链接链接已复制到粘贴板!
- 描述
- condition 包含此 API 资源当前状态的一个方面的详细信息。
- 类型
-
object
- 必填
-
lastTransitionTime
-
message
-
reason
-
status
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。 |
|
| Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。 |
|
| observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。 |
|
| reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| 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 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
DELETE
- 描述
- 删除 UserDefinedNetwork 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 UserDefinedNetwork 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 UserDefinedNetwork
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| UserDefinedNetwork 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 UserDefinedNetwork
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
- HTTP 方法
-
GET
- 描述
- 读取指定的 UserDefinedNetwork
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 UserDefinedNetwork
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 UserDefinedNetwork
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| UserDefinedNetwork 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 UserDefinedNetwork 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 UserDefinedNetwork 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 UserDefinedNetwork 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
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.