5.2. Ingress 控制器配置参数

ingresscontrollers.operator.openshift.io 资源提供了以下配置参数。

参数描述

domain

domain 是 Ingress controller 服务的一个 DNS 名称,用于配置多个功能:

  • 对于 LoadBalancerService 端点发布策略,domain 被用来配置 DNS 记录。请参阅 endpointPublishingStrategy
  • 当使用生成的默认证书时,该证书对及其子域有效。请参阅 defaultCertificate
  • 该值会发布到独立的 Route 状态,以便用户了解目标外部 DNS 记录的位置。

一个 domain 值在所有 Ingress 控制器中需要是唯一的,且不能更新。

如果为空,默认值为 ingress.config.openshift.io/cluster .spec.domain

replicas

replicas 是 Ingress 控制器副本数量。如果没有设置,则默认值为 2

endpointPublishingStrategy

endpointPublishingStrategy 用于向其他网络发布 Ingress Controller 端点,以启用负载均衡器集成,并提供对其他系统的访问。

如果没有设置,则默认值基于 infrastructure.config.openshift.io/cluster .status.platform

  • AWS: LoadBalancerService (具有外部范围)
  • Azure: LoadBalancerService (具有外部范围)
  • GCP: LoadBalancerService (具有外部范围)
  • 其它: HostNetwork

endpointPublishingStrategy 的值不能被更新。

defaultCertificate

defaultCertificate 的值是一个到包括由 Ingress controller 提供的默认证书的 secret 的指代。当 Routes 没有指定其自身证书时,使用 defaultCertificate

secret 必须包含以下密钥和数据:* tls.crt:证书文件内容 * tls.key:密钥文件内容

如果没有设置,则自动生成和使用通配符证书。该证书对 Ingress Controller 的子域有效,所生成的证书的 CA 会自动与集群的信任存储集成。

内部证书(无论是生成的证书还是用户指定的证书)自动与 OpenShift Container Platform 内置的 OAuth 服务器集成。

namespaceSelector

namespaceSelector 用来过滤由 Ingress 控制器提供服务的一组命名空间。这对实现分片(shard)非常有用。

routeSelector

routeSelector 用于由 Ingress 控制器提供服务的一组 Route。这对实现分片(shard)非常有用。

nodePlacement

nodePlacement 启用对 Ingress 控制器调度的明确控制。

如果没有设置,则使用默认值。

注意

nodePlacement 参数包括两个部分: nodeSelectortolerations。例如:

nodePlacement:
 nodeSelector:
   matchLabels:
     beta.kubernetes.io/os: linux
 tolerations:
 - effect: NoSchedule
   operator: Exists
注意

所有参数都是可选的。

5.2.1. Ingress 控制器端点发布策略

带有 HostNetwork 端点发布策略的 Ingress 控制器每个节点只能有一个 Pod 副本。如果您想要 n 个副本,则必须至少使用可调度这些副本的 n 个节点。因为每个 Pod 副本都会通过调度的节点主机上的端口 80443 进行请求,所以如果同一节点上的其他 Pod 使用这些端口,则无法将副本调度到该节点。