21.2. OpenShift Container Platform 中的 AWS Load Balancer Operator


AWS Load Balancer Operator 部署和管理 AWS Load Balancer Controller。您可以使用 OpenShift Container Platform Web 控制台或 CLI 安装来自 OperatorHub 的 AWS Load Balancer Operator。

21.2.1. AWS Load Balancer Operator 的注意事项

在安装和使用 AWS Load Balancer Operator 前查看以下限制:

  • IP 流量模式仅适用于 AWS Elastic Kubernetes Service (EKS)。AWS Load Balancer Operator 禁用 AWS Load Balancer Controller 的 IP 流量模式。禁用 IP 流量模式后,AWS Load Balancer Controller 无法使用 pod 就绪度。
  • AWS Load Balancer Operator 将命令行标记(如 --disable-ingress-class-annotation--disable-ingress-group-name-annotation )添加到 AWS Load Balancer Controller。因此,AWS Load Balancer Operator 不允许在 Ingress 资源中使用 kubernetes.io/ingress.classalb.ingress.kubernetes.io/group.name 注解。
  • 您已配置了 AWS Load Balancer Operator,使 SVC 类型是 NodePort (而不是 LoadBalancerClusterIP)。

21.2.2. AWS Load Balancer Operator

如果缺少 kubernetes.io/role/elb 标签,AWS Load Balancer Operator 可以标记公共子网。另外,AWS Load Balancer Operator 从底层 AWS 云检测到以下信息:

  • 托管 Operator 的集群的虚拟私有云 (VPC) 的 ID。
  • 发现 VPC 的公共和私有子网。

AWS Load Balancer Operator 支持类型为 LoadBalancer 的 Kubernetes 服务资源,使用只有 instance 目标类型的 Network Load Balancer (NLB)。

流程

  1. 您可以通过运行以下命令来创建 Subscription 对象,以按需部署 AWS Load Balancer Operator:

    $ oc -n aws-load-balancer-operator get sub aws-load-balancer-operator --template='{{.status.installplan.name}}{{"\n"}}'

    输出示例

    install-zlfbt

  2. 运行以下命令,检查安装计划的状态是否为 Complete

    $ oc -n aws-load-balancer-operator get ip <install_plan_name> --template='{{.status.phase}}{{"\n"}}'

    输出示例

    Complete

  3. 运行以下命令,查看 aws-load-balancer-operator-controller-manager 部署的状态:

    $ oc get -n aws-load-balancer-operator deployment/aws-load-balancer-operator-controller-manager

    输出示例

    NAME                                           READY     UP-TO-DATE   AVAILABLE   AGE
    aws-load-balancer-operator-controller-manager  1/1       1            1           23h

21.2.3. 在 AWS VPC 集群中使用 AWS Load Balancer Operator 扩展至 Outpost

您可以配置 AWS Load Balancer Operator,以便在 AWS VPC 集群中置备 AWS Application Load Balancer。AWS Outposts 不支持 AWS Network Load Balancers。因此,AWS Load Balancer Operator 无法在 Outpost 中置备 Network Load Balancers。

您可以在云子网或 Outpost 子网中创建 AWS Application Load Balancer。云中的 Application Load Balancer 可以附加到基于云的计算节点,而 Outpost 中的 Application Load Balancer 可以附加到边缘计算节点。您必须使用 Outpost 子网或 VPC 子网来注解 Ingress 资源,但不能同时注解两者。

先决条件

  • 您已将 AWS VPC 集群扩展到 Outpost。
  • 已安装 OpenShift CLI(oc)。
  • 已安装 AWS Load Balancer Operator 并创建了 AWS Load Balancer Controller。

流程

  • Ingress 资源配置为使用指定的子网:

    Ingress 资源配置示例

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: <application_name>
      annotations:
        alb.ingress.kubernetes.io/subnets: <subnet_id> 1
    spec:
      ingressClassName: alb
      rules:
        - http:
            paths:
              - path: /
                pathType: Exact
                backend:
                  service:
                    name: <application_name>
                    port:
                      number: 80

    1
    指定要使用的子网。
    • 要在 Outpost 中使用 Application Load Balancer,请指定 Outpost 子网 ID。
    • 要在云中使用 Application Load Balancer,您必须在不同的可用区中指定至少两个子网。

21.2.4. AWS Load Balancer Operator 日志

您可以使用 oc logs 命令查看 AWS Load Balancer Operator 日志。

流程

  • 运行以下命令,查看 AWS Load Balancer Operator 的日志:

    $ oc logs -n aws-load-balancer-operator deployment/aws-load-balancer-operator-controller-manager -c manager
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.