Ingress

Ingress 是一个规则集合,允许传入连接到达后端定义的端点。

apiVersion: networking.k8s.io/v1

import "k8s.io/api/networking/v1"

Ingress

Ingress 是一个规则集合,允许传入连接到达后端定义的端点。Ingress 可以配置为为服务提供外部可访问的 URL、负载均衡流量、终止 SSL、提供基于名称的虚拟主机等。


IngressSpec

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


  • defaultBackend (IngressBackend)

    defaultBackend 是应该处理与任何规则不匹配的请求的后端。如果未指定规则,则必须指定 DefaultBackend。如果未设置 DefaultBackend,则处理与任何规则不匹配的请求将由 Ingress 控制器决定。

  • ingressClassName (string)

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

  • rules ([]IngressRule)

    原子:在合并期间将被替换

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

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

    • rules.host (string)

      host 是网络主机的完全限定域名,如 RFC 3986 所定义。请注意以下与 RFC 3986 中定义的 URI 的“主机”部分的偏差: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,则请求匹配此规则。2. 如果 host 是通配符,则如果 http 主机标头等于通配符规则的后缀(删除第一个标签),则请求匹配此规则。

    • rules.http (HTTPIngressRuleValue)

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

      • rules.http.paths ([]HTTPIngressPath), required

        原子:在合并期间将被替换

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

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

        • rules.http.paths.backend (IngressBackend), required

          backend 定义了将流量转发到的引用服务端点。

        • rules.http.paths.pathType (string), required

          pathType 确定路径匹配的解释。PathType 可以是以下值之一:* Exact:完全匹配 URL 路径。* Prefix:根据 URL 路径前缀(以 '/' 分隔)进行匹配。匹配是在路径元素的基础上逐个元素进行的。路径元素是指以 '/' 分隔符分隔的路径中的标签列表。如果每个 p 都是请求路径的 p 的元素级前缀,则请求与路径 p 匹配。请注意,如果路径的最后一个元素是请求路径中最后一个元素的子字符串,则它不匹配(例如,/foo/bar 匹配 /foo/bar/baz,但不匹配 /foo/barbaz)。

          • ImplementationSpecific:路径匹配的解释取决于 IngressClass。实现可以将此视为单独的 PathType,也可以将其与 Prefix 或 Exact 路径类型相同对待。实现需要支持所有路径类型。
        • rules.http.paths.path (string)

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

  • tls ([]IngressTLS)

    原子:在合并期间将被替换

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

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

    • tls.hosts ([]string)

      原子:在合并期间将被替换

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

    • tls.secretName (string)

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

IngressBackend

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


  • resource (TypedLocalObjectReference)

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

  • service (IngressServiceBackend)

    service 将服务引用为后端。这是与“Resource”互斥的设置。

    IngressServiceBackend 将 Kubernetes 服务引用为后端。

    • service.name (string), required

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

    • service.port (ServiceBackendPort)

      port 是引用的服务的端口。IngressServiceBackend 需要端口名称或端口号。

      ServiceBackendPort 是引用的服务端口。

      • service.port.name (string)

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

      • service.port.number (int32)

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

IngressStatus

IngressStatus 描述 Ingress 的当前状态。


  • loadBalancer (IngressLoadBalancerStatus)

    loadBalancer 包含负载均衡器的当前状态。

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

    • loadBalancer.ingress ([]IngressLoadBalancerIngress)

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

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

      • loadBalancer.ingress.hostname (string)

        hostname 设置为基于 DNS 的负载均衡器 ingress 点。

      • loadBalancer.ingress.ip (string)

        ip 设置为基于 IP 的负载均衡器 ingress 点。

      • loadBalancer.ingress.ports ([]IngressPortStatus)

        原子:在合并期间将被替换

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

        IngressPortStatus 表示服务端口的错误条件

        • loadBalancer.ingress.ports.port (int32), required

          port 是 ingress 端口的端口号。

        • loadBalancer.ingress.ports.protocol (string), required

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

        • loadBalancer.ingress.ports.error (string)

          error 用于记录服务端口的问题。错误的格式应符合以下规则:- 内置错误值应在此文件中指定,并且应使用 CamelCase 名称

          • 特定于云提供商的错误值必须具有符合格式 foo.example.com/CamelCase 的名称。

