Ingress
apiVersion: networking.k8s.io/v1
import "k8s.io/api/networking/v1"
Ingress
Ingress 是一组规则的集合,它允许入站连接到达由后端定义的端点。Ingress 可以配置为给 Service 提供外部可访问的 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 是用于处理不匹配任何规则的请求的后端。如果未指定 Rules,则必须指定 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 表示将指定主机下的路径映射到相关后端 Service 的规则。首先对入站请求进行主机匹配评估,然后路由到与匹配的 IngressRuleValue 关联的后端。
rules.host (string)
host 是网络主机的完全限定域名,定义见 RFC 3986。请注意与 RFC 3986 中定义的 URI 的“host”部分的一些不同之处: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 头部等于 Host 时,请求匹配此规则。2. 如果 host 是通配符,则当 http host 头部等于通配符规则的后缀(移除第一个标签)时,请求匹配此规则。
rules.http (HTTPIngressRuleValue)
HTTPIngressRuleValue 是指向后端的 http 选择器列表。在示例 http://
/ ? -> backend 中,URL 的各部分对应 RFC 3986,此资源将用于匹配最后一个 '/' 之后和第一个 '?' 或 '#' 之前的所有内容。 rules.http.paths ([]HTTPIngressPath), required
原子性:将在合并期间被替换
paths 是一组路径集合,将请求映射到后端。
HTTPIngressPath 将路径与后端关联。匹配该路径的入站 URL 将被转发到后端。
rules.http.paths.backend (IngressBackend), required
backend 定义了引用的 Service 端点,流量将转发到该端点。
rules.http.paths.pathType (string), required
pathType 决定了路径匹配的解释方式。PathType 可以是以下值之一:* Exact:精确匹配 URL 路径。* Prefix:基于按 '/' 分割的 URL 路径前缀进行匹配。匹配是基于路径元素的逐个匹配。路径元素是指路径中按 '/' 分隔的标签列表。如果请求路径的每个路径元素都是给定路径 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)
原子性:将在合并期间被替换
tls 表示 TLS 配置。目前 Ingress 只支持一个 TLS 端口,即 443。如果此列表中的多个成员指定了不同的主机,它们将根据 SNI TLS 扩展指定的主机名在同一个端口上进行多路复用,前提是实现该 Ingress 的 Ingress 控制器支持 SNI。
IngressTLS 描述了与 Ingress 关联的传输层安全性。
tls.hosts ([]string)
原子性:将在合并期间被替换
hosts 是包含在 TLS 证书中的主机列表。此列表中的值必须与 tlsSecret 中使用的名称匹配。如果未指定,则默认为实现此 Ingress 的负载均衡器控制器的通配符主机设置。
tls.secretName (string)
secretName 是用于终止端口 443 上的 TLS 流量的 Secret 的名称。此字段是可选的,以便仅基于 SNI 主机名进行 TLS 路由。如果在监听器中的 SNI 主机与 IngressRule 使用的 "Host" 头部字段冲突,则使用 SNI 主机进行终止,并使用 "Host" 头部的值进行路由。
IngressBackend
IngressBackend 描述了给定 Service 和端口的所有端点。
resource (TypedLocalObjectReference)
resource 是一个指向 Ingress 对象命名空间中另一个 Kubernetes 资源的 ObjectRef。如果指定了 resource,则不能指定 service.Name 和 service.Port。此设置与 "Service" 互斥。
service (IngressServiceBackend)
service 引用了一个 Service 作为后端。此设置与 "Resource" 互斥。
IngressServiceBackend 将 Kubernetes Service 作为后端引用。
service.name (string), required
name 是引用的 Service。该 Service 必须与 Ingress 对象位于同一个命名空间中。
service.port (ServiceBackendPort)
引用的 Service 的端口。对于 IngressServiceBackend,端口名称或端口号是必需的。
ServiceBackendPort 是被引用的 Service 端口。
service.port.name (string)
name 是 Service 上端口的名称。此设置与 "Number" 互斥。
service.port.number (int32)
number 是 Service 上的数字端口号(例如 80)。此设置与 "Name" 互斥。
IngressStatus
IngressStatus 描述 Ingress 的当前状态。
loadBalancer (IngressLoadBalancerStatus)
loadBalancer 包含负载均衡器的当前状态。
IngressLoadBalancerStatus 表示负载均衡器的状态。
loadBalancer.ingress ([]IngressLoadBalancerIngress)
原子性:将在合并期间被替换
ingress 是包含负载均衡器入口点(ingress points)的列表。
IngressLoadBalancerIngress 表示负载均衡器入口点(ingress point)的状态。
loadBalancer.ingress.hostname (string)
对于基于 DNS 的负载均衡器入口点,会设置 hostname。
loadBalancer.ingress.ip (string)
对于基于 IP 的负载均衡器入口点,会设置 ip。
loadBalancer.ingress.ports ([]IngressPortStatus)
原子性:将在合并期间被替换
ports 提供了有关此负载均衡器暴露的端口的信息。
IngressPortStatus 表示 Service 端口的错误情况
loadBalancer.ingress.ports.port (int32), required
port 是入口端口的端口号。
loadBalancer.ingress.ports.protocol (string), required
protocol 是入口端口的协议。支持的值包括:"TCP", "UDP", "SCTP"。
loadBalancer.ingress.ports.error (string)
error 用于记录 Service 端口的问题。错误格式应符合以下规则:- 内置错误值应在此文件中指定,并且应使用 CamelCase 名称。
- 云提供商特定的错误值必须具有符合 foo.example.com/CamelCase 格式的名称。
IngressList
IngressList 是 Ingress 的集合。
items ([]Ingress), required
items 是 Ingress 的列表。
apiVersion (string)
APIVersion 定义了此对象表示的带版本模式。服务器应将识别的模式转换为最新的内部值,并且可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind (string)
Kind 是一个字符串值,表示此对象代表的 REST 资源。服务器可以从客户端提交请求的端点推断出此值。不可更新。使用 CamelCase。更多信息: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}
参数
name (in path): string, required
Ingress 的名称
namespace (in path): string, required
pretty (in query): string
响应
200 (Ingress): OK
401: Unauthorized
get
读取指定 Ingress 的状态
HTTP 请求
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status
参数
name (in path): string, required
Ingress 的名称
namespace (in path): string, required
pretty (in query): string
响应
200 (Ingress): OK
401: Unauthorized
list
列出或监视类型为 Ingress 的对象
HTTP 请求
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses
参数
namespace (in path): string, required
allowWatchBookmarks (in query): boolean
continue (in query): string
fieldSelector (in query): string
labelSelector (in query): string
limit (in query): integer
pretty (in query): string
resourceVersion (in query): string
resourceVersionMatch (in query): string
sendInitialEvents (in query): boolean
timeoutSeconds (in query): integer
watch (in query): boolean
响应
200 (IngressList): OK
401: Unauthorized
list
列出或监视类型为 Ingress 的对象
HTTP 请求
GET /apis/networking.k8s.io/v1/ingresses
参数
allowWatchBookmarks (in query): boolean
continue (in query): string
fieldSelector (in query): string
labelSelector (in query): string
limit (in query): integer
pretty (in query): string
resourceVersion (in query): string
resourceVersionMatch (in query): string
sendInitialEvents (in query): boolean
timeoutSeconds (in query): integer
watch (in query): boolean
响应
200 (IngressList): OK
401: Unauthorized
create
创建一个 Ingress
HTTP 请求
POST /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses
参数
namespace (in path): string, required
body: Ingress, required
dryRun (in query): string
fieldManager (in query): string
fieldValidation (in query): string
pretty (in query): string
响应
200 (Ingress): OK
201 (Ingress): Created
202 (Ingress): Accepted
401: Unauthorized
update
替换指定的 Ingress
HTTP 请求
PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}
参数
name (in path): string, required
Ingress 的名称
namespace (in path): string, required
body: Ingress, required
dryRun (in query): string
fieldManager (in query): string
fieldValidation (in query): string
pretty (in query): string
响应
200 (Ingress): OK
201 (Ingress): Created
401: Unauthorized
update
替换指定 Ingress 的状态
HTTP 请求
PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status
参数
name (in path): string, required
Ingress 的名称
namespace (in path): string, required
body: Ingress, required
dryRun (in query): string
fieldManager (in query): string
fieldValidation (in query): string
pretty (in query): string
响应
200 (Ingress): OK
201 (Ingress): Created
401: Unauthorized
patch
部分更新指定的 Ingress
HTTP 请求
PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}
参数
name (in path): string, required
Ingress 的名称
namespace (in path): string, required
body: Patch, required
dryRun (in query): string
fieldManager (in query): string
fieldValidation (in query): string
force (in query): boolean
pretty (in query): string
响应
200 (Ingress): OK
201 (Ingress): Created
401: Unauthorized
patch
部分更新指定 Ingress 的状态
HTTP 请求
PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status
参数
name (in path): string, required
Ingress 的名称
namespace (in path): string, required
body: Patch, required
dryRun (in query): string
fieldManager (in query): string
fieldValidation (in query): string
force (in query): boolean
pretty (in query): string
响应
200 (Ingress): OK
201 (Ingress): Created
401: Unauthorized
delete
删除一个 Ingress
HTTP 请求
DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}
参数
name (in path): string, required
Ingress 的名称
namespace (in path): string, required
body: DeleteOptions
dryRun (in query): string
gracePeriodSeconds (in query): integer
ignoreStoreReadErrorWithClusterBreakingPotential (in query): boolean
pretty (in query): string
propagationPolicy (in query): string
响应
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
删除 Ingress 的集合
HTTP 请求
DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses
参数
namespace (in path): string, required
body: DeleteOptions
continue (in query): string
dryRun (in query): string
fieldSelector (in query): string
gracePeriodSeconds (in query): integer
ignoreStoreReadErrorWithClusterBreakingPotential (in query): boolean
labelSelector (in query): string
limit (in query): integer
pretty (in query): string
propagationPolicy (in query): string
resourceVersion (in query): string
resourceVersionMatch (in query): string
sendInitialEvents (in query): boolean
timeoutSeconds (in query): integer
响应
200 (Status): OK
401: Unauthorized
此页面是自动生成的。
如果您计划报告此页面的问题,请在问题描述中说明此页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。