×
描述

IngressController 描述了集群的受管 Ingress 控制器。该控制器可以为 OpenShift Route 和 Kubernetes Ingress 资源提供服务。创建 IngressController 时,会创建一个新的 Ingress 控制器部署,以允许外部流量访问公开 Ingress 或 Route 资源的服务。更新此资源可能会导致面向公众的网络连接中断,因为可能会推出新的 Ingress 控制器版本。 https://kubernetes.ac.cn/docs/concepts/services-networking/ingress-controllers 尽可能使用平台的合理默认值。有关更多详细信息,请参阅每个字段。兼容性级别 1:在主要版本中至少稳定 12 个月或 3 个次要版本(以较长者为准)。

类型

对象

规范

属性 类型 描述

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

ObjectMeta

标准对象的元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

对象

spec 是 IngressController 期望行为的规范。

status

对象

status 是 IngressController 最近观察到的状态。

.spec

描述

spec 是 IngressController 期望行为的规范。

类型

对象

属性 类型 描述

clientTLS

对象

clientTLS 指定了请求和验证客户端证书的设置,可用于为边缘终止和重新加密路由启用双向 TLS。

defaultCertificate

对象

defaultCertificate 是对包含 Ingress 控制器提供的默认证书的密钥的引用。当路由未指定自己的证书时,使用 defaultCertificate。密钥必须包含以下键和数据:tls.crt:证书文件内容 tls.key:密钥文件内容 如果未设置,则会自动生成和使用通配符证书。该证书对 Ingress 控制器域名(及其子域名)有效,生成的证书的 CA 将自动集成到集群的信任存储中。如果使用通配符证书并由多个启用 HTTP/2 的路由(这意味着 ALPN)共享,则客户端(即,特别是浏览器)可以自由地重用打开的连接。这意味着客户端可以重用与另一个路由的连接,这可能会失败。此行为通常称为连接合并。正在使用的证书(无论是生成的还是用户指定的)将自动与 OpenShift 的内置 OAuth 服务器集成。

domain

字符串

domain 是 Ingress 控制器提供的 DNS 名称,用于配置多个功能:* 对于 LoadBalancerService 端点发布策略,domain 用于配置 DNS 记录。请参阅 endpointPublishingStrategy。* 使用生成的默认证书时,证书将对 domain 及其子域名有效。请参阅 defaultCertificate。* 该值发布到各个 Route 状态,以便最终用户知道在哪里定位外部 DNS 记录。domain 在所有 IngressController 中必须唯一,并且不能更新。如果为空,则默认为 ingress.config.openshift.io/cluster .spec.domain。

endpointPublishingStrategy

对象

endpointPublishingStrategy 用于将 Ingress 控制器端点发布到其他网络,启用负载均衡器集成等。如果未设置,则默认值基于 infrastructure.config.openshift.io/cluster .status.platform:AWS:LoadBalancerService(具有外部范围)Azure:LoadBalancerService(具有外部范围)GCP:LoadBalancerService(具有外部范围)IBMCloud:LoadBalancerService(具有外部范围)AlibabaCloud:LoadBalancerService(具有外部范围)Libvirt:HostNetwork 其他任何平台类型(包括 None)默认为 HostNetwork。endpointPublishingStrategy 不能更新。

httpCompression

对象

httpCompression 定义了 HTTP 流量压缩策略。默认情况下,没有 HTTP 压缩。

httpEmptyRequestsPolicy

字符串

httpEmptyRequestsPolicy 描述了如果连接在收到请求之前超时,应如何处理 HTTP 连接。此字段的允许值是“Respond”和“Ignore”。如果该字段设置为“Respond”,则 Ingress 控制器将发送 HTTP 400 或 408 响应,记录连接(如果启用了访问日志记录),并在适当的指标中计算连接。如果该字段设置为“Ignore”,则 Ingress 控制器将关闭连接,而无需发送响应、记录连接或增加指标。默认值为“Respond”。通常,这些连接来自负载均衡器的运行状况探测或 Web 浏览器的推测性连接(“预连接”),可以安全地忽略。但是,这些请求也可能是由网络错误引起的,因此将此字段设置为“Ignore”可能会妨碍问题的检测和诊断。此外,这些请求可能是由端口扫描引起的,在这种情况下,记录空请求可能有助于检测入侵尝试。

httpErrorCodePages

对象

httpErrorCodePages 指定了一个包含自定义错误页面的 ConfigMap。管理员必须在 openshift-config 命名空间中创建此 ConfigMap。此 ConfigMap 的键应采用 "error-page-<错误代码>.http" 的格式,其中 <错误代码> 是 HTTP 错误代码。例如,"error-page-503.http" 定义了 HTTP 503 响应的错误页面。目前,只有 503 和 404 响应的错误页面可以自定义。ConfigMap 中的每个值都应该是完整的响应,包括 HTTP 头。例如:https://raw.githubusercontent.com/openshift/router/fadab45747a9b30cc3f0a4b41ad2871f95827a93/images/router/haproxy/conf/error-page-503.http 如果此字段为空,则 Ingress 控制器将使用默认错误页面。

httpHeaders

对象

httpHeaders 定义 HTTP 头的策略。如果此字段为空,则使用默认值。

logging

对象

logging 定义了应在何处记录什么的参数。如果此字段为空,则启用操作日志,但禁用访问日志。

namespaceSelector

对象

namespaceSelector 用于过滤 Ingress 控制器服务的命名空间集。这对于实现分片很有用。如果未设置,则默认为不进行过滤。

nodePlacement

对象

nodePlacement 启用对 Ingress 控制器调度的显式控制。如果未设置,则使用默认值。有关详细信息,请参阅 NodePlacement。

replicas

整数

replicas 是所需的 Ingress 控制器副本数量。如果未设置,则默认值取决于集群 config.openshift.io/v1/ingresses 状态中的 defaultPlacement 字段的值。replicas 的值基于基础设施 CR 中选定字段的值设置。如果 defaultPlacement 设置为 ControlPlane,则选定字段将为 controlPlaneTopology。如果设置为 Workers,则选定字段将为 infrastructureTopology。然后,根据选定字段的值是 SingleReplica 还是 HighlyAvailable,将 replicas 设置为 1 或 2。这些默认值可能会更改。

routeAdmission

对象

routeAdmission 定义处理新的路由声明的策略(例如,允许或拒绝跨命名空间的声明)。如果为空,将应用默认值。有关其默认值的详细信息,请参阅具体的 routeAdmission 字段。

routeSelector

对象

routeSelector 用于过滤 Ingress 控制器服务的路由集。这对于实现分片很有用。如果未设置,则默认为不进行过滤。

tlsSecurityProfile

对象

tlsSecurityProfile 指定 Ingress 控制器的 TLS 连接设置。如果未设置,则默认值基于 apiservers.config.openshift.io/cluster 资源。请注意,当使用 Old、Intermediate 和 Modern 配置文件类型时,有效的配置文件配置可能会在版本之间发生更改。例如,给定一个在 X.Y.Z 版本上部署以使用 Intermediate 配置文件的规范,升级到 X.Y.Z+1 版本可能会导致新的配置文件配置应用于 Ingress 控制器,从而导致重新部署。

tuningOptions

对象

tuningOptions 定义调整 Ingress 控制器 Pod 性能的参数。所有字段都是可选的,如果未设置,将使用其各自的默认值。有关详细信息,请参阅具体的 tuningOptions 字段。通常不建议设置 tuningOptions 中的字段。默认值适用于大多数配置。

unsupportedConfigOverrides

``

unsupportedConfigOverrides 允许指定不受支持的配置选项。其使用不受支持。

.spec.clientTLS

描述

clientTLS 指定了请求和验证客户端证书的设置,可用于为边缘终止和重新加密路由启用双向 TLS。

类型

对象

必需
  • clientCA

  • clientCertificatePolicy

属性 类型 描述

allowedSubjectPatterns

数组 (字符串)

allowedSubjectPatterns 指定应与有效客户端证书上的可分辨名称匹配的正则表达式列表,以过滤请求。正则表达式必须使用 PCRE 语法。如果此列表为空,则不执行过滤。如果此列表非空,则至少有一个模式必须与客户端证书的可分辨名称匹配,否则 Ingress 控制器将拒绝证书并拒绝连接。

clientCA

对象

clientCA 指定一个包含 PEM 编码的 CA 证书捆绑包的 ConfigMap,该捆绑包应用于验证客户端的证书。管理员必须在 openshift-config 命名空间中创建此 ConfigMap。

clientCertificatePolicy

字符串

clientCertificatePolicy 指定 Ingress 控制器是否要求客户端提供证书。此字段接受值 "Required" 或 "Optional"。请注意,Ingress 控制器仅检查边缘终止和重新加密 TLS 路由的客户端证书;它无法检查明文 HTTP 或直通 TLS 路由的证书。

.spec.clientTLS.clientCA

描述

clientCA 指定一个包含 PEM 编码的 CA 证书捆绑包的 ConfigMap,该捆绑包应用于验证客户端的证书。管理员必须在 openshift-config 命名空间中创建此 ConfigMap。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

name 是引用的 ConfigMap 的 metadata.name。

.spec.defaultCertificate

描述

defaultCertificate 是对包含 Ingress 控制器提供的默认证书的密钥的引用。当路由未指定自己的证书时,使用 defaultCertificate。密钥必须包含以下键和数据:tls.crt:证书文件内容 tls.key:密钥文件内容 如果未设置,则会自动生成和使用通配符证书。该证书对 Ingress 控制器域名(及其子域名)有效,生成的证书的 CA 将自动集成到集群的信任存储中。如果使用通配符证书并由多个启用 HTTP/2 的路由(这意味着 ALPN)共享,则客户端(即,特别是浏览器)可以自由地重用打开的连接。这意味着客户端可以重用与另一个路由的连接,这可能会失败。此行为通常称为连接合并。正在使用的证书(无论是生成的还是用户指定的)将自动与 OpenShift 的内置 OAuth 服务器集成。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

.spec.endpointPublishingStrategy

描述

endpointPublishingStrategy 用于将 Ingress 控制器端点发布到其他网络,启用负载均衡器集成等。如果未设置,则默认值基于 infrastructure.config.openshift.io/cluster .status.platform:AWS:LoadBalancerService(具有外部范围)Azure:LoadBalancerService(具有外部范围)GCP:LoadBalancerService(具有外部范围)IBMCloud:LoadBalancerService(具有外部范围)AlibabaCloud:LoadBalancerService(具有外部范围)Libvirt:HostNetwork 其他任何平台类型(包括 None)默认为 HostNetwork。endpointPublishingStrategy 不能更新。

类型

对象

必需
  • type

属性 类型 描述

hostNetwork

对象

hostNetwork 包含 HostNetwork 端点发布策略的参数。仅当类型为 HostNetwork 时才存在。

loadBalancer

对象

loadBalancer 包含负载均衡器的参数。仅当类型为 LoadBalancerService 时才存在。

nodePort

对象

nodePort 包含 NodePortService 端点发布策略的参数。仅当类型为 NodePortService 时才存在。

private

对象

private 包含 Private 端点发布策略的参数。仅当类型为 Private 时才存在。

type

字符串