IngressList

IngressList 是 Ingress 的集合。


操作


get 读取指定的 Ingress

HTTP 请求

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

参数

  • name (在路径中): 字符串,必需

    Ingress 的名称

  • namespace (在路径中): 字符串,必需

    命名空间

  • pretty (在查询中): 字符串

    漂亮

响应

200 (Ingress): 好的

401: 未经授权

get 读取指定 Ingress 的状态

HTTP 请求

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

参数

  • name (在路径中): 字符串,必需

    Ingress 的名称

  • namespace (在路径中): 字符串,必需

    命名空间

  • pretty (在查询中): 字符串

    漂亮

响应

200 (Ingress): 好的

401: 未经授权

list 列出或观察 Ingress 类型的对象

HTTP 请求

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

参数

响应

200 (IngressList): 好的

401: 未经授权

list 列出或观察 Ingress 类型的对象

HTTP 请求

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

参数

响应

200 (IngressList): 好的

401: 未经授权

create 创建一个 Ingress

HTTP 请求

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

参数

响应

200 (Ingress): 好的

201 (Ingress): 已创建

202 (Ingress): 已接受

401: 未经授权

update 替换指定的 Ingress

HTTP 请求

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

参数

  • name (在路径中): 字符串,必需

    Ingress 的名称

  • namespace (在路径中): 字符串,必需

    命名空间

  • body: Ingress, 必需

  • dryRun (在查询中): 字符串

    dryRun

  • fieldManager (在查询中): 字符串

    fieldManager

  • fieldValidation (在查询中): 字符串

    fieldValidation

  • pretty (在查询中): 字符串

    漂亮

响应

200 (Ingress): 好的

201 (Ingress): 已创建

401: 未经授权

update 替换指定 Ingress 的状态

HTTP 请求

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

参数

  • name (在路径中): 字符串,必需

    Ingress 的名称

  • namespace (在路径中): 字符串,必需

    命名空间

  • body: Ingress, 必需

  • dryRun (在查询中): 字符串

    dryRun

  • fieldManager (在查询中): 字符串

    fieldManager

  • fieldValidation (在查询中): 字符串

    fieldValidation

  • pretty (在查询中): 字符串

    漂亮

响应

200 (Ingress): 好的

201 (Ingress): 已创建

401: 未经授权

patch 部分更新指定的 Ingress

HTTP 请求

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

参数

  • name (在路径中): 字符串,必需

    Ingress 的名称

  • namespace (在路径中): 字符串,必需

    命名空间

  • body: Patch, 必需

  • dryRun (在查询中): 字符串

    dryRun

  • fieldManager (在查询中): 字符串

    fieldManager

  • fieldValidation (在查询中): 字符串

    fieldValidation

  • force (在查询中): 布尔值

    强制

  • pretty (在查询中): 字符串

    漂亮

响应

200 (Ingress): 好的

201 (Ingress): 已创建

401: 未经授权

patch 部分更新指定 Ingress 的状态

HTTP 请求

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

参数

  • name (在路径中): 字符串,必需

    Ingress 的名称

  • namespace (在路径中): 字符串,必需

    命名空间

  • body: Patch, 必需

  • dryRun (在查询中): 字符串

    dryRun

  • fieldManager (在查询中): 字符串

    fieldManager

  • fieldValidation (在查询中): 字符串

    fieldValidation

  • force (在查询中): 布尔值

    强制

  • pretty (在查询中): 字符串

    漂亮

响应

200 (Ingress): 好的

201 (Ingress): 已创建

401: 未经授权

delete 删除一个 Ingress

HTTP 请求

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

参数

响应

200 (Status): 好的

202 (Status): 已接受

401: 未经授权

deletecollection 删除 Ingress 集合

HTTP 请求

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

参数

响应

200 (Status): 好的

401: 未经授权

此页面是自动生成的。

如果您打算报告此页面的问题,请在您的问题描述中提及该页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。

上次修改时间:2023 年 4 月 3 日上午 8:22 PST:API Ref 多页 v1.27 (7b39e9a9ec)