第 11 章 Ingress [networking.k8s.io/v1]
- 描述
- Ingress 是允许入站连接访问后端定义的端点的规则集合。可将 Ingress 配置为向外部可访问的 URL 提供服务、负载均衡流量、终止 SSL、提供基于名称的虚拟主机等。
- 类型
-
对象
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 | |
|
| IngressSpec 描述了您希望存在的 Ingress 用户。 |
|
| IngressStatus 描述 Ingress 的当前状态。 |
11.1.1. .spec
- 描述
- IngressSpec 描述了您希望存在的 Ingress 用户。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| IngressBackend 描述给定服务和端口的所有端点。 |
|
|
ingressClassName 是 IngressClass 集群资源的名称。Ingress 控制器实现使用此字段通过传输连接(controller |
|
| rules 是用于配置 Ingress 的主机规则列表。如果未指定,或者没有规则匹配,则所有流量都会发送到默认后端。 |
|
| IngressRule 代表将指定主机下的路径映射到相关后端服务的规则。首先为主机匹配评估传入的请求,然后路由到与匹配的 IngressRuleValue 关联的后端。 |
|
| TLS 代表 TLS 配置。目前,Ingress 只支持单个 TLS 端口 443。如果此列表的多个成员指定了不同的主机,则它们将根据通过 SNI TLS 扩展指定的主机名在同一端口上进行多路,如果入口控制器满足 ingress 支持 SNI。 |
|
| IngressTLS 描述了与入口关联的传输层安全性。 |
11.1.2. .spec.defaultBackend
- 描述
- IngressBackend 描述给定服务和端口的所有端点。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| resource 是 Ingress 对象命名空间中的另一个 Kubernetes 资源的 ObjectRef。如果指定了 resource,则无法指定 service.Name 和 service.Port。这是使用 "Service" 相互排斥的设置。 | |
|
| IngressServiceBackend 引用 Kubernetes Service 作为后端。 |
11.1.3. .spec.defaultBackend.service
- 描述
- IngressServiceBackend 引用 Kubernetes Service 作为后端。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是引用的服务。服务必须与 Ingress 对象位于同一个命名空间中。 |
|
| ServiceBackendPort 是被引用的服务端口。 |
11.1.4. .spec.defaultBackend.service.port
- 描述
- ServiceBackendPort 是被引用的服务端口。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| name 是服务上的端口的名称。这是一个带有 "Number" 的相互排斥的设置。 |
|
| number 是服务上的数字端口号(如 80)。这是使用 "Name" 相互排斥的设置。 |
11.1.5. .spec.rules
- 描述
- rules 是用于配置 Ingress 的主机规则列表。如果未指定,或者没有规则匹配,则所有流量都会发送到默认后端。
- 类型
-
array
11.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 > |
11.1.7. .spec.rules[].http
- 描述
-
HTTPIngressRuleValue 是指向后端的 http 选择器列表。在示例中: http://<host>/<path>?<searchpart >
backend where of the url of the RFC 3986,此资源将用于匹配最后 '/' 以及第一个 '?' 或 '这个问题' 后的所有内容。 - 类型
-
object
- 必填
-
路径
-
属性 | 类型 | 描述 |
---|---|---|
|
| 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 与传入请求的路径匹配。目前,它可以包含不允许来自 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 路径类型相同。需要实施才能支持所有路径类型。
可能枚举值:- |
11.1.10. .spec.rules[].http.paths[].backend
- 描述
- IngressBackend 描述给定服务和端口的所有端点。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| resource 是 Ingress 对象命名空间中的另一个 Kubernetes 资源的 ObjectRef。如果指定了 resource,则无法指定 service.Name 和 service.Port。这是使用 "Service" 相互排斥的设置。 | |
|
| IngressServiceBackend 引用 Kubernetes Service 作为后端。 |
11.1.11. .spec.rules[].http.paths[].backend.service
- 描述
- IngressServiceBackend 引用 Kubernetes Service 作为后端。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是引用的服务。服务必须与 Ingress 对象位于同一个命名空间中。 |
|
| ServiceBackendPort 是被引用的服务端口。 |
11.1.12. .spec.rules[].http.paths[].backend.service.port
- 描述
- ServiceBackendPort 是被引用的服务端口。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| name 是服务上的端口的名称。这是一个带有 "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 是用于在端口 443 上终止 TLS 流量的 secret 名称。字段保留可选,以只允许仅基于 SNI 主机名的 TLS 路由。如果监听器中的 SNI 主机与 IngressRule 使用的 "Host" 标头字段冲突,则 SNI 主机用于终止,并将 "Host" 标头的值用于路由。 |
11.1.15. .status
- 描述
- IngressStatus 描述 Ingress 的当前状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| IngressLoadBalancerStatus 代表负载均衡器的状态。 |
11.1.16. .status.loadBalancer
- 描述
- IngressLoadBalancerStatus 代表负载均衡器的状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| Ingress 是一个包含负载均衡器的入口点的列表。 |
|
| IngressLoadBalancerIngress 代表负载均衡器入口点的状态。 |
11.1.17. .status.loadBalancer.ingress
- 描述
- Ingress 是一个包含负载均衡器的入口点的列表。
- 类型
-
array
11.1.18. .status.loadBalancer.ingress[]
- 描述
- IngressLoadBalancerIngress 代表负载均衡器入口点的状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 为基于 DNS 的负载均衡器入口点设置 hostname。 |
|
| 为基于 IP 的负载均衡器入口点设置了 IP。 |
|
| 端口提供有关此 LoadBalancer 公开的端口的信息。 |
|
| IngressPortStatus 代表服务端口的错误条件 |
11.1.19. .status.loadBalancer.ingress[].ports
- 描述
- 端口提供有关此 LoadBalancer 公开的端口的信息。
- 类型
-
array
11.1.20. .status.loadBalancer.ingress[].ports[]
- 描述
- IngressPortStatus 代表服务端口的错误条件
- 类型
-
object
- 必填
-
port
-
protocol
-
属性 | 类型 | 描述 |
---|---|---|
|
| 错误是记录服务端口的问题。错误的格式应遵循以下规则: - 内置错误值应该在此文件中指定,而那些应该使用 CamelCase 名称 - 云供应商特定错误值必须具有符合 foo.example.com/CamelCase 格式的名称。 |
|
| port 是入口端口的端口号。 |
|
| protocol 是入口端口的协议。支持的值有:"TCP", "UDP", "SCTP"
可能枚举值: - |