入口

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

apiVersion: networking.k8s.io/v1

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

入口

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)

    Atomic:将在合并期间被替换

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

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

    • rules.host (string)

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

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

    • rules.http (HTTPIngressRuleValue)

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

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

        Atomic:将在合并期间被替换

        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 的“path”部分不允许的字符。路径必须以“/”开头,并且在使用 PathType 为“Exact”或“Prefix”的值时必须存在。

  • tls ([]IngressTLS)

    Atomic:将在合并期间被替换

    tls 代表 TLS 配置。目前 Ingress 仅支持单个 TLS 端口 443。如果此列表的多个成员指定不同的主机,则它们将在同一个端口上进行多路复用,具体取决于通过 SNI TLS 扩展指定的 hostname,如果满足 Ingress 的 Ingress 控制器支持 SNI。

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

    • tls.hosts ([]string)

      Atomic:将在合并期间被替换

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

    • tls.secretName (string)

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

IngressBackend

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


  • resource (TypedLocalObjectReference)

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

  • service (IngressServiceBackend)

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

    IngressServiceBackend 将 Kubernetes Service 引用为后端。

    • 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 是一个包含负载均衡器入口点的列表。

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

      • loadBalancer.ingress.hostname (string)

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

      • loadBalancer.ingress.ip (string)

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

      • loadBalancer.ingress.ports ([]IngressPortStatus)

        Atomic:将在合并期间被替换

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

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

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

          port 是入口端口的端口号。

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

          protocol 是入口端口的协议。支持的值为:“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 (在查询中): 字符串

    pretty

响应

200 (Ingress): 正常

401: 未经授权

get 读取指定 Ingress 的状态

HTTP 请求

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

参数

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

    Ingress 的名称

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

    命名空间

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

    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 (在查询中): 字符串

    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 (在查询中): 字符串

    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 (在查询中): 布尔值

    force

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

    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 (在查询中): 布尔值

    force

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

    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)