type 指定使用的发布策略。有效值为:* LoadBalancerService 使用 Kubernetes LoadBalancer 服务发布 Ingress 控制器。在此配置中,Ingress 控制器部署使用容器网络。将创建一个 LoadBalancer 服务来发布部署。详情请见:https://kubernetes.ac.cn/docs/concepts/services-networking/service/#loadbalancer 如果设置了 domain,则将管理一个通配符 DNS 记录以指向 LoadBalancer 服务的外部名称。DNS 记录仅在由 dns.config.openshift.io/cluster .spec.publicZone 和 .spec.privateZone 定义的 DNS 区域中进行管理。通配符 DNS 管理目前仅在 AWS、Azure 和 GCP 平台上受支持。* HostNetwork 在部署 Ingress 控制器的节点端口上发布 Ingress 控制器。在此配置中,Ingress 控制器部署使用主机网络,绑定到节点端口 80 和 443。用户负责配置外部负载均衡器,通过节点端口发布 Ingress 控制器。* Private 不发布 Ingress 控制器。在此配置中,Ingress 控制器部署使用容器网络,并且没有显式发布。用户必须手动发布 Ingress 控制器。* NodePortService 使用 Kubernetes NodePort 服务发布 Ingress 控制器。在此配置中,Ingress 控制器部署使用容器网络。将创建一个 NodePort 服务来发布部署。具体的节点端口由 OpenShift 动态分配;但是,为了支持静态端口分配,对托管 NodePort 服务的 node port 字段的用户更改将被保留。

.spec.endpointPublishingStrategy.hostNetwork

描述

hostNetwork 包含 HostNetwork 端点发布策略的参数。仅当类型为 HostNetwork 时才存在。

类型

对象

属性 类型 描述

httpPort

整数

httpPort 是主机上用于监听 HTTP 请求的端口。如果端口 80 已经被使用,则应设置此字段。该值不应与集群的 NodePort 范围重叠。当值为 0 或未指定时,默认为 80。

httpsPort

整数

httpsPort 是主机上用于监听 HTTPS 请求的端口。如果端口 443 已经被使用,则应设置此字段。该值不应与集群的 NodePort 范围重叠。当值为 0 或未指定时,默认为 443。

protocol

字符串

protocol 指定 IngressController 是否期望传入连接使用纯 TCP,或者 IngressController 是否期望 PROXY 协议。PROXY 协议可与支持它的负载均衡器一起使用,以便在将连接转发到 IngressController 时传达客户端连接的源地址。使用 PROXY 协议使 IngressController 能够报告这些源地址,而不是在 HTTP 头和日志中报告负载均衡器的地址。请注意,如果未使用使用 PROXY 协议将连接转发到 IngressController 的负载均衡器,则在 IngressController 上启用 PROXY 协议将导致连接失败。有关 PROXY 协议的信息,请参阅 http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt。此字段的有效值为:* 空字符串。* "TCP"。* "PROXY"。空字符串指定默认值,即不使用 PROXY 协议的 TCP。请注意,默认值可能会更改。

statsPort

整数

statsPort 是主机上发布路由器统计信息的端口。该值不应与集群的 NodePort 范围重叠。如果外部负载均衡器配置为将连接转发到此 IngressController,则负载均衡器应使用此端口进行运行状况检查。负载均衡器可以在给定节点上的此端口上发送 HTTP 探测,路径为 /healthz/ready,以确定 Ingress 控制器是否已准备好接收节点上的流量。为了正常运行,负载均衡器必须在运行状况检查报告就绪之前不将流量转发到节点。负载均衡器还应在 /healthz/ready 开始报告未就绪后最多 45 秒内停止转发请求。每 5 到 10 秒探测一次,超时时间为 5 秒,并且成功或失败请求的阈值为两个,才能分别变为健康或不健康,这些都是经过良好测试的值。当值为 0 或未指定时,默认为 1936。

.spec.endpointPublishingStrategy.loadBalancer

描述

loadBalancer 包含负载均衡器的参数。仅当类型为 LoadBalancerService 时才存在。

类型

对象

必需
  • dnsManagementPolicy

  • scope

属性 类型 描述

allowedSourceRanges

``

allowedSourceRanges 指定应将对负载均衡器访问权限限制为的 IP 地址范围的白名单。每个范围必须使用 CIDR 表示法指定(例如,“10.0.0.0/8”或“fd00::/8”)。如果没有指定范围,则默认使用 IPv4 的“0.0.0.0/0”和 IPv6 的“::/0”,这允许所有源地址。为了便于从没有 allowedSourceRanges 字段的早期版本的 OpenShift 迁移,您可以在“openshift-ingress”命名空间中的“router-<ingresscontroller name>”服务上设置 service.beta.kubernetes.io/load-balancer-source-ranges 注解,如果 OpenShift 4.12 上的 allowedSourceRanges 为空,则此注解将生效。

dnsManagementPolicy

字符串

dnsManagementPolicy 指示与负载均衡器服务关联的通配符 DNS 记录的生命周期是否将由 Ingress 运算符管理。默认为 Managed。有效值为:Managed 和 Unmanaged。

providerParameters

对象

providerParameters 包含特定于底层基础架构提供程序的所需负载均衡器信息。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 providerParameters 字段。

scope

字符串

scope 指示负载均衡器公开的范围。可能的值为“External”和“Internal”。

.spec.endpointPublishingStrategy.loadBalancer.providerParameters

描述

providerParameters 包含特定于底层基础架构提供程序的所需负载均衡器信息。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 providerParameters 字段。

类型

对象

必需
  • type

属性 类型 描述

aws

对象

aws 提供特定于 AWS 负载均衡器的配置设置。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 aws 字段。

gcp

对象

gcp 提供特定于 GCP 负载均衡器的配置设置。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 gcp 字段。

ibm

对象

ibm 提供特定于 IBM Cloud 负载均衡器的配置设置。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 ibm 字段。

type

字符串

type 是负载均衡器的底层基础架构提供程序。允许的值为“AWS”、“Azure”、“BareMetal”、“GCP”、“IBM”、“Nutanix”、“OpenStack”和“VSphere”。

.spec.endpointPublishingStrategy.loadBalancer.providerParameters.aws

描述

aws 提供特定于 AWS 负载均衡器的配置设置。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 aws 字段。

类型

对象

必需
  • type

属性 类型 描述

classicLoadBalancer

对象

classicLoadBalancerParameters 包含 AWS 经典负载均衡器的配置参数。仅当 type 为 Classic 时才存在。

networkLoadBalancer

对象

networkLoadBalancerParameters 包含 AWS 网络负载均衡器的配置参数。仅当 type 为 NLB 时才存在。

type

字符串

type 是为 IngressController 实例化 AWS 负载均衡器的类型。有效值为:* "Classic":经典负载均衡器,在传输层(TCP/SSL)或应用层(HTTP/HTTPS)进行路由决策。更多详情请见:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/load-balancer-types.html#clb * "NLB":网络负载均衡器,在传输层(TCP/SSL)进行路由决策。更多详情请见:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/load-balancer-types.html#nlb

.spec.endpointPublishingStrategy.loadBalancer.providerParameters.aws.classicLoadBalancer

描述

classicLoadBalancerParameters 包含 AWS 经典负载均衡器的配置参数。仅当 type 为 Classic 时才存在。

类型

对象

属性 类型 描述

connectionIdleTimeout

字符串

connectionIdleTimeout 指定连接在负载均衡器关闭连接之前可能处于空闲状态的最长时间段。该值必须可解析为时间持续时间值;请参见 https://pkg.go.dev/time#ParseDuration。空值或零值表示没有意见,在这种情况下将使用默认值。此字段的默认值为 60s。此默认值可能会更改。

subnets

对象

subnets 指定负载均衡器将附加到的子网。子网可以通过其 ID 或名称指定。子网总数限制为 10 个。为了使负载均衡器能够配置子网,每个子网都必须存在,每个子网都必须来自不同的可用区,并且必须重新创建负载均衡器服务才能获取新值。如果在规范中省略,则将为每个可用区自动发现子网。自动发现的子网不会在 IngressController 对象的状态中报告。

.spec.endpointPublishingStrategy.loadBalancer.providerParameters.aws.classicLoadBalancer.subnets

描述

subnets 指定负载均衡器将附加到的子网。子网可以通过其 ID 或名称指定。子网总数限制为 10 个。为了使负载均衡器能够配置子网,每个子网都必须存在,每个子网都必须来自不同的可用区,并且必须重新创建负载均衡器服务才能获取新值。如果在规范中省略,则将为每个可用区自动发现子网。自动发现的子网不会在 IngressController 对象的状态中报告。

类型

对象

属性 类型 描述

ids

数组 (字符串)

ids 指定一个通过子网 ID 指定的 AWS 子网列表。子网 ID 必须以 "subnet-" 开头,只能包含字母数字字符,必须正好为 24 个字符长,必须唯一,并且通过 ids 和 names 指定的子网总数不得超过 10 个。

names

数组 (字符串)

names 指定一个通过子网名称指定的 AWS 子网列表。子网名称不能以 "subnet-" 开头,不能包含逗号,长度必须小于 256 个字符,必须唯一,并且通过 ids 和 names 指定的子网总数不得超过 10 个。

.spec.endpointPublishingStrategy.loadBalancer.providerParameters.aws.networkLoadBalancer

描述

networkLoadBalancerParameters 包含 AWS 网络负载均衡器的配置参数。仅当 type 为 NLB 时才存在。

类型

对象

属性 类型 描述

eipAllocations

数组 (字符串)

eipAllocations 是分配给网络负载均衡器的弹性 IP (EIP) 地址的 ID 列表。适用以下限制:eipAllocations 只能与外部范围一起使用,不能与内部范围一起使用。一个 EIP 只能分配给单个 IngressController。EIP 分配的数量必须与用于负载均衡器的子网数量匹配。每个 EIP 分配都必须唯一。最多允许 10 个 EIP 分配。有关弹性 IP 地址的配置、特性和限制的一般信息,请参见 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html

subnets

对象

subnets 指定负载均衡器将附加到的子网。子网可以通过其 ID 或名称指定。子网总数限制为 10 个。为了使负载均衡器能够配置子网,每个子网都必须存在,每个子网都必须来自不同的可用区,并且必须重新创建负载均衡器服务才能获取新值。如果在规范中省略,则将为每个可用区自动发现子网。自动发现的子网不会在 IngressController 对象的状态中报告。

.spec.endpointPublishingStrategy.loadBalancer.providerParameters.aws.networkLoadBalancer.subnets

描述

subnets 指定负载均衡器将附加到的子网。子网可以通过其 ID 或名称指定。子网总数限制为 10 个。为了使负载均衡器能够配置子网,每个子网都必须存在,每个子网都必须来自不同的可用区,并且必须重新创建负载均衡器服务才能获取新值。如果在规范中省略,则将为每个可用区自动发现子网。自动发现的子网不会在 IngressController 对象的状态中报告。

类型

对象

属性 类型 描述

ids

数组 (字符串)

ids 指定一个通过子网 ID 指定的 AWS 子网列表。子网 ID 必须以 "subnet-" 开头,只能包含字母数字字符,必须正好为 24 个字符长,必须唯一,并且通过 ids 和 names 指定的子网总数不得超过 10 个。

names

数组 (字符串)

names 指定一个通过子网名称指定的 AWS 子网列表。子网名称不能以 "subnet-" 开头,不能包含逗号,长度必须小于 256 个字符,必须唯一,并且通过 ids 和 names 指定的子网总数不得超过 10 个。

.spec.endpointPublishingStrategy.loadBalancer.providerParameters.gcp

