1.2. 安装 AWS Load Balancer Operator


您可以使用 OpenShift CLI (oc)安装 AWS Load Balancer Operator。使用 设置环境时使用的同一终端会话来安装 AWS Load Balancer Operator,以使用环境变量。

流程

  1. 为 AWS Load Balancer Operator 在集群中创建一个新项目:

    $ oc new-project aws-load-balancer-operator
    Copy to Clipboard Toggle word wrap
  2. 为 AWS Load Balancer Operator 创建 AWS IAM 策略。

    1. 下载适当的 IAM 策略:

      $ curl -o ${SCRATCH}/operator-permission-policy.json https://raw.githubusercontent.com/openshift/aws-load-balancer-operator/refs/heads/main/hack/operator-permission-policy.json
      Copy to Clipboard Toggle word wrap
    2. 为 Operator 创建权限策略:

      $ aws iam create-policy \
              --policy-name aws-load-balancer-operator-policy \
              --policy-document file://${SCRATCH}/operator-permission-policy.json \
              --region ${REGION}
      Copy to Clipboard Toggle word wrap

      记录输出中的 Operator 策略 ARN。这个过程的其余部分称为 $OPERATOR_POLICY_ARN

  3. 为 AWS Load Balancer Operator 创建 AWS IAM 角色:

    1. 为 Operator 角色创建信任策略:

      $ cat <<EOF > "${SCRATCH}/operator-trust-policy.json"
      {
       "Version": "2012-10-17",
       "Statement": [
       {
       "Effect": "Allow",
       "Condition": {
         "StringEquals" : {
           "${OIDC_ENDPOINT}:sub": ["system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-operator-controller-manager", "system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-controller-cluster"]
         }
       },
       "Principal": {
         "Federated": "arn:aws:iam::${AWS_ACCOUNT_ID}:oidc-provider/${OIDC_ENDPOINT}"
       },
       "Action": "sts:AssumeRoleWithWebIdentity"
       }
       ]
      }
      EOF
      Copy to Clipboard Toggle word wrap
    2. 使用信任策略创建 Operator 角色:

      $ aws iam create-role --role-name "${CLUSTER_NAME}-alb-operator" \
          --assume-role-policy-document "file://${SCRATCH}/operator-trust-policy.json"
      Copy to Clipboard Toggle word wrap

      记录输出中的 Operator 角色 ARN。这个过程的其余部分称为 $OPERATOR_ROLE_ARN

    3. 关联 Operator 角色和策略:

      $ aws iam attach-role-policy --role-name "${CLUSTER_NAME}-alb-operator" \
          --policy-arn $OPERATOR_POLICY_ARN
      Copy to Clipboard Toggle word wrap
  4. 通过创建 OperatorGroup订阅 来安装 AWS Load Balancer Operator:

    $ cat <<EOF | oc apply -f -
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: aws-load-balancer-operator
      namespace: aws-load-balancer-operator
    spec:
      targetNamespaces: []
    ---
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: aws-load-balancer-operator
      namespace: aws-load-balancer-operator
    spec:
      channel: stable-v1
      name: aws-load-balancer-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace
      config:
        env:
        - name: ROLEARN
          value: "${OPERATOR_ROLE_ARN}"
    EOF
    Copy to Clipboard Toggle word wrap
  5. 为 AWS Load Balancer Controller 创建 AWS IAM 策略。

    1. 下载适当的 IAM 策略:

      $ curl -o ${SCRATCH}/controller-permission-policy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.12.0/docs/install/iam_policy.json
      Copy to Clipboard Toggle word wrap
    2. 为 Controller 创建权限策略:

      $ aws iam create-policy \
          --region ${REGION} \
          --policy-name aws-load-balancer-controller-policy \
          --policy-document file://${SCRATCH}/controller-permission-policy.json
      Copy to Clipboard Toggle word wrap

      记录输出中的 Controller 策略 ARN。这被称为此进程的其余部分的 $CONTROLLER_POLICY_ARN

  6. 为 AWS Load Balancer Controller 创建 AWS IAM 角色:

    1. 为 Controller 角色创建信任策略:

      $ cat <<EOF > ${SCRATCH}/controller-trust-policy.json
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
                "Federated": "arn:aws:iam::${AWS_ACCOUNT_ID}:oidc-provider/${OIDC_ENDPOINT}"
              },
              "Action": "sts:AssumeRoleWithWebIdentity",
              "Condition": {
                "StringEquals": {
                  "${OIDC_ENDPOINT}:sub": "system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-controller-cluster"
                  }
              }
            }
          ]
        }
      EOF
      Copy to Clipboard Toggle word wrap
    2. 使用信任策略创建 Controller 角色:

      CONTROLLER_ROLE_ARN=$(aws iam create-role --role-name "${CLUSTER_NAME}-albo-controller" \ --assume-role-policy-document "file://${SCRATCH}/controller-trust-policy.json" \ --query Role.Arn --output text) echo ${CONTROLLER_ROLE_ARN}
      Copy to Clipboard Toggle word wrap

      记录输出中的 Controller 角色 ARN。这个过程的剩余部分被称为 $CONTROLLER_ROLE_ARN

    3. 关联 Controller 角色和策略:

      $ aws iam attach-role-policy \
          --role-name "${CLUSTER_NAME}-albo-controller" \
          --policy-arn ${CONTROLLER_POLICY_ARN}
      Copy to Clipboard Toggle word wrap
  7. 部署 AWS Load Balancer Controller 实例:

    $ cat << EOF | oc apply -f -
    apiVersion: networking.olm.openshift.io/v1
    kind: AWSLoadBalancerController
    metadata:
     name: cluster
    spec:
     credentialsRequestConfig:
       stsIAMRoleARN: ${CONTROLLER_ROLE_ARN}
    EOF
    Copy to Clipboard Toggle word wrap
    注意

    如果在此处收到错误,等待一分钟并重试,这意味着 Operator 还没有完成安装。

  8. 确认 Operator 和 Controller pod 都在运行:

    $ oc -n aws-load-balancer-operator get pods
    Copy to Clipboard Toggle word wrap

    如果没有看到类似如下的输出,请等待几分钟并重试。

    输出示例

    NAME                                                             READY   STATUS    RESTARTS   AGE
    aws-load-balancer-controller-cluster-6ddf658785-pdp5d            1/1     Running   0          99s
    aws-load-balancer-operator-controller-manager-577d9ffcb9-w6zqn   2/2     Running   0          2m4s
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat