×

规范

属性 类型 描述

apiVersion

字符串

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

kind

字符串

Kind 是一个字符串值,表示此对象表示的 REST 资源。服务器可以从客户端提交请求的端点推断出这一点。不能更新。采用驼峰式命名法。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

对象

IngressSpec 描述了用户希望存在的 Ingress。

status

对象

IngressStatus 描述了 Ingress 的当前状态。

.spec

描述

IngressSpec 描述了用户希望存在的 Ingress。

类型

对象

属性 类型 描述

defaultBackend

对象

IngressBackend 描述了给定服务和端口的所有端点。

ingressClassName

字符串

ingressClassName 是 IngressClass 集群资源的名称。Ingress 控制器实现使用此字段来确定是否应该通过传递连接(控制器 → IngressClass → Ingress 资源)来服务此 Ingress 资源。虽然kubernetes.io/ingress.class 注解(简单的常量名称)从未正式定义,但它已被 Ingress 控制器广泛支持,用于在 Ingress 控制器和 Ingress 资源之间创建直接绑定。新创建的 Ingress 资源应优先使用此字段。但是,即使该注解已被正式弃用,出于向后兼容性的原因,Ingress 控制器仍然应该在存在该注解时予以尊重。

规则

数组

rules 是用于配置 Ingress 的主机规则列表。如果未指定,或没有规则匹配,则所有流量都将发送到默认后端。

rules[]

对象

IngressRule 表示将指定主机下的路径映射到相关后端服务的规则。传入请求首先根据主机匹配进行评估,然后路由到与匹配的 IngressRuleValue 关联的后端。

TLS

数组

tls 表示 TLS 配置。目前 Ingress 只支持单个 TLS 端口 443。如果此列表中的多个成员指定不同的主机,则它们将根据通过 SNI TLS 扩展指定的 hostname 在同一端口上进行多路复用,前提是实现 Ingress 的 Ingress 控制器支持 SNI。

tls[]

对象

IngressTLS 描述与 Ingress 关联的传输层安全。

.spec.defaultBackend

描述

IngressBackend 描述了给定服务和端口的所有端点。

类型

对象

属性 类型 描述

资源

TypedLocalObjectReference

resource 是对 Ingress 对象命名空间中另一个 Kubernetes 资源的 ObjectRef。如果指定了 resource,则不得指定 service.Name 和 service.Port。这是与“Service”互斥的设置。

服务

对象

IngressServiceBackend 将 Kubernetes 服务引用为后端。

.spec.defaultBackend.service

描述

IngressServiceBackend 将 Kubernetes 服务引用为后端。

类型

对象

必需
  • 名称

属性 类型 描述

名称

字符串

name 是引用的服务。该服务必须存在于与 Ingress 对象相同的命名空间中。

端口

对象

ServiceBackendPort 是被引用的服务端口。

.spec.defaultBackend.service.port

描述

ServiceBackendPort 是被引用的服务端口。

类型

对象

属性 类型 描述

名称

字符串

name 是服务上端口的名称。这是与“Number”互斥的设置。

编号

整数

number 是服务上的数值端口号(例如 80)。这是与“Name”互斥的设置。

.spec.rules

描述

rules 是用于配置 Ingress 的主机规则列表。如果未指定,或没有规则匹配,则所有流量都将发送到默认后端。

类型

数组

.spec.rules[]

描述

IngressRule 表示将指定主机下的路径映射到相关后端服务的规则。传入请求首先根据主机匹配进行评估,然后路由到与匹配的 IngressRuleValue 关联的后端。

类型

对象

属性 类型 描述

主机

字符串

host 是网络主机的完全限定域名,如 RFC 3986 中所定义。请注意以下与 RFC 3986 中定义的 URI 的“host”部分的偏差:1. 不允许使用 IP 地址。目前,IngressRuleValue 只能应用于父 Ingress 的 Spec 中的 IP。2. 不考虑:分隔符,因为不允许使用端口。目前,Ingress 的端口隐式地为 http 为 :80,https 为 :443。这两者将来都可能发生变化。传入请求在 IngressRuleValue 之前与主机匹配。如果主机未指定,则 Ingress 将根据指定的 IngressRuleValue 路由所有流量。

