28.8. 使用负载均衡器允许的源范围配置集群入口流量

您可以为 IngressController 指定 IP 地址范围列表。这限制了在 endpointPublishingStrategyLoadBalancerService 时访问负载均衡器服务。

28.8.1. 配置负载均衡器允许的源范围

您可以启用并配置 spec.endpointPublishingStrategy.loadBalancer.allowedSourceRanges 字段。通过配置负载均衡器允许的源范围,您可以将 Ingress Controller 的负载均衡器的访问限制为指定的 IP 地址范围列表。Ingress Operator 协调负载均衡器服务,并根据 AllowedSourceRanges 设置 spec.loadBalancerSourceRanges 字段。

注意

如果您已经在 OpenShift Container Platform 的早期版本中设置了 spec.loadBalancerSourceRanges 字段或负载均衡器服务 anotation service.beta.kubernetes.io/load-balancer-source-ranges,Ingress Controller 会在升级后开始报告 Progressing=True。要解决这个问题,请设置覆盖 spec.loadBalancerSourceRanges 字段的 AllowedSourceRanges 字段,并清除 service.beta.kubernetes.io/load-balancer-source-ranges 注解。Ingress Controller 再次开始报告 Progressing=False

先决条件

  • 您需要在正在运行的集群中部署了 Ingress Controller。

流程

  • 运行以下命令,为 Ingress Controller 设置允许的源范围 API:

    $ oc -n openshift-ingress-operator patch ingresscontroller/default \
        --type=merge --patch='{"spec":{"endpointPublishingStrategy": \
        {"loadBalancer":{"allowedSourceRanges":["0.0.0.0/0"]}}}}' 1
    1
    示例值 0.0.0.0/0 指定允许的源范围。

28.8.2. 迁移到允许的源范围

如果您已经设置了注解 service.beta.kubernetes.io/load-balancer-source-ranges,您可以迁移到允许负载均衡器的源范围。当您设置 AllowedSourceRanges 时,Ingress Controller 根据 AllowedSourceRanges 值设置 spec.loadBalancerSourceRanges 字段,并取消设置 service.beta.kubernetes.io/load-balancer-source-ranges 注解。

注意

如果您已经在 OpenShift Container Platform 的早期版本中设置了 spec.loadBalancerSourceRanges 字段或负载均衡器服务 anotation service.beta.kubernetes.io/load-balancer-source-ranges,Ingress Controller 会在升级后开始报告 Progressing=True。要解决这个问题,请设置覆盖 spec.loadBalancerSourceRanges 字段的 AllowedSourceRanges 字段,并清除 service.beta.kubernetes.io/load-balancer-source-ranges 注解。Ingress Controller 再次开始报告 Progressing=False

先决条件

  • 您已设置了 service.beta.kubernetes.io/load-balancer-source-ranges 注解。

流程

  1. 确保设置了 service.beta.kubernetes.io/load-balancer-source-ranges

    $ oc get svc router-default -n openshift-ingress -o yaml

    输出示例

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/load-balancer-source-ranges: 192.168.0.1/32

  2. 确保 spec.loadBalancerSourceRanges 字段未设置:

    $ oc get svc router-default -n openshift-ingress -o yaml

    输出示例

    ...
    spec:
      loadBalancerSourceRanges:
      - 0.0.0.0/0
    ...

  3. 将集群更新至 OpenShift Container Platform 4.12。
  4. 运行以下命令,为 ingresscontroller 设置允许的源范围 API:

    $ oc -n openshift-ingress-operator patch ingresscontroller/default \
        --type=merge --patch='{"spec":{"endpointPublishingStrategy": \
        {"loadBalancer":{"allowedSourceRanges":["0.0.0.0/0"]}}}}' 1
    1
    示例值 0.0.0.0/0 指定允许的源范围。

28.8.3. 其他资源