22.3. 安装 AWS Load Balancer Operator


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

22.3.1. 使用 Web 控制台安装 AWS Load Balancer Operator

您可以使用 Web 控制台安装 AWS Load Balancer Operator。

先决条件

  • 已作为具有 cluster-admin 权限的用户身份登录 OpenShift Container Platform Web 控制台。
  • 集群被配置为使用 AWS 作为平台类型和云供应商。
  • 如果您使用安全令牌服务(STS)或用户置备的基础架构,请按照相关的准备步骤操作。例如,如果您使用 AWS 安全令牌服务,请参阅使用 AWS 安全令牌服务(STS) "在集群中准备 AWS Load Balancer Operator"。

流程

  1. 在 OpenShift Container Platform Web 控制台中进入 Operators OperatorHub
  2. 选择 AWS Load Balancer Operator。您可以使用 Filter by keyword 文本框,或者使用过滤器列表从 Operator 列表搜索 AWS Load Balancer Operator。
  3. 选择 aws-load-balancer-operator 命名空间。
  4. Install Operator 页面中,选择以下选项:

    1. 更新频道stable-v1
    2. 安装模式All namespaces on the cluster (default)
    3. Installed Namespaceaws-load-balancer-operator。如果 aws-load-balancer-operator 命名空间不存在,它会在 Operator 安装过程中创建。
    4. 选择 Update approvalAutomaticManual。默认情况下,Update approval 设置为 Automatic。如果选择自动更新,Operator Lifecycle Manager(OLM)将自动升级 Operator 的运行实例,而无需任何干预。如果选择手动更新,OLM 将创建一个更新请求。作为集群管理员,您必须手动批准该更新请求,以便将 Operator 更新至新版本。
  5. Install

验证

  • 在 Installed Operators 仪表板中验证 AWS Load Balancer Operator 的 Status 显示为 Succeeded

22.3.2. 使用 CLI 安装 AWS Load Balancer Operator

您可以使用 CLI 安装 AWS Load Balancer Operator。

先决条件

  • 以具有 cluster-admin 权限的用户身份登录 OpenShift Container Platform Web 控制台。
  • 集群被配置为使用 AWS 作为平台类型和云供应商。
  • 已登陆到 OpenShift CLI (oc)。

流程

  1. 创建一个 Namespace 对象:

    1. 创建定义 Namespace 对象的 YAML 文件:

      namespace.yaml 文件示例

      apiVersion: v1
      kind: Namespace
      metadata:
        name: aws-load-balancer-operator

    2. 运行以下命令来创建 Namespace 对象:

      $ oc apply -f namespace.yaml
  2. 创建 CredentialsRequest 对象:

    1. 创建定义 CredentialsRequest 对象的 YAML 文件:

      credentialsrequest.yaml 文件示例

      apiVersion: cloudcredential.openshift.io/v1
      kind: CredentialsRequest
      metadata:
        name: aws-load-balancer-operator
        namespace: openshift-cloud-credential-operator
      spec:
        providerSpec:
          apiVersion: cloudcredential.openshift.io/v1
          kind: AWSProviderSpec
          statementEntries:
            - action:
                - ec2:DescribeSubnets
              effect: Allow
              resource: "*"
            - action:
                - ec2:CreateTags
                - ec2:DeleteTags
              effect: Allow
              resource: arn:aws:ec2:*:*:subnet/*
            - action:
                - ec2:DescribeVpcs
              effect: Allow
              resource: "*"
        secretRef:
          name: aws-load-balancer-operator
          namespace: aws-load-balancer-operator
        serviceAccountNames:
          - aws-load-balancer-operator-controller-manager

    2. 运行以下命令来创建 CredentialsRequest 对象:

      $ oc apply -f credentialsrequest.yaml
  3. 创建一个 OperatorGroup 对象:

    1. 创建定义 OperatorGroup 对象的 YAML 文件:

      operatorgroup.yaml 文件示例

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: aws-lb-operatorgroup
        namespace: aws-load-balancer-operator
      spec:
        upgradeStrategy: Default

    2. 运行以下命令来创建 OperatorGroup 对象:

      $ oc apply -f operatorgroup.yaml
  4. 创建 Subscription 对象:

    1. 创建定义 Subscription 对象的 YAML 文件:

      subscription.yaml 文件示例

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: aws-load-balancer-operator
        namespace: aws-load-balancer-operator
      spec:
        channel: stable-v1
        installPlanApproval: Automatic
        name: aws-load-balancer-operator
        source: redhat-operators
        sourceNamespace: openshift-marketplace

    2. 运行以下命令来创建 Subscription 对象:

      $ oc apply -f subscription.yaml

验证

  1. 从订阅中获取安装计划的名称:

    $ oc -n aws-load-balancer-operator \
        get subscription aws-load-balancer-operator \
        --template='{{.status.installplan.name}}{{"\n"}}'
  2. 检查安装计划的状态:

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

    输出必须是 Complete

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.