1.2. 安装 AWS Load Balancer Operator
您可以使用 OpenShift CLI (oc)安装 AWS Load Balancer Operator。使用 设置环境时使用的同一终端会话来安装 AWS Load Balancer Operator,以使用环境变量。
流程
为 AWS Load Balancer Operator 在集群中创建一个新项目:
oc new-project aws-load-balancer-operator
$ oc new-project aws-load-balancer-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为 AWS Load Balancer Operator 创建 AWS IAM 策略。
下载适当的 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$ curl -o ${SCRATCH}/operator-permission-policy.json https://raw.githubusercontent.com/openshift/aws-load-balancer-operator/refs/heads/main/hack/operator-permission-policy.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为 Operator 创建权限策略:
aws iam create-policy \ --policy-name aws-load-balancer-operator-policy \ --policy-document file://${SCRATCH}/operator-permission-policy.json \ --region ${REGION}$ aws iam create-policy \ --policy-name aws-load-balancer-operator-policy \ --policy-document file://${SCRATCH}/operator-permission-policy.json \ --region ${REGION}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 记录输出中的 Operator 策略 ARN。这个过程的其余部分称为
$OPERATOR_POLICY_ARN。
为 AWS Load Balancer Operator 创建 AWS IAM 角色:
为 Operator 角色创建信任策略:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用信任策略创建 Operator 角色:
aws iam create-role --role-name "${CLUSTER_NAME}-alb-operator" \ --assume-role-policy-document "file://${SCRATCH}/operator-trust-policy.json"$ aws iam create-role --role-name "${CLUSTER_NAME}-alb-operator" \ --assume-role-policy-document "file://${SCRATCH}/operator-trust-policy.json"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 记录输出中的 Operator 角色 ARN。这个过程的其余部分称为
$OPERATOR_ROLE_ARN。关联 Operator 角色和策略:
aws iam attach-role-policy --role-name "${CLUSTER_NAME}-alb-operator" \ --policy-arn $OPERATOR_POLICY_ARN$ aws iam attach-role-policy --role-name "${CLUSTER_NAME}-alb-operator" \ --policy-arn $OPERATOR_POLICY_ARNCopy to Clipboard Copied! Toggle word wrap Toggle overflow
通过创建
OperatorGroup和订阅来安装 AWS Load Balancer Operator:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 AWS Load Balancer Controller 创建 AWS IAM 策略。
下载适当的 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$ curl -o ${SCRATCH}/controller-permission-policy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.12.0/docs/install/iam_policy.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为 Controller 创建权限策略:
aws iam create-policy \ --region ${REGION} \ --policy-name aws-load-balancer-controller-policy \ --policy-document file://${SCRATCH}/controller-permission-policy.json$ aws iam create-policy \ --region ${REGION} \ --policy-name aws-load-balancer-controller-policy \ --policy-document file://${SCRATCH}/controller-permission-policy.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 记录输出中的 Controller 策略 ARN。这被称为此进程的其余部分的
$CONTROLLER_POLICY_ARN。
为 AWS Load Balancer Controller 创建 AWS IAM 角色:
为 Controller 角色创建信任策略:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用信任策略创建 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}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 Copied! Toggle word wrap Toggle overflow 记录输出中的 Controller 角色 ARN。这个过程的剩余部分被称为
$CONTROLLER_ROLE_ARN。关联 Controller 角色和策略:
aws iam attach-role-policy \ --role-name "${CLUSTER_NAME}-albo-controller" \ --policy-arn ${CONTROLLER_POLICY_ARN}$ aws iam attach-role-policy \ --role-name "${CLUSTER_NAME}-albo-controller" \ --policy-arn ${CONTROLLER_POLICY_ARN}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
部署 AWS Load Balancer Controller 实例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果在此处收到错误,等待一分钟并重试,这意味着 Operator 还没有完成安装。
确认 Operator 和 Controller pod 都在运行:
oc -n aws-load-balancer-operator get pods
$ oc -n aws-load-balancer-operator get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有看到类似如下的输出,请等待几分钟并重试。
输出示例
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
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 2m4sCopy to Clipboard Copied! Toggle word wrap Toggle overflow