host 可以是“精确的”,这是一个没有网络主机终止点的域名的(例如,“foo.bar.com”),也可以是“通配符”,这是一个以单个通配符标签为前缀的域名(例如,“.foo.com”)。通配符字符''必须单独出现在第一个 DNS 标签中,并且只匹配单个标签。您不能单独使用通配符标签(例如,Host == "*")。将按照以下方式将请求与 Host 字段进行匹配:1. 如果 host 是精确的,则如果 http host 标头等于 Host,则请求匹配此规则。2. 如果 host 是通配符,则如果 http host 标头等于通配符规则的后缀(移除第一个标签),则请求匹配此规则。

HTTP

对象

HTTPIngressRuleValue 是指向后端的 http 选择器列表。在示例中:http://<host>/<path>?<searchpart>;→ 后端,其中 url 的部分对应于 RFC 3986,此资源将用于匹配最后一个 '/' 之后和第一个 '?' 或 '#' 之前的全部内容。

.spec.rules[].http

描述

HTTPIngressRuleValue 是指向后端的 http 选择器列表。在示例中:http://<host>/<path>?<searchpart>;→ 后端,其中 url 的部分对应于 RFC 3986,此资源将用于匹配最后一个 '/' 之后和第一个 '?' 或 '#' 之前的全部内容。

类型

对象

必需
  • 路径

属性 类型 描述

路径

数组

paths 是将请求映射到后端的路径集合。

paths[]

对象

HTTPIngressPath 将路径与后端关联。与路径匹配的传入 url 将转发到后端。

.spec.rules[].http.paths

描述

paths 是将请求映射到后端的路径集合。

类型

数组

.spec.rules[].http.paths[]

描述

HTTPIngressPath 将路径与后端关联。与路径匹配的传入 url 将转发到后端。

类型

对象

必需
  • pathType

  • 后端

属性 类型 描述

后端

对象

IngressBackend 描述了给定服务和端口的所有端点。

路径

字符串

path 与传入请求的路径匹配。目前,它可以包含 RFC 3986 中定义的 URL 的常规“path”部分不允许的字符。路径必须以 '/' 开头,并且在使用值为“Exact”或“Prefix”的 PathType 时必须存在。

pathType

字符串

pathType 确定路径匹配的解释。PathType 可以是以下值之一:* Exact:完全匹配 URL 路径。* Prefix:基于由 '/' 分隔的 URL 路径前缀进行匹配。匹配是在逐个路径元素的基础上完成的。路径元素指的是路径中由 '/' 分隔符分隔的标签列表。如果请求路径的每个 p 都是请求路径 p 的逐个元素的前缀,则请求与路径 p 匹配。请注意,如果路径的最后一个元素是请求路径中最后一个元素的子字符串,则它不匹配(例如,/foo/bar 匹配 /foo/bar/baz,但不匹配 /foo/barbaz)。* ImplementationSpecific:路径匹配的解释取决于 IngressClass。实现可以将其视为单独的 PathType,也可以将其与 Prefix 或 Exact 路径类型相同对待。实现需要支持所有路径类型。

可能的枚举值:- "Exact" 精确匹配 URL 路径,区分大小写。 - "ImplementationSpecific" 匹配方式取决于 IngressClass。实现可以将其视为单独的 PathType,也可以将其与 Prefix 或 Exact 路径类型等同对待。 - "Prefix" 基于 URL 路径前缀(以 '/' 分隔)进行匹配。匹配区分大小写,并逐个路径元素进行。路径元素是指路径中以 '/' 分隔符分隔的标签列表。如果请求路径的每个元素都是Ingress规则路径元素的前缀,则该请求与路径 p 匹配。请注意,如果路径的最后一个元素是请求路径中最后一个元素的子字符串,则不匹配(例如,/foo/bar 匹配 /foo/bar/baz,但不匹配 /foo/barbaz)。如果 Ingress 规范中存在多个匹配路径,则优先考虑最长的匹配路径。示例:- /foo/bar 不匹配对 /foo/barbaz 的请求 - /foo/bar 匹配对 /foo/bar 和 /foo/bar/baz 的请求 - /foo 和 /foo/ 都匹配对 /foo 和 /foo/ 的请求。如果 Ingress 规范中同时存在这两个路径,则优先考虑最长的匹配路径 (/foo/)。