描述

gcp 提供特定于 GCP 负载均衡器的配置设置。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 gcp 字段。

类型

对象

属性 类型 描述

clientAccess

字符串

clientAccess 描述如何限制内部负载均衡器的客户端访问。有效值为:* "Global":指定具有全局客户端访问权限的内部负载均衡器允许 VPC 内任何区域的客户端与负载均衡器通信。https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing#global_access * "Local":指定具有本地客户端访问权限的内部负载均衡器意味着只有与 GCP 负载均衡器位于同一区域(和 VPC)中的客户端才能与负载均衡器通信。请注意,这是默认行为。https://cloud.google.com/load-balancing/docs/internal#client_access

.spec.endpointPublishingStrategy.loadBalancer.providerParameters.ibm

描述

ibm 提供特定于 IBM Cloud 负载均衡器的配置设置。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 ibm 字段。

类型

对象

属性 类型 描述

protocol

字符串

protocol 指定负载均衡器是否使用 PROXY 协议将连接转发到 IngressController。请参见 https://cloud.ibm.com/docs/containers?topic=containers-vpc-lbaas 中的 "service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "proxy-protocol""。PROXY 协议可与支持它的负载均衡器一起使用,以便在将连接转发到 IngressController 时传达客户端连接的源地址。使用 PROXY 协议使 IngressController 能够报告这些源地址,而不是在 HTTP 标头和日志中报告负载均衡器的地址。请注意,如果未使用使用 PROXY 协议将连接转发到 IngressController 的负载均衡器,则在 IngressController 上启用 PROXY 协议会导致连接失败。有关 PROXY 协议的信息,请参见 http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt。protocol 的有效值为 TCP、PROXY 和省略。省略时,表示无意见,平台将自行选择合理的默认值,该默认值可能会随着时间的推移而发生变化。当前默认值为 TCP,未启用代理协议。

.spec.endpointPublishingStrategy.nodePort

描述

nodePort 包含 NodePortService 端点发布策略的参数。仅当类型为 NodePortService 时才存在。

类型

对象

属性 类型 描述

protocol

字符串

protocol 指定 IngressController 是否期望传入连接使用纯 TCP,或者 IngressController 是否期望 PROXY 协议。PROXY 协议可与支持它的负载均衡器一起使用,以便在将连接转发到 IngressController 时传达客户端连接的源地址。使用 PROXY 协议使 IngressController 能够报告这些源地址,而不是在 HTTP 头和日志中报告负载均衡器的地址。请注意,如果未使用使用 PROXY 协议将连接转发到 IngressController 的负载均衡器,则在 IngressController 上启用 PROXY 协议将导致连接失败。有关 PROXY 协议的信息,请参阅 http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt。此字段的有效值为:* 空字符串。* "TCP"。* "PROXY"。空字符串指定默认值,即不使用 PROXY 协议的 TCP。请注意,默认值可能会更改。

.spec.endpointPublishingStrategy.private

描述

private 包含 Private 端点发布策略的参数。仅当类型为 Private 时才存在。

类型

对象

属性 类型 描述

protocol

字符串

protocol 指定 IngressController 是否期望传入连接使用纯 TCP,或者 IngressController 是否期望 PROXY 协议。PROXY 协议可与支持它的负载均衡器一起使用,以便在将连接转发到 IngressController 时传达客户端连接的源地址。使用 PROXY 协议使 IngressController 能够报告这些源地址,而不是在 HTTP 头和日志中报告负载均衡器的地址。请注意,如果未使用使用 PROXY 协议将连接转发到 IngressController 的负载均衡器,则在 IngressController 上启用 PROXY 协议将导致连接失败。有关 PROXY 协议的信息,请参阅 http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt。此字段的有效值为:* 空字符串。* "TCP"。* "PROXY"。空字符串指定默认值,即不使用 PROXY 协议的 TCP。请注意,默认值可能会更改。

.spec.httpCompression

描述

httpCompression 定义了 HTTP 流量压缩策略。默认情况下,没有 HTTP 压缩。

类型

对象

属性 类型 描述

mimeTypes

数组 (字符串)

mimeTypes 是应应用压缩的 MIME 类型列表。此列表可以为空,在这种情况下,ingress 控制器不会应用压缩。注意:并非所有 MIME 类型都受益于压缩,但如果指示,HAProxy 仍将使用资源尝试压缩。一般来说,文本 (html、css、js 等) 格式受益于压缩,但已经压缩的格式 (图像、音频、视频等) 几乎没有好处,但却要花费时间和 CPU 来再次压缩。请参见 https://joehonton.medium.com/the-gzip-penalty-d31bd697f1a2

.spec.httpErrorCodePages

描述

httpErrorCodePages 指定了一个包含自定义错误页面的 ConfigMap。管理员必须在 openshift-config 命名空间中创建此 ConfigMap。此 ConfigMap 的键应采用 "error-page-<错误代码>.http" 的格式,其中 <错误代码> 是 HTTP 错误代码。例如,"error-page-503.http" 定义了 HTTP 503 响应的错误页面。目前,只有 503 和 404 响应的错误页面可以自定义。ConfigMap 中的每个值都应该是完整的响应,包括 HTTP 头。例如:https://raw.githubusercontent.com/openshift/router/fadab45747a9b30cc3f0a4b41ad2871f95827a93/images/router/haproxy/conf/error-page-503.http 如果此字段为空,则 Ingress 控制器将使用默认错误页面。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

name 是引用的 ConfigMap 的 metadata.name。

.spec.httpHeaders

描述

httpHeaders 定义 HTTP 头的策略。如果此字段为空,则使用默认值。

类型

对象

属性 类型 描述

actions

对象

actions 指定修改标头及其值的选项。请注意,此选项仅适用于明文 HTTP 连接以及 ingress 控制器终止加密(即边缘终止或重新加密连接)的安全 HTTP 连接。对于 TLS 直通连接,无法修改标头。不支持通过 actions 设置 HSTS (Strict-Transport-Security) 标头。Strict-Transport-Security 只能使用 "haproxy.router.openshift.io/hsts_header" 路由注释进行配置,并且只能根据 Ingress.Spec.RequiredHSTSPolicies 中指定的策略进行配置。此处定义的任何操作都将在与以下其他字段相关的任何操作之后应用:cache-control、spec.clientTLS、spec.httpHeaders.forwardedHeaderPolicy、spec.httpHeaders.uniqueId 和 spec.httpHeaders.headerNameCaseAdjustments。对于 HTTP 请求标头,路由上指定的 spec.httpHeaders.actions 中的操作将在 IngressController 的 spec.httpHeaders.actions 字段中指定的操作之后执行。对于 HTTP 响应标头,IngressController 上指定的 spec.httpHeaders.actions 中的操作将在路由的 spec.httpHeaders.actions 字段中指定的操作之后执行。使用此 API 设置的标头无法捕获以用于访问日志。以下标头名称是保留的,不能通过此 API 修改:Strict-Transport-Security、Proxy、Host、Cookie、Set-Cookie。请注意,**在**插入动态值**之后**所有净添加标头的总大小不得超过 IngressController 上 spec.tuningOptions.headerBufferMaxRewriteBytes 的值。有关更多详细信息,请参阅该 API 字段的文档。

forwardedHeaderPolicy

字符串

forwardedHeaderPolicy 指定 IngressController 何时以及如何设置 Forwarded、X-Forwarded-For、X-Forwarded-Host、X-Forwarded-Port、X-Forwarded-Proto 和 X-Forwarded-Proto-Version HTTP 标头。该值可以是以下值之一:* "Append",指定 IngressController 附加标头,保留现有标头。* "Replace",指定 IngressController 设置标头,替换任何现有的 Forwarded 或 X-Forwarded-* 标头。* "IfNone",指定如果尚未设置标头,则 IngressController 设置标头。* "Never",指定 IngressController 从不设置标头,保留任何现有标头。默认情况下,策略为 "Append"。

headerNameCaseAdjustments

``

headerNameCaseAdjustments 指定可以应用于 HTTP 头部名称的大小写调整。每个调整都指定为具有所需大小写的 HTTP 头部名称。例如,指定 "X-Forwarded-For" 表示 "x-forwarded-for" HTTP 头部应调整为具有指定的大小写。这些调整仅应用于明文、边缘终止和重新加密路由,并且仅在使用 HTTP/1 时应用。对于请求头部,这些调整仅应用于具有 `haproxy.router.openshift.io/h1-adjust-case=true` 注解的路由。对于响应头部,这些调整应用于所有 HTTP 响应。如果此字段为空,则不会调整任何请求头部。

uniqueId

对象

uniqueId 描述了用于自定义 HTTP 头部的配置,该头部应由 Ingress 控制器注入到传入的 HTTP 请求中。通常,此头部配置为具有对 HTTP 请求唯一的的值。应用程序可以使用此头部,或将其包含在访问日志中,以方便跟踪单个 HTTP 请求。如果此字段为空,则不会将此类头部注入请求。

.spec.httpHeaders.actions

描述

actions 指定修改标头及其值的选项。请注意,此选项仅适用于明文 HTTP 连接以及 ingress 控制器终止加密(即边缘终止或重新加密连接)的安全 HTTP 连接。对于 TLS 直通连接,无法修改标头。不支持通过 actions 设置 HSTS (Strict-Transport-Security) 标头。Strict-Transport-Security 只能使用 "haproxy.router.openshift.io/hsts_header" 路由注释进行配置,并且只能根据 Ingress.Spec.RequiredHSTSPolicies 中指定的策略进行配置。此处定义的任何操作都将在与以下其他字段相关的任何操作之后应用:cache-control、spec.clientTLS、spec.httpHeaders.forwardedHeaderPolicy、spec.httpHeaders.uniqueId 和 spec.httpHeaders.headerNameCaseAdjustments。对于 HTTP 请求标头,路由上指定的 spec.httpHeaders.actions 中的操作将在 IngressController 的 spec.httpHeaders.actions 字段中指定的操作之后执行。对于 HTTP 响应标头,IngressController 上指定的 spec.httpHeaders.actions 中的操作将在路由的 spec.httpHeaders.actions 字段中指定的操作之后执行。使用此 API 设置的标头无法捕获以用于访问日志。以下标头名称是保留的,不能通过此 API 修改:Strict-Transport-Security、Proxy、Host、Cookie、Set-Cookie。请注意,**在**插入动态值**之后**所有净添加标头的总大小不得超过 IngressController 上 spec.tuningOptions.headerBufferMaxRewriteBytes 的值。有关更多详细信息,请参阅该 API 字段的文档。

类型

对象

属性 类型 描述

request

数组

request 是要修改的 HTTP 请求头部的列表。此处定义的操作将修改通过 Ingress 控制器的所有请求的请求头部。这些操作应用于所有路由,即应用于集群内定义的 Ingress 控制器处理的所有连接。请求头部的 IngressController 操作将在路由操作之前执行。目前,操作可以定义为设置删除头部值。操作按此列表中定义的顺序应用。最多可以配置 20 个请求头部操作。允许的示例提取器为 "req.hdr" 和 "ssl_c_der"。允许的转换器为 "lower" 和 "base64"。示例头部值:"%[req.hdr(X-target),lower]","%{+Q}[ssl_c_der,base64]"。

request[]

对象

IngressControllerHTTPHeader 指定用于设置或删除 HTTP 头部的配置。

response

数组

