第 11 章 Ingress [networking.k8s.io/v1]


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

11.1. 规格

属性类型描述

apiVersion

字符串

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

kind

字符串

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

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

spec

对象

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

status

对象

IngressStatus 描述 Ingress 的当前状态。

11.1.1. .spec

描述
IngressSpec 描述了您希望存在的 Ingress 用户。
类型
object
属性类型描述

defaultBackend

对象

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

ingressClassName

string

ingressClassName 是 IngressClass 集群资源的名称。Ingress 控制器实现使用此字段通过传输连接(controller IngressClass Ingress 资源)知道它们是否应提供此 Ingress 资源。虽然 kubernetes.io/ingress.class 注解(simple constant name)永远不会被正式定义,但 Ingress 控制器广泛支持 Ingress 控制器和 Ingress 资源之间的直接绑定。新创建的 Ingress 资源应该首选使用字段。但是,即使注解被正式弃用,但出于向后兼容的原因,入口控制器仍应遵循该注解(如果存在)。

rules

数组

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

rules[]

对象

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

tls

数组

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

tls[]

object

IngressTLS 描述了与入口关联的传输层安全性。

11.1.2. .spec.defaultBackend

描述
IngressBackend 描述给定服务和端口的所有端点。
类型
object
属性类型描述

resource

TypedLocalObjectReference

resource 是 Ingress 对象命名空间中的另一个 Kubernetes 资源的 ObjectRef。如果指定了 resource,则无法指定 service.Name 和 service.Port。这是使用 "Service" 相互排斥的设置。

service

对象

IngressServiceBackend 引用 Kubernetes Service 作为后端。

11.1.3. .spec.defaultBackend.service

描述
IngressServiceBackend 引用 Kubernetes Service 作为后端。
类型
object
必填
  • name
属性类型描述

name

string

name 是引用的服务。服务必须与 Ingress 对象位于同一个命名空间中。

port

对象

ServiceBackendPort 是被引用的服务端口。

11.1.4. .spec.defaultBackend.service.port

描述
ServiceBackendPort 是被引用的服务端口。
类型
object
属性类型描述

name

string

name 是服务上的端口的名称。这是一个带有 "Number" 的相互排斥的设置。

number

整数

number 是服务上的数字端口号(如 80)。这是使用 "Name" 相互排斥的设置。

11.1.5. .spec.rules

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

11.1.6. .spec.rules[]

描述
IngressRule 代表将指定主机下的路径映射到相关后端服务的规则。首先为主机匹配评估传入的请求,然后路由到与匹配的 IngressRuleValue 关联的后端。
类型
object
属性类型描述

主机

string

host 是网络主机的完全限定域名,如 RFC 3986 定义。请注意 RFC 3986: 1 中定义的 URI 的"主机"部分的以下偏差:不允许使用 IP。目前,IngressRuleValue 仅适用于父 Ingress Spec 中的 IP。2.: 分隔符不会被遵守,因为不允许使用端口。目前,Ingress 的端口被隐式为 http:80,https 为 :443。这两个选项可能会在以后有所变化。传入请求在 IngressRuleValue 之前与主机匹配。如果未指定主机,Ingress 会根据指定的 IngressRuleValue 路由所有流量。

主机可以是"precise",它是一个没有终止网络主机的域名(如 "foo.bar.com")或"wildcard",它是一个前缀为单个通配符标签的域名(如 ".foo.com")。通配符字符 '' 必须作为第一个 DNS 标签显示,且只匹配单个标签。您不能自行有一个通配符标签(如 Host == "*")。请求将按照以下方式与 Host 字段匹配:1。如果 host 是精确的,如果 http 主机标头等于 Host,则请求与此规则匹配。2.如果 host 是通配符,则请求将与此规则匹配,如果 http 主机标头等于通配符规则的后缀(删除第一个标签)。

http

对象

HTTPIngressRuleValue 是指向后端的 http 选择器列表。在示例中: http://<host>/<path>?<searchpart > backend where of the url of the RFC 3986,此资源将用于匹配最后 '/' 以及第一个 '?' 或 '这个问题' 后的所有内容。

11.1.7. .spec.rules[].http

描述
HTTPIngressRuleValue 是指向后端的 http 选择器列表。在示例中: http://<host>/<path>?<searchpart > backend where of the url of the RFC 3986,此资源将用于匹配最后 '/' 以及第一个 '?' 或 '这个问题' 后的所有内容。
类型
object
必填
  • 路径
属性类型描述

路径

数组

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

paths[]

对象

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

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

描述
paths 是将请求映射到后端的路径集合。
类型
array

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

描述
HTTPIngressPath 将路径与后端相关联。与路径匹配的传入 URL 转发到后端。
类型
object
必填
  • pathType
  • 后端
属性类型描述

后端

对象

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

path

string

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

pathType

string

