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 是应该处理不匹配任何规则的请求的后端。如果未指定 Rules,则必须指定 DefaultBackend。如果未设置 DefaultBackend,则对不匹配任何规则的请求的处理将由 Ingress 控制器决定。
ingressClassName (string)
ingressClassName 是 IngressClass 集群资源的名称。Ingress 控制器实现使用此字段来了解它们是否应该为这个 Ingress 资源提供服务,通过传递连接(控制器 -> IngressClass -> 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 的 “host” 部分的偏差:1. 不允许 IP。目前,IngressRuleValue 只能应用于父 Ingress 的 Spec 中的 IP。 2. 不遵守
:
分隔符,因为不允许端口。目前,Ingress 的端口对于 http 隐式为 :80,对于 https 隐式为 :443。这两者将来可能会发生变化。传入的请求在 IngressRuleValue 之前与主机匹配。如果未指定主机,则 Ingress 会根据指定的 IngressRuleValue 路由所有流量。host 可以是 “precise”,它是没有网络主机终止点的域名(例如,“foo.bar.com”),或者是 “wildcard”,它是以单个通配符标签为前缀的域名(例如,“*.foo.com”)。通配符字符 ‘*’ 必须作为第一个 DNS 标签单独出现,并且仅匹配单个标签。你不能单独使用通配符标签(例如,Host == "*")。请求将以以下方式与 Host 字段匹配:1. 如果 host 是 precise,则如果 http 主机头等于 Host,则该请求与此规则匹配。 2. 如果 host 是通配符,则如果 http 主机头等于通配符规则的后缀(删除第一个标签),则该请求与此规则匹配。
rules.http (HTTPIngressRuleValue)
HTTPIngressRuleValue 是指向后端的 http 选择器列表。例如:http://
/ ? -> backend,其中 url 的各个部分对应于 RFC 3986,此资源将用于匹配最后一个 '/' 之后和第一个 '?' 或 '#' 之前的所有内容。 rules.http.paths ([]HTTPIngressPath), 必需
原子性:在合并期间将被替换
paths 是将请求映射到后端的路径集合。
HTTPIngressPath 将路径与后端关联。匹配该路径的传入 url 将转发到后端。
rules.http.paths.backend (IngressBackend), 必需
backend 定义将流量转发到的引用服务端点。
rules.http.paths.pathType (string), 必需
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 流量的密钥的名称。此字段是可选的,允许仅基于 SNI 主机名进行 TLS 路由。如果侦听器中的 SNI 主机与 IngressRule 使用的 “Host” 标头字段冲突,则 SNI 主机用于终止,“Host” 标头的值用于路由。
IngressBackend
IngressBackend 描述给定服务和端口的所有端点。
resource (TypedLocalObjectReference)
resource 是对 Ingress 对象命名空间中另一个 Kubernetes 资源的 ObjectRef。如果指定了 resource,则不得指定 service.Name 和 service.Port。这是与 “Service” 互斥的设置。
service (IngressServiceBackend)
service 引用服务作为后端。这是与 “Resource” 互斥的设置。
IngressStatus
IngressStatus 描述 Ingress 的当前状态。
loadBalancer (IngressLoadBalancerStatus)
loadBalancer 包含负载均衡器的当前状态。
IngressLoadBalancerStatus 表示负载均衡器的状态。
loadBalancer.ingress ([]IngressLoadBalancerIngress)
原子性:在合并期间将被替换
ingress 是一个列表,其中包含负载均衡器的 ingress 点。
IngressLoadBalancerIngress 表示负载均衡器入口点的状态。
loadBalancer.ingress.hostname (string)
hostname 针对基于 DNS 的负载均衡器入口点进行设置。
loadBalancer.ingress.ip (字符串)
ip 针对基于 IP 的负载均衡器入口点进行设置。
loadBalancer.ingress.ports ([]IngressPortStatus)
原子性:在合并期间将被替换
ports 提供有关此负载均衡器暴露的端口的信息。
loadBalancer.ingress.ports.port (int32),必需
port 是入口端口的端口号。
loadBalancer.ingress.ports.protocol (字符串),必需
protocol 是入口端口的协议。支持的值为:“TCP”、“UDP”、“SCTP”
loadBalancer.ingress.ports.error (字符串)
error 用于记录服务端口的问题。错误的格式应符合以下规则:- 内置的错误值应在此文件中指定,并且应使用 CamelCase 名称
- 云提供商特定的错误值必须具有符合 foo.example.com/CamelCase 格式的名称。
IngressList
IngressList 是 Ingress 的集合。
items ([]Ingress),必需
items 是 Ingress 的列表。
apiVersion (字符串)
APIVersion 定义了对象的此表示形式的版本化模式。服务器应将识别的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息: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 (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): OK
401: 未授权
get
读取指定 Ingress 的状态
HTTP 请求
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status
参数
响应
200 (Ingress): OK
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): OK
401: 未授权
list
列出或监视 Ingress 类型的对象
HTTP 请求
GET /apis/networking.k8s.io/v1/ingresses
参数
allowWatchBookmarks (查询中):布尔值
continue (查询中):字符串
fieldSelector (查询中):字符串
labelSelector (查询中):字符串
limit (查询中):整数
pretty (查询中):字符串
resourceVersion (查询中):字符串
resourceVersionMatch (查询中):字符串
sendInitialEvents (查询中):布尔值
timeoutSeconds (查询中):整数
watch (查询中):布尔值
响应
200 (IngressList): OK
401: 未授权
create
创建一个 Ingress
HTTP 请求
POST /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses
参数
namespace (路径中):字符串,必需
body: Ingress,必需
dryRun (查询中):字符串
fieldManager (查询中):字符串
fieldValidation (查询中):字符串
pretty (查询中):字符串
响应
200 (Ingress): OK
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): OK
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): OK
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): OK
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): OK
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): OK
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): OK
401: 未授权
此页面是自动生成的。
如果您计划报告此页面的问题,请在您的问题描述中提及该页面是自动生成的。修复可能需要在 Kubernetes 项目的其他位置进行。