.spec.rules[].http.paths[].backend

描述

IngressBackend 描述了给定服务和端口的所有端点。

类型

对象

属性 类型 描述

资源

TypedLocalObjectReference

resource 是对 Ingress 对象命名空间中另一个 Kubernetes 资源的 ObjectRef。如果指定了 resource,则不得指定 service.Name 和 service.Port。这是与“Service”互斥的设置。

服务

对象

IngressServiceBackend 将 Kubernetes 服务引用为后端。

.spec.rules[].http.paths[].backend.service

描述

IngressServiceBackend 将 Kubernetes 服务引用为后端。

类型

对象

必需
  • 名称

属性 类型 描述

名称

字符串

name 是引用的服务。该服务必须存在于与 Ingress 对象相同的命名空间中。

端口

对象

ServiceBackendPort 是被引用的服务端口。

.spec.rules[].http.paths[].backend.service.port

描述

ServiceBackendPort 是被引用的服务端口。

类型

对象

属性 类型 描述

名称

字符串

name 是服务上端口的名称。这是与“Number”互斥的设置。

编号

整数

number 是服务上的数值端口号(例如 80)。这是与“Name”互斥的设置。

.spec.tls

描述

tls 表示 TLS 配置。目前 Ingress 只支持单个 TLS 端口 443。如果此列表中的多个成员指定不同的主机,则它们将根据通过 SNI TLS 扩展指定的 hostname 在同一端口上进行多路复用,前提是实现 Ingress 的 Ingress 控制器支持 SNI。

类型

数组

.spec.tls[]

描述

IngressTLS 描述与 Ingress 关联的传输层安全。

类型

对象

属性 类型 描述

hosts

数组 (字符串)

hosts 是 TLS 证书中包含的主机列表。此列表中的值必须与 tlsSecret 中使用的名称匹配。如果未指定,则默认为实现此 Ingress 的负载均衡器控制器的通配符主机设置。

secretName

字符串

secretName 是用于在 443 端口终止 TLS 流量的密钥的名称。此字段是可选的,允许仅基于 SNI 主机名进行 TLS 路由。如果侦听器中的 SNI 主机与 IngressRule 使用的“Host”标头字段冲突,则使用 SNI 主机进行终止,并使用“Host”标头的值进行路由。

.status

描述

IngressStatus 描述了 Ingress 的当前状态。

类型

对象

属性 类型 描述

loadBalancer

对象

IngressLoadBalancerStatus 表示负载均衡器的状态。

.status.loadBalancer

描述

IngressLoadBalancerStatus 表示负载均衡器的状态。

类型

对象

属性 类型 描述

ingress

数组

ingress 是一个包含负载均衡器入口点的列表。

ingress[]

对象

IngressLoadBalancerIngress 表示负载均衡器入口点的状态。

.status.loadBalancer.ingress

描述

ingress 是一个包含负载均衡器入口点的列表。

类型

数组

.status.loadBalancer.ingress[]

描述

IngressLoadBalancerIngress 表示负载均衡器入口点的状态。

类型

对象

属性 类型 描述

hostname

字符串

对于基于 DNS 的负载均衡器入口点,将设置 hostname。

ip

字符串

对于基于 IP 的负载均衡器入口点,将设置 ip。

ports

数组

ports 提供有关此 LoadBalancer 公开的端口的信息。

ports[]

对象

IngressPortStatus 表示服务端口的错误状况。

.status.loadBalancer.ingress[].ports

描述

ports 提供有关此 LoadBalancer 公开的端口的信息。

类型

数组

.status.loadBalancer.ingress[].ports[]

描述

IngressPortStatus 表示服务端口的错误状况。

类型

对象