response 是要修改的 HTTP 响应头部的列表。此处定义的操作将修改通过 Ingress 控制器的所有请求的响应头部。这些操作应用于所有路由,即应用于集群内定义的 Ingress 控制器处理的所有连接。响应头部的 IngressController 操作将在路由操作之后执行。目前,操作可以定义为设置删除头部值。操作按此列表中定义的顺序应用。最多可以配置 20 个响应头部操作。允许的示例提取器为 "res.hdr" 和 "ssl_c_der"。允许的转换器为 "lower" 和 "base64"。示例头部值:"%[res.hdr(X-target),lower]","%{+Q}[ssl_c_der,base64]"。

response[]

对象

IngressControllerHTTPHeader 指定用于设置或删除 HTTP 头部的配置。

.spec.httpHeaders.actions.request

描述

request 是要修改的 HTTP 请求头部的列表。此处定义的操作将修改通过 Ingress 控制器的所有请求的请求头部。这些操作应用于所有路由,即应用于集群内定义的 Ingress 控制器处理的所有连接。请求头部的 IngressController 操作将在路由操作之前执行。目前,操作可以定义为设置删除头部值。操作按此列表中定义的顺序应用。最多可以配置 20 个请求头部操作。允许的示例提取器为 "req.hdr" 和 "ssl_c_der"。允许的转换器为 "lower" 和 "base64"。示例头部值:"%[req.hdr(X-target),lower]","%{+Q}[ssl_c_der,base64]"。

类型

数组

.spec.httpHeaders.actions.request[]

描述

IngressControllerHTTPHeader 指定用于设置或删除 HTTP 头部的配置。

类型

对象

必需
  • action

  • name

属性 类型 描述

action

对象

action 指定对头部执行的操作,例如设置或删除头部。

name

字符串

name 指定要对其执行操作的头的名称。其值必须是 RFC 2616 第 4.2 节中定义的有效 HTTP 头部名称。名称只能包含字母数字字符和以下特殊字符:"-!#$%&'*+.^_`"。以下头部名称是保留的,不能通过此 API 修改:Strict-Transport-Security、Proxy、Host、Cookie、Set-Cookie。其长度不得超过 255 个字符。头部名称必须唯一。

.spec.httpHeaders.actions.request[].action

描述

action 指定对头部执行的操作,例如设置或删除头部。

类型

对象

必需
  • type

属性 类型 描述

set

对象

set 指定如何设置 HTTP 头部。当类型为 Set 时,此字段是必需的,否则禁止使用。

type

字符串

type 定义要应用于头部的操作类型。可能的值为 Set 或 Delete。Set 允许您设置 HTTP 请求和响应头部。Delete 允许您删除 HTTP 请求和响应头部。

.spec.httpHeaders.actions.request[].action.set

描述

set 指定如何设置 HTTP 头部。当类型为 Set 时,此字段是必需的,否则禁止使用。

类型

对象

必需
  • value

属性 类型 描述

value

字符串

value 指定头部值。可以添加动态值。该值将被解释为 HAProxy 格式字符串,如http://cbonte.github.io/haproxy-dconv/2.6/configuration.html#8.2.6中所定义,并且可以使用 HAProxy 的 %[] 语法,否则必须是 https://datatracker.ietf.org/doc/html/rfc7230#section-3.2中定义的有效 HTTP 头部值。此字段的值长度不得超过 16384 个字符。请注意,**在**插入动态值后,所有净添加头部的总大小不得超过 IngressController 上的 `spec.tuningOptions.headerBufferMaxRewriteBytes` 的值。

.spec.httpHeaders.actions.response

描述

response 是要修改的 HTTP 响应头部的列表。此处定义的操作将修改通过 Ingress 控制器的所有请求的响应头部。这些操作应用于所有路由,即应用于集群内定义的 Ingress 控制器处理的所有连接。响应头部的 IngressController 操作将在路由操作之后执行。目前,操作可以定义为设置删除头部值。操作按此列表中定义的顺序应用。最多可以配置 20 个响应头部操作。允许的示例提取器为 "res.hdr" 和 "ssl_c_der"。允许的转换器为 "lower" 和 "base64"。示例头部值:"%[res.hdr(X-target),lower]","%{+Q}[ssl_c_der,base64]"。

类型

数组

.spec.httpHeaders.actions.response[]

描述

IngressControllerHTTPHeader 指定用于设置或删除 HTTP 头部的配置。

类型

对象

必需
  • action

  • name

属性 类型 描述

action

对象

action 指定对头部执行的操作,例如设置或删除头部。

name

字符串

name 指定要对其执行操作的头的名称。其值必须是 RFC 2616 第 4.2 节中定义的有效 HTTP 头部名称。名称只能包含字母数字字符和以下特殊字符:"-!#$%&'*+.^_`"。以下头部名称是保留的,不能通过此 API 修改:Strict-Transport-Security、Proxy、Host、Cookie、Set-Cookie。其长度不得超过 255 个字符。头部名称必须唯一。

.spec.httpHeaders.actions.response[].action

描述

action 指定对头部执行的操作,例如设置或删除头部。

类型

对象

必需
  • type

属性 类型 描述

set

对象

set 指定如何设置 HTTP 头部。当类型为 Set 时,此字段是必需的,否则禁止使用。

type

字符串

type 定义要应用于头部的操作类型。可能的值为 Set 或 Delete。Set 允许您设置 HTTP 请求和响应头部。Delete 允许您删除 HTTP 请求和响应头部。

.spec.httpHeaders.actions.response[].action.set

描述

set 指定如何设置 HTTP 头部。当类型为 Set 时,此字段是必需的,否则禁止使用。

类型

对象

必需
  • value

属性 类型 描述

value

字符串

value 指定头部值。可以添加动态值。该值将被解释为 HAProxy 格式字符串,如http://cbonte.github.io/haproxy-dconv/2.6/configuration.html#8.2.6中所定义,并且可以使用 HAProxy 的 %[] 语法,否则必须是 https://datatracker.ietf.org/doc/html/rfc7230#section-3.2中定义的有效 HTTP 头部值。此字段的值长度不得超过 16384 个字符。请注意,**在**插入动态值后,所有净添加头部的总大小不得超过 IngressController 上的 `spec.tuningOptions.headerBufferMaxRewriteBytes` 的值。

.spec.httpHeaders.uniqueId

描述

uniqueId 描述了用于自定义 HTTP 头部的配置,该头部应由 Ingress 控制器注入到传入的 HTTP 请求中。通常,此头部配置为具有对 HTTP 请求唯一的的值。应用程序可以使用此头部,或将其包含在访问日志中,以方便跟踪单个 HTTP 请求。如果此字段为空,则不会将此类头部注入请求。

类型

对象

属性 类型 描述

format

字符串

format 指定注入的 HTTP 头部值的格式。除非指定了 name,否则此字段无效。对于基于 HAProxy 的 Ingress 控制器实现,此格式使用与 HTTP 日志格式相同的语法。如果字段为空,则默认值为 "%{+X}o\\ %ci:%cp_%fi:%fp_%Ts_%rt:%pid";请参见相应的 HAProxy 文档:http://cbonte.github.io/haproxy-dconv/2.0/configuration.html#8.2.3

name

字符串

name 指定 Ingress 控制器应注入 HTTP 请求的 HTTP 头部名称(例如,“unique-id”)。该字段的值必须是 RFC 2616 第 4.2 节中定义的有效 HTTP 头部名称。如果该字段为空,则不注入任何头部。

.spec.logging

描述

logging 定义了应在何处记录什么的参数。如果此字段为空,则启用操作日志,但禁用访问日志。

类型

对象

属性 类型 描述

access

对象

access 描述了如何记录客户端请求。如果此字段为空,则禁用访问日志记录。

.spec.logging.access

描述

access 描述了如何记录客户端请求。如果此字段为空,则禁用访问日志记录。

类型

对象

必需
  • destination

属性 类型 描述

destination

对象

destination 指定访问日志的存储位置。

httpCaptureCookies

``

httpCaptureCookies 指定应在访问日志中捕获的 HTTP Cookie。如果此字段为空,则不捕获任何 Cookie。

httpCaptureHeaders

对象

httpCaptureHeaders 定义应在访问日志中捕获的 HTTP 头部。如果此字段为空,则不捕获任何头部。请注意,此选项仅适用于明文 HTTP 连接以及 Ingress 控制器终止加密的安全 HTTP 连接(即边缘终止或重新加密连接)。对于 TLS 直通连接,无法捕获头部。

httpLogFormat

字符串

httpLogFormat 指定 HTTP 请求的日志消息格式。如果此字段为空,则日志消息使用实现的默认 HTTP 日志格式。对于 HAProxy 的默认 HTTP 日志格式,请参见 HAProxy 文档:http://cbonte.github.io/haproxy-dconv/2.0/configuration.html#8.2.3 请注意,此格式仅适用于明文 HTTP 连接以及 Ingress 控制器终止加密的安全 HTTP 连接(即边缘终止或重新加密连接)。它不影响 TLS 直通连接的日志格式。

logEmptyRequests

字符串

logEmptyRequests 指定了如何记录未收到请求的连接。通常,这些空请求来自负载均衡器的健康探测或 Web 浏览器的推测性连接(“预连接”),在这种情况下,记录这些请求可能是不必要的。但是,这些请求也可能是由网络错误引起的,在这种情况下,记录空请求可能有助于诊断错误。此外,这些请求也可能是由端口扫描引起的,在这种情况下,记录空请求可能有助于检测入侵尝试。此字段允许的值为“Log”和“Ignore”。默认值为“Log”。

.spec.logging.access.destination

描述

destination 指定访问日志的存储位置。

类型

对象

必需
  • type

属性 类型 描述

container

对象

container 包含容器日志目标的参数。仅当类型为 Container 时才出现。

syslog

对象

syslog 包含 syslog 端点的参数。仅当类型为 Syslog 时才出现。

type

字符串

type 是日志目标的类型。它必须是以下之一:* Container Ingress 运算符在 Ingress 控制器 Pod 上配置名为“logs”的 sidecar 容器,并配置 Ingress 控制器将日志写入 sidecar。然后,日志可作为容器日志使用。预期管理员会配置一个自定义日志记录解决方案,从该 sidecar 读取日志。请注意,使用容器日志意味着如果日志速率超过容器运行时或自定义日志记录解决方案的容量,则日志可能会丢失。* Syslog 日志将发送到 syslog 端点。管理员必须指定一个可以接收 syslog 消息的端点。预期管理员已配置自定义 syslog 实例。

.spec.logging.access.destination.container

描述

container 包含容器日志目标的参数。仅当类型为 Container 时才出现。

类型

对象

属性 类型 描述

maxLength

整数

maxLength 是日志消息的最大长度。有效值为 480 到 8192(含)之间的整数。省略时,默认值为 1024。

.spec.logging.access.destination.syslog

描述

syslog 包含 syslog 端点的参数。仅当类型为 Syslog 时才出现。

类型

对象

必需
  • address

  • port

属性 类型 描述

address

字符串

address 是接收日志消息的 syslog 端点的 IP 地址。

facility

字符串

facility 指定日志消息的 syslog facility。如果此字段为空,则 facility 为“local1”。

maxLength

整数

maxLength 是日志消息的最大长度。有效值为 480 到 4096(含)之间的整数。省略时,默认值为 1024。

port

整数

port 是接收日志消息的 syslog 端点的 UDP 端口号。

