入口
apiVersion: networking.k8s.io/v1
import "k8s.io/api/networking/v1"
入口
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)
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 需要端口名称或端口号。
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 公开端口的信息。
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 的集合。
items ([]Ingress), required
items 是 Ingress 的列表。
apiVersion (string)
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 项目的其他地方进行。