必需
  • 端口

  • protocol

属性 类型 描述

error

字符串

error 用于记录服务端口的问题。错误的格式应符合以下规则:- 内置错误值应在此文件中指定,并应使用驼峰命名法 - 云提供商特定的错误值必须具有符合 foo.example.com/CamelCase 格式的名称。

端口

整数

port 是入口端口的端口号。

protocol

字符串

protocol 是入口端口的协议。支持的值为:“TCP”、“UDP”、“SCTP”。

可能的枚举值:- "SCTP" 是 SCTP 协议。 - "TCP" 是 TCP 协议。 - "UDP" 是 UDP 协议。

API 端点

提供以下 API 端点

  • /apis/networking.k8s.io/v1/ingresses

    • GET:列出或监视 Ingress 类型对象

  • /apis/networking.k8s.io/v1/watch/ingresses

    • GET:监视 Ingress 列表的单个更改。已弃用:改用列表操作中的“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 列表的单个更改。已弃用:改用列表操作中的“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 类型对象的更改。已弃用:改用列表操作中的“watch”参数,并使用“fieldSelector”参数过滤为单个项目。

  • /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status

    • GET:读取指定 Ingress 的状态

    • PATCH:部分更新指定 Ingress 的状态

    • PUT:替换指定 Ingress 的状态

/apis/networking.k8s.io/v1/ingresses

HTTP 方法

GET

描述

列出或监视 Ingress 类型对象

表 1. HTTP 响应
HTTP 代码 响应体

200 - OK

IngressList 模式

401 - 未授权

/apis/networking.k8s.io/v1/watch/ingresses

HTTP 方法

GET

描述

监视 Ingress 列表的单个更改。已弃用:改用列表操作中的“watch”参数。

表 2. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权

/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses

HTTP 方法

DELETE

描述

删除 Ingress 集合

表 3. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 4. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出或监视 Ingress 类型对象

表 5. HTTP 响应
HTTP 代码 响应体

200 - OK

IngressList 模式

401 - 未授权

HTTP 方法

POST

描述

创建 Ingress

表 6. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

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

表 7. 请求体参数
参数 类型 描述

body

Ingress 模式

表 8. HTTP 响应
HTTP 代码 响应体

200 - OK

Ingress 模式

201 - 已创建

Ingress 模式

202 - 已接受

Ingress 模式

401 - 未授权

/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses

HTTP 方法

GET

描述

监视 Ingress 列表的单个更改。已弃用:改用列表操作中的“watch”参数。

表 9. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权

/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}

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

名称

字符串

Ingress 的名称

HTTP 方法

DELETE

描述

删除 Ingress

表 11. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 12. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 Ingress

表 13. HTTP 响应
HTTP 代码 响应体

200 - OK

Ingress 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 Ingress

表 14. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

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

表 15. HTTP 响应
HTTP 代码 响应体

200 - OK

Ingress 模式

201 - 已创建

Ingress 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 Ingress

表 16. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

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

表 17. 请求体参数
参数 类型 描述

body

Ingress 模式

表 18. HTTP 响应
HTTP 代码 响应体

200 - OK

Ingress 模式

201 - 已创建

Ingress 模式

401 - 未授权

/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses/{name}

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

名称

字符串

Ingress 的名称

HTTP 方法

GET

描述

监听 Ingress 对象类型的更改。已弃用:请改用列表操作中的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

表 20. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权

/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status

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

名称

字符串

Ingress 的名称

HTTP 方法

GET

描述

读取指定的 Ingress 的状态

表 22. HTTP 响应
HTTP 代码 响应体

200 - OK

Ingress 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 Ingress 的状态

表 23. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

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

表 24. HTTP 响应
HTTP 代码 响应体

200 - OK

Ingress 模式

201 - 已创建

Ingress 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 Ingress 的状态

表 25. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

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

表 26. 请求体参数
参数 类型 描述

body

Ingress 模式

表 27. HTTP 响应
HTTP 代码 响应体

200 - OK

Ingress 模式

201 - 已创建

Ingress 模式

401 - 未授权