.spec.logging.access.httpCaptureHeaders

描述

httpCaptureHeaders 定义应在访问日志中捕获的 HTTP 头部。如果此字段为空,则不捕获任何头部。请注意,此选项仅适用于明文 HTTP 连接以及 Ingress 控制器终止加密的安全 HTTP 连接(即边缘终止或重新加密连接)。对于 TLS 直通连接,无法捕获头部。

类型

对象

属性 类型 描述

request

``

request 指定要捕获的 HTTP 请求头。如果此字段为空,则不捕获任何请求头。

response

``

response 指定要捕获的 HTTP 响应头。如果此字段为空,则不捕获任何响应头。

.spec.namespaceSelector

描述

namespaceSelector 用于过滤 Ingress 控制器服务的命名空间集。这对于实现分片很有用。如果未设置,则默认为不进行过滤。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 关系。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,操作符为“In”,而 values 数组仅包含“value”。这些要求是 AND 关系。

.spec.namespaceSelector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 关系。

类型

数组

.spec.namespaceSelector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

operator 表示键与一组值的关系。有效操作符为 In、NotIn、Exists 和 DoesNotExist。

values

数组 (字符串)

values 是字符串值的数组。如果操作符为 In 或 NotIn,则 values 数组必须是非空的。如果操作符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并补丁期间会被替换。

.spec.nodePlacement

描述

nodePlacement 启用对 Ingress 控制器调度的显式控制。如果未设置,则使用默认值。有关详细信息,请参阅 NodePlacement。

类型

对象

属性 类型 描述

nodeSelector

对象

nodeSelector 是应用于 Ingress 控制器部署的节点选择器。如果设置了此选择器,则使用指定的选择器并替换默认选择器。如果未设置,则默认值取决于集群配置 cluster config.openshift.io/v1/ingresses 状态中的 defaultPlacement 字段的值。当 defaultPlacement 为 Workers 时,默认值为:kubernetes.io/os: linux node-role.kubernetes.io/worker: '' 当 defaultPlacement 为 ControlPlane 时,默认值为:kubernetes.io/os: linux node-role.kubernetes.io/master: '' 这些默认值可能会更改。请注意,不支持使用 nodeSelector.matchExpressions。只能使用 nodeSelector.matchLabels。这是 Kubernetes API 的一个限制:Pod 规范不允许对节点选择器使用复杂表达式。

tolerations

数组

tolerations 是应用于 Ingress 控制器部署的容忍度列表。默认值为空列表。参见 https://kubernetes.ac.cn/docs/concepts/configuration/taint-and-toleration/

tolerations[]

对象

此容忍度附加到的 Pod 容忍任何与三元组 匹配的污点,使用匹配操作符

.spec.nodePlacement.nodeSelector

描述

nodeSelector 是应用于 Ingress 控制器部署的节点选择器。如果设置了此选择器,则使用指定的选择器并替换默认选择器。如果未设置,则默认值取决于集群配置 cluster config.openshift.io/v1/ingresses 状态中的 defaultPlacement 字段的值。当 defaultPlacement 为 Workers 时,默认值为:kubernetes.io/os: linux node-role.kubernetes.io/worker: '' 当 defaultPlacement 为 ControlPlane 时,默认值为:kubernetes.io/os: linux node-role.kubernetes.io/master: '' 这些默认值可能会更改。请注意,不支持使用 nodeSelector.matchExpressions。只能使用 nodeSelector.matchLabels。这是 Kubernetes API 的一个限制:Pod 规范不允许对节点选择器使用复杂表达式。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 关系。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,操作符为“In”,而 values 数组仅包含“value”。这些要求是 AND 关系。

.spec.nodePlacement.nodeSelector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 关系。

类型

数组

.spec.nodePlacement.nodeSelector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

operator 表示键与一组值的关系。有效操作符为 In、NotIn、Exists 和 DoesNotExist。

values

数组 (字符串)

values 是字符串值的数组。如果操作符为 In 或 NotIn,则 values 数组必须是非空的。如果操作符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并补丁期间会被替换。

.spec.nodePlacement.tolerations

描述

tolerations 是应用于 Ingress 控制器部署的容忍度列表。默认值为空列表。参见 https://kubernetes.ac.cn/docs/concepts/configuration/taint-and-toleration/

类型

数组

.spec.nodePlacement.tolerations[]

描述

此容忍度附加到的 Pod 容忍任何与三元组 匹配的污点,使用匹配操作符

类型

对象

属性 类型 描述

effect

字符串

Effect 指示要匹配的污点效果。空表示匹配所有污点效果。如果指定,则允许的值为 NoSchedule、PreferNoSchedule 和 NoExecute。

key

字符串

Key 是容忍度应用到的污点键。空表示匹配所有污点键。如果键为空,则操作符必须为 Exists;此组合表示匹配所有值和所有键。

operator

字符串

Operator 表示键与值的关系。有效操作符为 Exists 和 Equal。默认为 Equal。Exists 等效于值的通配符,因此 Pod 可以容忍特定类别的所有污点。

tolerationSeconds

整数

TolerationSeconds 表示容忍度(必须为 NoExecute 效果,否则忽略此字段)容忍污点的持续时间。默认情况下,它未设置,这意味着永远容忍污点(不驱逐)。系统将把零和负值视为 0(立即驱逐)。

value

字符串

Value 是容忍度匹配到的污点值。如果操作符为 Exists,则值应为空,否则只是一个常规字符串。

.spec.routeAdmission

描述

routeAdmission 定义处理新的路由声明的策略(例如,允许或拒绝跨命名空间的声明)。如果为空,将应用默认值。有关其默认值的详细信息,请参阅具体的 routeAdmission 字段。

类型

对象

属性 类型 描述

namespaceOwnership

字符串

namespaceOwnership 描述了如何处理跨命名空间的主机名声明。值必须是以下之一:- Strict:不允许不同命名空间中的路由声明相同的主机。- InterNamespaceAllowed:允许路由跨命名空间声明相同主机名的不同路径。如果为空,则默认为 Strict。

wildcardPolicy

字符串

wildcardPolicy 描述了如何处理 Ingress 控制器中带有通配符策略的路由。WildcardPolicy 控制基于路由的通配符策略[1] 使用 Ingress 控制器公开的路由[1]。https://github.com/openshift/api/blob/master/route/v1/types.go 注意:将 WildcardPolicy 从 WildcardsAllowed 更新为 WildcardsDisallowed 将导致具有 Subdomain 通配符策略的已接收路由停止工作。这些路由必须更新为 None 通配符策略才能被 Ingress 控制器重新接收。WildcardPolicy 支持 WildcardsAllowed 和 WildcardsDisallowed 值。如果为空,则默认为“WildcardsDisallowed”。

.spec.routeSelector

描述

routeSelector 用于过滤 Ingress 控制器服务的路由集。这对于实现分片很有用。如果未设置,则默认为不进行过滤。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 关系。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,操作符为“In”,而 values 数组仅包含“value”。这些要求是 AND 关系。

.spec.routeSelector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 关系。

类型

数组

.spec.routeSelector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

operator 表示键与一组值的关系。有效操作符为 In、NotIn、Exists 和 DoesNotExist。

values

数组 (字符串)

values 是字符串值的数组。如果操作符为 In 或 NotIn,则 values 数组必须是非空的。如果操作符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并补丁期间会被替换。

.spec.tlsSecurityProfile

描述

tlsSecurityProfile 指定 Ingress 控制器的 TLS 连接设置。如果未设置,则默认值基于 apiservers.config.openshift.io/cluster 资源。请注意,当使用 Old、Intermediate 和 Modern 配置文件类型时,有效的配置文件配置可能会在版本之间发生更改。例如,给定一个在 X.Y.Z 版本上部署以使用 Intermediate 配置文件的规范,升级到 X.Y.Z+1 版本可能会导致新的配置文件配置应用于 Ingress 控制器,从而导致重新部署。

类型

对象

属性 类型 描述

custom

``

custom 是用户定义的 TLS 安全配置文件。使用自定义配置文件时要极其小心,因为无效的配置可能会造成灾难性后果。一个自定义配置文件示例如下所示:ciphers: - ECDHE-ECDSA-CHACHA20-POLY1305 - ECDHE-RSA-CHACHA20-POLY1305 - ECDHE-RSA-AES128-GCM-SHA256 - ECDHE-ECDSA-AES128-GCM-SHA256 minTLSVersion: VersionTLS11

intermediate

``

intermediate 是基于以下内容的 TLS 安全配置文件:https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28recommended.29,其外观如下 (yaml):ciphers: - TLS_AES_128_GCM_SHA256 - TLS_AES_256_GCM_SHA384 - TLS_CHACHA20_POLY1305_SHA256 - ECDHE-ECDSA-AES128-GCM-SHA256 - ECDHE-RSA-AES128-GCM-SHA256 - ECDHE-ECDSA-AES256-GCM-SHA384 - ECDHE-RSA-AES256-GCM-SHA384 - ECDHE-ECDSA-CHACHA20-POLY1305 - ECDHE-RSA-CHACHA20-POLY1305 - DHE-RSA-AES128-GCM-SHA256 - DHE-RSA-AES256-GCM-SHA384 minTLSVersion: VersionTLS12

modern

``

modern 是基于以下内容的 TLS 安全配置文件:https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility,其外观如下 (yaml):ciphers: - TLS_AES_128_GCM_SHA256 - TLS_AES_256_GCM_SHA384 - TLS_CHACHA20_POLY1305_SHA256 minTLSVersion: VersionTLS13

old

``

old 是基于以下内容的 TLS 安全配置文件:https://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility,其外观如下 (yaml):ciphers: - TLS_AES_128_GCM_SHA256 - TLS_AES_256_GCM_SHA384 - TLS_CHACHA20_POLY1305_SHA256 - ECDHE-ECDSA-AES128-GCM-SHA256 - ECDHE-RSA-AES128-GCM-SHA256 - ECDHE-ECDSA-AES256-GCM-SHA384 - ECDHE-RSA-AES256-GCM-SHA384 - ECDHE-ECDSA-CHACHA20-POLY1305 - ECDHE-RSA-CHACHA20-POLY1305 - DHE-RSA-AES128-GCM-SHA256 - DHE-RSA-AES256-GCM-SHA384 - DHE-RSA-CHACHA20-POLY1305 - ECDHE-ECDSA-AES128-SHA256 - ECDHE-RSA-AES128-SHA256 - ECDHE-ECDSA-AES128-SHA - ECDHE-RSA-AES128-SHA - ECDHE-ECDSA-AES256-SHA384 - ECDHE-RSA-AES256-SHA384 - ECDHE-ECDSA-AES256-SHA - ECDHE-RSA-AES256-SHA - DHE-RSA-AES128-SHA256 - DHE-RSA-AES256-SHA256 - AES128-GCM-SHA256 - AES256-GCM-SHA384 - AES128-SHA256 - AES256-SHA256 - AES128-SHA - AES256-SHA - DES-CBC3-SHA minTLSVersion: VersionTLS10

type

字符串

类型为 Old、Intermediate、Modern 或 Custom 之一。Custom 提供了指定单个 TLS 安全配置文件参数的能力。Old、Intermediate 和 Modern 是基于以下内容的 TLS 安全配置文件:https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations 这些配置文件是基于意图的,因此随着新密码的发展和发现现有密码不安全,它们可能会随着时间而改变。根据进程可用的精确密码,列表可能会减少。请注意,由于现代软件库尚未很好地采用 Modern 配置文件,因此当前不支持该配置文件。