pathType 决定路径匹配的解释。pathType 可以是以下值之一:* Exact: 完全匹配 URL 路径。* prefix: 根据 URL 路径前缀匹配,由 '/' 分割。匹配按元素基于路径元素进行。path 元素引用是路径中的标签列表,由 '/' 分隔符分割。如果每个 p 是请求路径的 p 的元素前缀,则请求是 path p 的匹配项。请注意,如果路径的最后一个元素是请求路径中最后一个元素的子字符串,则不是匹配项(例如 /foo/bar/baz 匹配 /foo/bar/baz),但不匹配 /foo/barbaz。* ImplementationSpecific:检查路径匹配最多为 IngressClass。实现可以将其视为单独的 PathType,或者将其与 Prefix 或 Exact 路径类型相同。需要实施才能支持所有路径类型。

可能枚举值:- "Exact" 完全匹配 URL 路径,且带有 case sensitivity。- "ImplementationSpecific" 匹配最多为 IngressClass。实现可以把它视为单独的 PathType,或者将其与 Prefix 或 Exact 路径类型相同。- "Prefix" 根据 '/' 分割的 URL 路径前缀匹配。匹配区分大小写,并按元素在 path 元素上完成。path 元素引用由 '/' 分隔符分割路径中的标签列表。如果每个 p 是请求路径的 p 的元素前缀,则请求是 path p 的匹配项。请注意,如果路径的最后一个元素是请求路径中最后一个元素的子字符串,则不是匹配项(例如 /foo/bar/baz 匹配 /foo/bar/baz),但不匹配 /foo/barbaz。如果 Ingress spec 中存在多个匹配路径,则优先匹配路径最长。示例: - /foo/bar不匹配对 /foo/barbaz - /foo/bar 匹配请求到 /foo/bar 和 /foo/bar/baz - /foo 和 /foo/ 的请求与 /foo 和 /foo/ 的匹配请求。如果 Ingress spec 中有两个路径,则优先级最长匹配的路径(/foo/)。

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

描述
IngressBackend 描述给定服务和端口的所有端点。
类型
object
属性类型描述

resource

TypedLocalObjectReference

resource 是 Ingress 对象命名空间中的另一个 Kubernetes 资源的 ObjectRef。如果指定了 resource,则无法指定 service.Name 和 service.Port。这是使用 "Service" 相互排斥的设置。

service

对象

IngressServiceBackend 引用 Kubernetes Service 作为后端。

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

描述
IngressServiceBackend 引用 Kubernetes Service 作为后端。
类型
object
必填
  • name
属性类型描述

name

string

name 是引用的服务。服务必须与 Ingress 对象位于同一个命名空间中。

port

对象

ServiceBackendPort 是被引用的服务端口。

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

描述
ServiceBackendPort 是被引用的服务端口。
类型
object
属性类型描述

name

string

name 是服务上的端口的名称。这是一个带有 "Number" 的相互排斥的设置。

number

整数

number 是服务上的数字端口号(如 80)。这是使用 "Name" 相互排斥的设置。

11.1.13. .spec.tls

描述
TLS 代表 TLS 配置。目前,Ingress 只支持单个 TLS 端口 443。如果此列表的多个成员指定了不同的主机,则它们将根据通过 SNI TLS 扩展指定的主机名在同一端口上进行多路,如果入口控制器满足 ingress 支持 SNI。
类型
array

11.1.14. .spec.tls[]

描述
IngressTLS 描述了与入口关联的传输层安全性。
类型
object
属性类型描述

主机

数组(字符串)

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

secretName

string

secretName 是用于在端口 443 上终止 TLS 流量的 secret 名称。字段保留可选,以只允许仅基于 SNI 主机名的 TLS 路由。如果监听器中的 SNI 主机与 IngressRule 使用的 "Host" 标头字段冲突,则 SNI 主机用于终止,并将 "Host" 标头的值用于路由。

11.1.15. .status

描述
IngressStatus 描述 Ingress 的当前状态。
类型
object
属性类型描述

loadBalancer

object

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

11.1.16. .status.loadBalancer

描述
IngressLoadBalancerStatus 代表负载均衡器的状态。
类型
object
属性类型描述

ingress

数组

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

ingress[]

object

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

11.1.17. .status.loadBalancer.ingress

描述
Ingress 是一个包含负载均衡器的入口点的列表。
类型
array

11.1.18. .status.loadBalancer.ingress[]

描述
IngressLoadBalancerIngress 代表负载均衡器入口点的状态。
类型
object
属性类型描述

hostname

string

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

ip

string

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

ports

数组

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

ports[]

object

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

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

描述
端口提供有关此 LoadBalancer 公开的端口的信息。
类型
array

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

描述
IngressPortStatus 代表服务端口的错误条件
类型
object
必填
  • port
  • protocol
属性类型描述

错误

string

错误是记录服务端口的问题。错误的格式应遵循以下规则: - 内置错误值应该在此文件中指定,而那些应该使用 CamelCase 名称 - 云供应商特定错误值必须具有符合 foo.example.com/CamelCase 格式的名称。

port

整数

port 是入口端口的端口号。

protocol

string

protocol 是入口端口的协议。支持的值有:"TCP", "UDP", "SCTP"

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.