Ingress
apiVersion: networking.k8s.io/v1
import "k8s.io/api/networking/v1"
Ingress
Ingress 是一个规则集合,允许传入连接到达后端定义的端点。Ingress 可以配置为为服务提供外部可访问的 URL、负载均衡流量、终止 SSL、提供基于名称的虚拟主机等。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata (ObjectMeta)
标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (IngressSpec)
spec 是 Ingress 的期望状态。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
status (IngressStatus)
status 是 Ingress 的当前状态。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
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 需要端口名称或端口号。
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 公开的端口的信息。
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 的集合。
项目 ([]Ingress), 必需
items 是 Ingress 的列表。
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 (ListMeta)
标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
操作
get
读取指定的 Ingress
HTTP 请求
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}
参数
响应
200 (Ingress): 好的
401: 未经授权
get
读取指定 Ingress 的状态
HTTP 请求
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status
参数
响应
200 (Ingress): 好的
401: 未经授权
list
列出或观察 Ingress 类型的对象
HTTP 请求
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses
参数
namespace (在路径中): 字符串,必需
allowWatchBookmarks (在查询中): 布尔值
continue (在查询中): 字符串
fieldSelector (在查询中): 字符串
labelSelector (在查询中): 字符串
limit (在查询中): 整数
pretty (在查询中): 字符串
resourceVersion (在查询中): 字符串
resourceVersionMatch (在查询中): 字符串
sendInitialEvents (在查询中): 布尔值
timeoutSeconds (在查询中): 整数
watch (在查询中): 布尔值
响应
200 (IngressList): 好的
401: 未经授权
list
列出或观察 Ingress 类型的对象
HTTP 请求
GET /apis/networking.k8s.io/v1/ingresses
参数
allowWatchBookmarks (在查询中): 布尔值
continue (在查询中): 字符串
fieldSelector (在查询中): 字符串
labelSelector (在查询中): 字符串
limit (在查询中): 整数
pretty (在查询中): 字符串
resourceVersion (在查询中): 字符串
resourceVersionMatch (在查询中): 字符串
sendInitialEvents (在查询中): 布尔值
timeoutSeconds (在查询中): 整数
watch (在查询中): 布尔值
响应
200 (IngressList): 好的
401: 未经授权
create
创建一个 Ingress
HTTP 请求
POST /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses
参数
namespace (在路径中): 字符串,必需
body: Ingress, 必需
dryRun (在查询中): 字符串
fieldManager (在查询中): 字符串
fieldValidation (在查询中): 字符串
pretty (在查询中): 字符串
响应
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 (在查询中): 字符串
fieldManager (在查询中): 字符串
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 (在查询中): 字符串
fieldManager (在查询中): 字符串
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 (在查询中): 字符串
fieldManager (在查询中): 字符串
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 (在查询中): 字符串
fieldManager (在查询中): 字符串
fieldValidation (在查询中): 字符串
force (在查询中): 布尔值
pretty (在查询中): 字符串
响应
200 (Ingress): 好的
201 (Ingress): 已创建
401: 未经授权
delete
删除一个 Ingress
HTTP 请求
DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}
参数
name (在路径中): 字符串,必需
Ingress 的名称
namespace (在路径中): 字符串,必需
body: DeleteOptions
dryRun (在查询中): 字符串
gracePeriodSeconds (在查询中): 整数
pretty (在查询中): 字符串
propagationPolicy (在查询中): 字符串
响应
200 (Status): 好的
202 (Status): 已接受
401: 未经授权
deletecollection
删除 Ingress 集合
HTTP 请求
DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses
参数
namespace (在路径中): 字符串,必需
body: DeleteOptions
continue (在查询中): 字符串
dryRun (在查询中): 字符串
fieldSelector (在查询中): 字符串
gracePeriodSeconds (在查询中): 整数
labelSelector (在查询中): 字符串
limit (在查询中): 整数
pretty (在查询中): 字符串
propagationPolicy (在查询中): 字符串
resourceVersion (在查询中): 字符串
resourceVersionMatch (在查询中): 字符串
sendInitialEvents (在查询中): 布尔值
timeoutSeconds (在查询中): 整数
响应
200 (Status): 好的
401: 未经授权
此页面是自动生成的。
如果您打算报告此页面的问题,请在您的问题描述中提及该页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。