.spec.tuningOptions

描述

tuningOptions 定义调整 Ingress 控制器 Pod 性能的参数。所有字段都是可选的,如果未设置,将使用其各自的默认值。有关详细信息,请参阅具体的 tuningOptions 字段。通常不建议设置 tuningOptions 中的字段。默认值适用于大多数配置。

类型

对象

属性 类型 描述

clientFinTimeout

字符串

clientFinTimeout 定义了在等待客户端响应服务器/后端关闭连接时连接保持打开的时间。如果未设置,则默认超时时间为 1 秒。

clientTimeout

字符串

clientTimeout 定义了在等待客户端响应时连接保持打开的时间。如果未设置,则默认超时时间为 30 秒。

connectTimeout

字符串

ConnectTimeout 定义了等待与服务器/后端连接尝试成功时的最大时间。此字段需要一个十进制数字的无符号持续时间字符串,每个数字都有可选的小数部分和单位后缀,例如“300ms”、“1.5h”或“2h45m”。有效的单位是“ns”、“us”(或“µs”U+00B5 或“μs”U+03BC)、“ms”、“s”、“m”、“h”。省略此项意味着用户没有意见,平台可以自行选择合理的默认值。此默认值会随着时间的推移而改变。当前默认值为 5 秒。

headerBufferBytes

整数

headerBufferBytes 描述了应为 IngressController 连接会话保留多少内存(以字节为单位)。请注意,如果为 IngressController 启用了 HTTP/2(https://tools.ietf.org/html/rfc7540),则此值必须至少为 16384。如果此字段为空,则 IngressController 将使用默认值 32768 字节。通常不建议设置此字段,因为 headerBufferBytes 值太小可能会破坏 IngressController,而 headerBufferBytes 值太大可能会导致 IngressController 使用的内存远超过必要。

headerBufferMaxRewriteBytes

整数

headerBufferMaxRewriteBytes 描述了应从 headerBufferBytes 中为 IngressController 连接会话的 HTTP 头重写和追加保留多少内存(以字节为单位)。请注意,传入的 HTTP 请求将限制为 (headerBufferBytes - headerBufferMaxRewriteBytes) 字节,这意味着 headerBufferBytes 必须大于 headerBufferMaxRewriteBytes。如果此字段为空,则 IngressController 将使用默认值 8192 字节。通常不建议设置此字段,因为 headerBufferMaxRewriteBytes 值太小可能会破坏 IngressController,而 headerBufferMaxRewriteBytes 值太大可能会导致 IngressController 使用的内存远超过必要。

healthCheckInterval

字符串

healthCheckInterval 定义了路由器在其配置的后端上两次连续健康检查之间等待的时间。此值作为所有路由的全局默认值应用,但可以通过路由注释“router.openshift.io/haproxy.health.check.interval”按路由覆盖。需要一个十进制数字的无符号持续时间字符串,每个数字都有可选的小数部分和单位后缀,例如“300ms”、“1.5h”或“2h45m”。有效的单位是“ns”、“us”(或“µs”U+00B5 或“μs”U+03BC)、“ms”、“s”、“m”、“h”。将其设置为小于 5 秒可能会由于过于频繁的 TCP 健康检查和伴随的 SYN 数据包风暴而导致流量过大。或者,将其设置得太高可能会由于后端服务器不再可用但尚未被检测到而导致延迟增加。空的或零 healthCheckInterval 表示没有意见,IngressController 将选择一个默认值,该值会随着时间的推移而改变。当前默认 healthCheckInterval 值为 5 秒。目前允许的最小值为 1 秒,最大允许值为 2147483647 毫秒(24.85 天)。两者都可能会随着时间的推移而改变。

maxConnections

整数

maxConnections 定义了每个 HAProxy 进程可以建立的最大并发连接数。增加此值允许每个 Ingress 控制器 Pod 处理更多连接,但代价是会消耗更多系统资源。允许的值为空、0、-1 和 2000-2000000 范围内的值。如果此字段为空或为 0,则 IngressController 将使用默认值 50000,但默认值可能会在将来的版本中更改。如果值为 -1,则 HAProxy 将根据运行容器中可用的 ulimit 动态计算最大值。选择 -1(即自动)将导致计算出一个较大的值(在 OpenShift >= 4.10 集群上约为 520000),因此每个 HAProxy 进程与当前的 50000 默认值相比,将占用大量的内存。设置大于当前操作系统限制的值将阻止 HAProxy 进程启动。如果您选择一个离散值(例如,750000),并且路由器 Pod 迁移到新节点,则无法保证该新节点具有相同的 ulimit 配置。在这种情况下,Pod 将无法启动。如果您具有配置不同 ulimit 的节点(例如,不同的 tuned 配置文件),并且您选择了一个离散值,则建议使用 -1 并让该值在运行时动态计算。您可以使用以下指标监控路由器容器的内存使用情况:'container_memory_working_set_bytes{container="router",namespace="openshift-ingress"}'。您可以使用以下指标监控路由器容器中各个 HAProxy 进程的内存使用情况:'container_memory_working_set_bytes{container="router",namespace="openshift-ingress"}/container_processes{container="router",namespace="openshift-ingress"}'。

reloadInterval

字符串

reloadInterval 定义了允许路由器重新加载以接受新更改的最小间隔。根据具体情况,增加此值可以防止 HAProxy 进程累积。在使用轮询负载均衡算法时,增加此间隔还可以减少后端服务器上的负载不均衡。或者,减小此值可以减少延迟,因为 HAProxy 配置的更新可以更快地生效。该值必须是时间持续时间值;请参见 https://pkg.go.dev/time#ParseDuration。当前,允许的最小值为 1s,允许的最大值为 120s。在将来的 OpenShift 版本中,允许的最小值和最大值可能会更改。请注意,如果提供了超出此范围的持续时间,则 reloadInterval 的值将被限制/截断,而不是被拒绝(例如,超过 120s 的持续时间将被限制为 120s;IngressController 不会拒绝并用默认值替换此不允许的值)。reloadInterval 的零值告诉 IngressController 选择默认值,当前为 5s,如有更改恕不另行通知。此字段需要一个无符号的十进制数字持续时间字符串,每个数字都有可选的小数部分和一个单位后缀,例如“300ms”、“1.5h”或“2h45m”。有效时间单位为“ns”、“us”(或“µs” U+00B5 或“μs” U+03BC)、“ms”、“s”、“m”、“h”。注意:设置远大于默认值 5s 的值可能会导致观察路由及其端点更新的延迟。HAProxy 的配置将更不频繁地重新加载,并且新创建的路由将不会被服务,直到后续重新加载。

serverFinTimeout

字符串

serverFinTimeout 定义了在等待服务器/后端响应客户端关闭连接时保持连接打开的时间。如果未设置,则默认超时时间为 1s。

serverTimeout

字符串

serverTimeout 定义了在等待服务器/后端响应时保持连接打开的时间。如果未设置,则默认超时时间为 30s。

threadCount

整数

threadCount 定义了每个 HAProxy 进程创建的线程数。创建更多线程允许每个 Ingress 控制器 Pod 处理更多连接,但代价是会使用更多系统资源。HAProxy 目前最多支持 64 个线程。如果此字段为空,则 IngressController 将使用默认值。当前默认值为 4 个线程,但这可能会在将来的版本中更改。通常不建议设置此字段。增加 HAProxy 线程数允许 Ingress 控制器 Pod 在负载下利用更多 CPU 时间,如果设置过高,可能会使其他 Pod 饿死。减少线程数可能会导致 Ingress 控制器性能下降。

tlsInspectDelay

字符串

tlsInspectDelay 定义了路由器可以保存数据以查找匹配路由的时间。设置得太短会导致路由器回退到边缘终止或重新加密路由的默认证书,即使可以使用更好的匹配证书也是如此。如果未设置,则默认检查延迟为 5s。

tunnelTimeout

字符串

tunnelTimeout 定义了隧道连接(包括 websocket)在空闲时保持打开的时间。如果未设置,则默认超时时间为 1h。

.status

描述

status 是 IngressController 最近观察到的状态。

类型

对象

属性 类型 描述

availableReplicas

整数

availableReplicas 是根据 Ingress 控制器部署观察到的可用副本数量。

conditions

数组

conditions 是条件及其状态的列表。Available 表示 Ingress 控制器部署可用并正在为路由和 Ingress 资源提供服务(即 .status.availableReplicas 等于 .spec.replicas)。还有其他条件指示其他 Ingress 控制器功能和能力的状态。* LoadBalancerManaged - 如果满足以下条件则为 True:* 端点发布策略需要服务负载均衡器。- 如果任何这些条件不满足,则为 False。* LoadBalancerReady - 如果满足以下条件则为 True:* 负载均衡器已管理。* 负载均衡器已准备好。- 如果任何这些条件不满足,则为 False。* DNSManaged - 如果满足以下条件则为 True:* 端点发布策略和平台支持 DNS。* Ingress 控制器域名已设置。* dns.config.openshift.io/cluster 配置 DNS 区域。- 如果任何这些条件不满足,则为 False。* DNSReady - 如果满足以下条件则为 True:* DNS 已管理。* DNS 记录已成功创建。- 如果任何这些条件不满足,则为 False。

conditions[]

对象

OperatorCondition 只是标准的条件字段。

domain

字符串

domain 是正在使用的实际域名。

endpointPublishingStrategy

对象

endpointPublishingStrategy 是正在使用的实际策略。

namespaceSelector

对象

namespaceSelector 是正在使用的实际 namespaceSelector。

observedGeneration

整数

observedGeneration 是观察到的最新一代。

routeSelector

对象

routeSelector 是正在使用的实际 routeSelector。

selector

字符串

selector 是字符串格式的标签选择器,用于与 IngressController 对应的 Ingress 控制器 Pod。匹配的 Pod 数量应等于 availableReplicas 的值。

tlsProfile

对象

tlsProfile 是生效的 TLS 连接配置。

.status.conditions

描述

conditions 是条件及其状态的列表。Available 表示 Ingress 控制器部署可用并正在为路由和 Ingress 资源提供服务(即 .status.availableReplicas 等于 .spec.replicas)。还有其他条件指示其他 Ingress 控制器功能和能力的状态。* LoadBalancerManaged - 如果满足以下条件则为 True:* 端点发布策略需要服务负载均衡器。- 如果任何这些条件不满足,则为 False。* LoadBalancerReady - 如果满足以下条件则为 True:* 负载均衡器已管理。* 负载均衡器已准备好。- 如果任何这些条件不满足,则为 False。* DNSManaged - 如果满足以下条件则为 True:* 端点发布策略和平台支持 DNS。* Ingress 控制器域名已设置。* dns.config.openshift.io/cluster 配置 DNS 区域。- 如果任何这些条件不满足,则为 False。* DNSReady - 如果满足以下条件则为 True:* DNS 已管理。* DNS 记录已成功创建。- 如果任何这些条件不满足,则为 False。

类型

数组

.status.conditions[]

描述

OperatorCondition 只是标准的条件字段。

类型

对象

必需
  • type

属性 类型 描述

lastTransitionTime

字符串

message

字符串

reason

字符串

status

字符串

type

字符串

.status.endpointPublishingStrategy

描述

endpointPublishingStrategy 是正在使用的实际策略。

类型

对象

必需
  • type

属性 类型 描述

hostNetwork

对象

hostNetwork 包含 HostNetwork 端点发布策略的参数。仅当类型为 HostNetwork 时才存在。

loadBalancer

对象

loadBalancer 包含负载均衡器的参数。仅当类型为 LoadBalancerService 时才存在。

nodePort

对象

nodePort 包含 NodePortService 端点发布策略的参数。仅当类型为 NodePortService 时才存在。

private

对象

private 包含 Private 端点发布策略的参数。仅当类型为 Private 时才存在。

type

字符串

type 指定使用的发布策略。有效值为:* LoadBalancerService 使用 Kubernetes LoadBalancer 服务发布 Ingress 控制器。在此配置中,Ingress 控制器部署使用容器网络。将创建一个 LoadBalancer 服务来发布部署。详情请见:https://kubernetes.ac.cn/docs/concepts/services-networking/service/#loadbalancer 如果设置了 domain,则将管理一个通配符 DNS 记录以指向 LoadBalancer 服务的外部名称。DNS 记录仅在由 dns.config.openshift.io/cluster .spec.publicZone 和 .spec.privateZone 定义的 DNS 区域中进行管理。通配符 DNS 管理目前仅在 AWS、Azure 和 GCP 平台上受支持。* HostNetwork 在部署 Ingress 控制器的节点端口上发布 Ingress 控制器。在此配置中,Ingress 控制器部署使用主机网络,绑定到节点端口 80 和 443。用户负责配置外部负载均衡器,通过节点端口发布 Ingress 控制器。* Private 不发布 Ingress 控制器。在此配置中,Ingress 控制器部署使用容器网络,并且没有显式发布。用户必须手动发布 Ingress 控制器。* NodePortService 使用 Kubernetes NodePort 服务发布 Ingress 控制器。在此配置中,Ingress 控制器部署使用容器网络。将创建一个 NodePort 服务来发布部署。具体的节点端口由 OpenShift 动态分配;但是,为了支持静态端口分配,对托管 NodePort 服务的 node port 字段的用户更改将被保留。

.status.endpointPublishingStrategy.hostNetwork

描述

hostNetwork 包含 HostNetwork 端点发布策略的参数。仅当类型为 HostNetwork 时才存在。

类型

对象

属性 类型 描述

httpPort

整数

httpPort 是主机上用于监听 HTTP 请求的端口。如果端口 80 已经被使用,则应设置此字段。该值不应与集群的 NodePort 范围重叠。当值为 0 或未指定时,默认为 80。

httpsPort

整数

httpsPort 是主机上用于监听 HTTPS 请求的端口。如果端口 443 已经被使用,则应设置此字段。该值不应与集群的 NodePort 范围重叠。当值为 0 或未指定时,默认为 443。

protocol

字符串

protocol 指定 IngressController 是否期望传入连接使用纯 TCP,或者 IngressController 是否期望 PROXY 协议。PROXY 协议可与支持它的负载均衡器一起使用,以便在将连接转发到 IngressController 时传达客户端连接的源地址。使用 PROXY 协议使 IngressController 能够报告这些源地址,而不是在 HTTP 头和日志中报告负载均衡器的地址。请注意,如果未使用使用 PROXY 协议将连接转发到 IngressController 的负载均衡器,则在 IngressController 上启用 PROXY 协议将导致连接失败。有关 PROXY 协议的信息,请参阅 http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt。此字段的有效值为:* 空字符串。* "TCP"。* "PROXY"。空字符串指定默认值,即不使用 PROXY 协议的 TCP。请注意,默认值可能会更改。

statsPort

整数

statsPort 是主机上发布路由器统计信息的端口。该值不应与集群的 NodePort 范围重叠。如果外部负载均衡器配置为将连接转发到此 IngressController,则负载均衡器应使用此端口进行运行状况检查。负载均衡器可以在给定节点上的此端口上发送 HTTP 探测,路径为 /healthz/ready,以确定 Ingress 控制器是否已准备好接收节点上的流量。为了正常运行,负载均衡器必须在运行状况检查报告就绪之前不将流量转发到节点。负载均衡器还应在 /healthz/ready 开始报告未就绪后最多 45 秒内停止转发请求。每 5 到 10 秒探测一次,超时时间为 5 秒,并且成功或失败请求的阈值为两个,才能分别变为健康或不健康,这些都是经过良好测试的值。当值为 0 或未指定时,默认为 1936。

.status.endpointPublishingStrategy.loadBalancer

描述

loadBalancer 包含负载均衡器的参数。仅当类型为 LoadBalancerService 时才存在。

类型

对象

必需
  • dnsManagementPolicy

  • scope

属性 类型 描述

allowedSourceRanges

``

allowedSourceRanges 指定应将对负载均衡器访问权限限制为的 IP 地址范围的白名单。每个范围必须使用 CIDR 表示法指定(例如,“10.0.0.0/8”或“fd00::/8”)。如果没有指定范围,则默认使用 IPv4 的“0.0.0.0/0”和 IPv6 的“::/0”,这允许所有源地址。为了便于从没有 allowedSourceRanges 字段的早期版本的 OpenShift 迁移,您可以在“openshift-ingress”命名空间中的“router-<ingresscontroller name>”服务上设置 service.beta.kubernetes.io/load-balancer-source-ranges 注解,如果 OpenShift 4.12 上的 allowedSourceRanges 为空,则此注解将生效。

dnsManagementPolicy

字符串

dnsManagementPolicy 指示与负载均衡器服务关联的通配符 DNS 记录的生命周期是否将由 Ingress 运算符管理。默认为 Managed。有效值为:Managed 和 Unmanaged。

providerParameters

对象

providerParameters 包含特定于底层基础架构提供程序的所需负载均衡器信息。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 providerParameters 字段。

scope

字符串

scope 指示负载均衡器公开的范围。可能的值为“External”和“Internal”。

.status.endpointPublishingStrategy.loadBalancer.providerParameters

描述

providerParameters 包含特定于底层基础架构提供程序的所需负载均衡器信息。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 providerParameters 字段。

类型

对象

必需
  • type

属性 类型 描述

aws

对象

aws 提供特定于 AWS 负载均衡器的配置设置。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 aws 字段。

gcp

对象

gcp 提供特定于 GCP 负载均衡器的配置设置。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 gcp 字段。

ibm

对象

ibm 提供特定于 IBM Cloud 负载均衡器的配置设置。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 ibm 字段。

type

字符串

type 是负载均衡器的底层基础架构提供程序。允许的值为“AWS”、“Azure”、“BareMetal”、“GCP”、“IBM”、“Nutanix”、“OpenStack”和“VSphere”。

.status.endpointPublishingStrategy.loadBalancer.providerParameters.aws

描述

aws 提供特定于 AWS 负载均衡器的配置设置。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 aws 字段。

类型

对象

必需
  • type

属性 类型 描述

classicLoadBalancer

对象

classicLoadBalancerParameters 包含 AWS 经典负载均衡器的配置参数。仅当 type 为 Classic 时才存在。

networkLoadBalancer

对象

networkLoadBalancerParameters 包含 AWS 网络负载均衡器的配置参数。仅当 type 为 NLB 时才存在。

type

字符串

type 是为 IngressController 实例化 AWS 负载均衡器的类型。有效值为:* "Classic":经典负载均衡器,在传输层(TCP/SSL)或应用层(HTTP/HTTPS)进行路由决策。更多详情请见:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/load-balancer-types.html#clb * "NLB":网络负载均衡器,在传输层(TCP/SSL)进行路由决策。更多详情请见:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/load-balancer-types.html#nlb

.status.endpointPublishingStrategy.loadBalancer.providerParameters.aws.classicLoadBalancer

描述

classicLoadBalancerParameters 包含 AWS 经典负载均衡器的配置参数。仅当 type 为 Classic 时才存在。

类型

对象

属性 类型 描述

connectionIdleTimeout

字符串

connectionIdleTimeout 指定连接在负载均衡器关闭连接之前可能处于空闲状态的最长时间段。该值必须可解析为时间持续时间值;请参见 https://pkg.go.dev/time#ParseDuration。空值或零值表示没有意见,在这种情况下将使用默认值。此字段的默认值为 60s。此默认值可能会更改。

subnets

对象

subnets 指定负载均衡器将附加到的子网。子网可以通过其 ID 或名称指定。子网总数限制为 10 个。为了使负载均衡器能够配置子网,每个子网都必须存在,每个子网都必须来自不同的可用区,并且必须重新创建负载均衡器服务才能获取新值。如果在规范中省略,则将为每个可用区自动发现子网。自动发现的子网不会在 IngressController 对象的状态中报告。

.status.endpointPublishingStrategy.loadBalancer.providerParameters.aws.classicLoadBalancer.subnets

描述

subnets 指定负载均衡器将附加到的子网。子网可以通过其 ID 或名称指定。子网总数限制为 10 个。为了使负载均衡器能够配置子网,每个子网都必须存在,每个子网都必须来自不同的可用区,并且必须重新创建负载均衡器服务才能获取新值。如果在规范中省略,则将为每个可用区自动发现子网。自动发现的子网不会在 IngressController 对象的状态中报告。

类型

对象

属性 类型 描述

ids

数组 (字符串)

ids 指定一个通过子网 ID 指定的 AWS 子网列表。子网 ID 必须以 "subnet-" 开头,只能包含字母数字字符,必须正好为 24 个字符长,必须唯一,并且通过 ids 和 names 指定的子网总数不得超过 10 个。

names

数组 (字符串)

names 指定一个通过子网名称指定的 AWS 子网列表。子网名称不能以 "subnet-" 开头,不能包含逗号,长度必须小于 256 个字符,必须唯一,并且通过 ids 和 names 指定的子网总数不得超过 10 个。

.status.endpointPublishingStrategy.loadBalancer.providerParameters.aws.networkLoadBalancer

描述

networkLoadBalancerParameters 包含 AWS 网络负载均衡器的配置参数。仅当 type 为 NLB 时才存在。

类型

对象

属性 类型 描述

eipAllocations

数组 (字符串)

eipAllocations 是分配给网络负载均衡器的弹性 IP (EIP) 地址的 ID 列表。适用以下限制:eipAllocations 只能与外部范围一起使用,不能与内部范围一起使用。一个 EIP 只能分配给单个 IngressController。EIP 分配的数量必须与用于负载均衡器的子网数量匹配。每个 EIP 分配都必须唯一。最多允许 10 个 EIP 分配。有关弹性 IP 地址的配置、特性和限制的一般信息,请参见 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html

subnets

对象

subnets 指定负载均衡器将附加到的子网。子网可以通过其 ID 或名称指定。子网总数限制为 10 个。为了使负载均衡器能够配置子网,每个子网都必须存在,每个子网都必须来自不同的可用区,并且必须重新创建负载均衡器服务才能获取新值。如果在规范中省略,则将为每个可用区自动发现子网。自动发现的子网不会在 IngressController 对象的状态中报告。

.status.endpointPublishingStrategy.loadBalancer.providerParameters.aws.networkLoadBalancer.subnets

描述

subnets 指定负载均衡器将附加到的子网。子网可以通过其 ID 或名称指定。子网总数限制为 10 个。为了使负载均衡器能够配置子网,每个子网都必须存在,每个子网都必须来自不同的可用区,并且必须重新创建负载均衡器服务才能获取新值。如果在规范中省略,则将为每个可用区自动发现子网。自动发现的子网不会在 IngressController 对象的状态中报告。

类型

对象

属性 类型 描述

ids

数组 (字符串)

ids 指定一个通过子网 ID 指定的 AWS 子网列表。子网 ID 必须以 "subnet-" 开头,只能包含字母数字字符,必须正好为 24 个字符长,必须唯一,并且通过 ids 和 names 指定的子网总数不得超过 10 个。

names

数组 (字符串)

names 指定一个通过子网名称指定的 AWS 子网列表。子网名称不能以 "subnet-" 开头,不能包含逗号,长度必须小于 256 个字符,必须唯一,并且通过 ids 和 names 指定的子网总数不得超过 10 个。

.status.endpointPublishingStrategy.loadBalancer.providerParameters.gcp

描述

gcp 提供特定于 GCP 负载均衡器的配置设置。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 gcp 字段。

类型

对象

属性 类型 描述

clientAccess

字符串

clientAccess 描述如何限制内部负载均衡器的客户端访问。有效值为:* "Global":指定具有全局客户端访问权限的内部负载均衡器允许 VPC 内任何区域的客户端与负载均衡器通信。https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing#global_access * "Local":指定具有本地客户端访问权限的内部负载均衡器意味着只有与 GCP 负载均衡器位于同一区域(和 VPC)中的客户端才能与负载均衡器通信。请注意,这是默认行为。https://cloud.google.com/load-balancing/docs/internal#client_access

.status.endpointPublishingStrategy.loadBalancer.providerParameters.ibm

描述

ibm 提供特定于 IBM Cloud 负载均衡器的配置设置。如果为空,则将应用默认值。有关其默认值的详细信息,请参阅具体的 ibm 字段。

类型

对象

属性 类型 描述

protocol

字符串

protocol 指定负载均衡器是否使用 PROXY 协议将连接转发到 IngressController。请参见 https://cloud.ibm.com/docs/containers?topic=containers-vpc-lbaas 中的 "service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "proxy-protocol""。PROXY 协议可与支持它的负载均衡器一起使用,以便在将连接转发到 IngressController 时传达客户端连接的源地址。使用 PROXY 协议使 IngressController 能够报告这些源地址,而不是在 HTTP 标头和日志中报告负载均衡器的地址。请注意,如果未使用使用 PROXY 协议将连接转发到 IngressController 的负载均衡器,则在 IngressController 上启用 PROXY 协议会导致连接失败。有关 PROXY 协议的信息,请参见 http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt。protocol 的有效值为 TCP、PROXY 和省略。省略时,表示无意见,平台将自行选择合理的默认值,该默认值可能会随着时间的推移而发生变化。当前默认值为 TCP,未启用代理协议。

.status.endpointPublishingStrategy.nodePort

描述

nodePort 包含 NodePortService 端点发布策略的参数。仅当类型为 NodePortService 时才存在。

类型

对象

属性 类型 描述

protocol

字符串

protocol 指定 IngressController 是否期望传入连接使用纯 TCP,或者 IngressController 是否期望 PROXY 协议。PROXY 协议可与支持它的负载均衡器一起使用,以便在将连接转发到 IngressController 时传达客户端连接的源地址。使用 PROXY 协议使 IngressController 能够报告这些源地址,而不是在 HTTP 头和日志中报告负载均衡器的地址。请注意,如果未使用使用 PROXY 协议将连接转发到 IngressController 的负载均衡器,则在 IngressController 上启用 PROXY 协议将导致连接失败。有关 PROXY 协议的信息,请参阅 http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt。此字段的有效值为:* 空字符串。* "TCP"。* "PROXY"。空字符串指定默认值,即不使用 PROXY 协议的 TCP。请注意,默认值可能会更改。

.status.endpointPublishingStrategy.private

描述

private 包含 Private 端点发布策略的参数。仅当类型为 Private 时才存在。

类型

对象

属性 类型 描述

protocol

字符串

protocol 指定 IngressController 是否期望传入连接使用纯 TCP,或者 IngressController 是否期望 PROXY 协议。PROXY 协议可与支持它的负载均衡器一起使用,以便在将连接转发到 IngressController 时传达客户端连接的源地址。使用 PROXY 协议使 IngressController 能够报告这些源地址,而不是在 HTTP 头和日志中报告负载均衡器的地址。请注意,如果未使用使用 PROXY 协议将连接转发到 IngressController 的负载均衡器,则在 IngressController 上启用 PROXY 协议将导致连接失败。有关 PROXY 协议的信息,请参阅 http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt。此字段的有效值为:* 空字符串。* "TCP"。* "PROXY"。空字符串指定默认值,即不使用 PROXY 协议的 TCP。请注意,默认值可能会更改。

.status.namespaceSelector

描述

namespaceSelector 是正在使用的实际 namespaceSelector。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 关系。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,操作符为“In”,而 values 数组仅包含“value”。这些要求是 AND 关系。

.status.namespaceSelector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 关系。

类型

数组

.status.namespaceSelector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

operator 表示键与一组值的关系。有效操作符为 In、NotIn、Exists 和 DoesNotExist。

values

数组 (字符串)

values 是字符串值的数组。如果操作符为 In 或 NotIn,则 values 数组必须是非空的。如果操作符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并补丁期间会被替换。

.status.routeSelector

描述

routeSelector 是正在使用的实际 routeSelector。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 关系。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,操作符为“In”,而 values 数组仅包含“value”。这些要求是 AND 关系。

.status.routeSelector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 关系。

类型

数组

.status.routeSelector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

operator 表示键与一组值的关系。有效操作符为 In、NotIn、Exists 和 DoesNotExist。

values

数组 (字符串)

values 是字符串值的数组。如果操作符为 In 或 NotIn,则 values 数组必须是非空的。如果操作符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并补丁期间会被替换。

.status.tlsProfile

描述

tlsProfile 是生效的 TLS 连接配置。

类型

对象

属性 类型 描述

密码套件

数组 (字符串)

密码套件用于指定在 TLS 握手期间协商的密码算法。操作员可以移除其操作数不支持的条目。例如,要使用 DES-CBC3-SHA (yaml): ciphers: - DES-CBC3-SHA

最小TLS版本

字符串

minTLSVersion 用于指定在 TLS 握手期间协商的 TLS 协议的最小版本。例如,要使用 TLS 版本 1.1、1.2 和 1.3 (yaml): minTLSVersion: VersionTLS11 注意:目前允许的最高 minTLSVersion 为 VersionTLS12

API 端点

提供以下 API 端点:

  • /apis/operator.openshift.io/v1/ingresscontrollers

    • GET:列出 IngressController 类型的对象

  • /apis/operator.openshift.io/v1/namespaces/{namespace}/ingresscontrollers

    • DELETE:删除 IngressController 集合

    • GET:列出 IngressController 类型的对象

    • POST:创建 IngressController

  • /apis/operator.openshift.io/v1/namespaces/{namespace}/ingresscontrollers/{name}

    • DELETE:删除 IngressController

    • GET:读取指定的 IngressController

    • PATCH:部分更新指定的 IngressController

    • PUT:替换指定的 IngressController

  • /apis/operator.openshift.io/v1/namespaces/{namespace}/ingresscontrollers/{name}/scale

    • GET:读取指定的 IngressController 的规模

    • PATCH:部分更新指定的 IngressController 的规模

    • PUT:替换指定的 IngressController 的规模

  • /apis/operator.openshift.io/v1/namespaces/{namespace}/ingresscontrollers/{name}/status

    • GET:读取指定的 IngressController 的状态

    • PATCH:部分更新指定的 IngressController 的状态

    • PUT:替换指定的 IngressController 的状态

/apis/operator.openshift.io/v1/ingresscontrollers

HTTP 方法

GET

描述

列出 IngressController 类型的对象

表 1. HTTP 响应
HTTP 代码 响应体

200 - OK

IngressControllerList 模式

401 - 未授权

/apis/operator.openshift.io/v1/namespaces/{namespace}/ingresscontrollers

HTTP 方法

DELETE

描述

删除 IngressController 集合

表 2. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出 IngressController 类型的对象

表 3. HTTP 响应
HTTP 代码 响应体

200 - OK

IngressControllerList 模式

401 - 未授权

HTTP 方法

POST

描述

创建 IngressController

表 4. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何静默从对象中删除的未知字段,并将忽略解码器遇到的所有重复字段中的最后一个字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 5. 主体参数
参数 类型 描述

主体

IngressController 模式

表 6. HTTP 响应
HTTP 代码 响应体

200 - OK

IngressController 模式

201 - 已创建

IngressController 模式

202 - 已接受

IngressController 模式

401 - 未授权

/apis/operator.openshift.io/v1/namespaces/{namespace}/ingresscontrollers/{name}

表 7. 全局路径参数
参数 类型 描述

name

字符串

IngressController 的名称

HTTP 方法

DELETE

描述

删除 IngressController

表 8. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 9. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 IngressController

表 10. HTTP 响应
HTTP 代码 响应体

200 - OK

IngressController 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 IngressController

表 11. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何静默从对象中删除的未知字段,并将忽略解码器遇到的所有重复字段中的最后一个字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 12. HTTP 响应
HTTP 代码 响应体

200 - OK

IngressController 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 IngressController

表 13. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何静默从对象中删除的未知字段,并将忽略解码器遇到的所有重复字段中的最后一个字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 14. 主体参数
参数 类型 描述

主体

IngressController 模式

表 15. HTTP 响应
HTTP 代码 响应体

200 - OK

IngressController 模式

201 - 已创建

IngressController 模式

401 - 未授权

/apis/operator.openshift.io/v1/namespaces/{namespace}/ingresscontrollers/{name}/scale

表 16. 全局路径参数
参数 类型 描述

name

字符串

IngressController 的名称

HTTP 方法

GET

描述

读取指定的 IngressController 的规模

表 17. HTTP 响应
HTTP 代码 响应体

200 - OK

Scale 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 IngressController 的规模

表 18. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何静默从对象中删除的未知字段,并将忽略解码器遇到的所有重复字段中的最后一个字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 19. HTTP 响应
HTTP 代码 响应体

200 - OK

Scale 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 IngressController 的规模

表 20. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何静默从对象中删除的未知字段,并将忽略解码器遇到的所有重复字段中的最后一个字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 21. 主体参数
参数 类型 描述

主体

Scale 模式

表 22. HTTP 响应
HTTP 代码 响应体

200 - OK

Scale 模式

201 - 已创建

Scale 模式

401 - 未授权

/apis/operator.openshift.io/v1/namespaces/{namespace}/ingresscontrollers/{name}/status

表 23. 全局路径参数
参数 类型 描述

name

字符串

IngressController 的名称

HTTP 方法

GET

描述

读取指定的 IngressController 的状态

表 24. HTTP 响应
HTTP 代码 响应体

200 - OK

IngressController 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 IngressController 的状态

表 25. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何静默从对象中删除的未知字段,并将忽略解码器遇到的所有重复字段中的最后一个字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 26. HTTP 响应
HTTP 代码 响应体

200 - OK

IngressController 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 IngressController 的状态

表 27. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何静默从对象中删除的未知字段,并将忽略解码器遇到的所有重复字段中的最后一个字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并出现 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 28. 主体参数
参数 类型 描述

主体

IngressController 模式

表 29. HTTP 响应
HTTP 代码 响应体

200 - OK

IngressController 模式

201 - 已创建

IngressController 模式

401 - 未授权