帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
本主题介绍如何从已弃用的控制器版本迁移。更具体地说,是介绍如何移除 AWS 负载均衡器控制器的已弃用版本。
-
已弃用的版本无法升级。必须先将其移除,然后再安装当前版本。
-
已弃用的版本包括:
-
适用于 Kubernetes 的 AWS ALB 入口控制器(简称“入口控制器”),是 AWS 负载均衡器控制器的前身。
-
任何
0.1.
版本的 AWS 负载均衡器控制器x
-
移除已弃用的控制器版本
注意
您可能已经使用 Helm 安装了已弃用的版本,或者使用 Kubernetes 清单手动安装了该版本。使用原来安装它的工具完成该过程。
-
如果您安装了
incubator/aws-alb-ingress-controller
Helm 图表,请将其卸载。helm delete aws-alb-ingress-controller -n kube-system
-
如果安装了
eks-charts/aws-load-balancer-controller
图表的0.1.
版本,请将其卸载。由于与 Webhook API 版本不兼容,从x
0.1.
升级到版本x
1.0.0
不起作用。helm delete aws-load-balancer-controller -n kube-system
-
检查当前是否安装了该控制器。
kubectl get deployment -n kube-system alb-ingress-controller
这是未安装控制器情况下的输出。
Error from server (NotFound): deployments.apps "alb-ingress-controller" not found
这是安装了控制器情况下的输出。
NAME READY UP-TO-DATE AVAILABLE AGE alb-ingress-controller 1/1 1 1 122d
-
输入以下命令以删除控制器。
kubectl delete -f https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.8/docs/examples/alb-ingress-controller.yaml kubectl delete -f https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.8/docs/examples/rbac-role.yaml
迁移到 AWS 负载均衡器控制器
要从适用于 Kubernetes 的 ALB 入口控制器迁移到 AWS 负载均衡器控制器,您需要:
-
移除 ALB 入口控制器(请参阅上述内容)。
-
向 AWS 负载均衡器控制器使用的 IAM 角色添加其他策略。此策略允许 LBC 管理由适用于 Kubernetes 的 ALB 入口控制器创建的资源。
-
下载该 IAM 策略。此策略允许 AWS 负载均衡器控制器管理由适用于 Kubernetes 的 ALB 入口控制器创建的资源。您还可以查看策略
。 curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.11.0/docs/install/iam_policy_v1_to_v2_additional.json
-
如果您的集群位于 AWS GovCloud(美国东部)或 AWS GovCloud(美国西部)AWS 区域,则将
arn:aws:
替换为arn:aws-us-gov:
。sed -i.bak -e 's|arn:aws:|arn:aws-us-gov:|' iam_policy_v1_to_v2_additional.json
-
创建 IAM 策略并记下返回的 ARN。
aws iam create-policy \ --policy-name AWSLoadBalancerControllerAdditionalIAMPolicy \ --policy-document file://iam_policy_v1_to_v2_additional.json
-
将 IAM 策略附加到 AWS 负载均衡器控制器使用的 IAM 角色。将
your-role-name
替换为角色的名称,例如AmazonEKSLoadBalancerControllerRole
。如果您使用
eksctl
创建该角色,请找到已创建的角色名称,打开 AWS CloudFormation 控制台并选择 eksctl- my-cluster
-addon-iamserviceaccount-kube-system-aws-load-balancer-controller 堆栈。选择资源选项卡。角色名称位于 Physical ID(物理 ID)列。aws iam attach-role-policy \ --role-name your-role-name \ --policy-arn arn:aws:iam::111122223333:policy/AWSLoadBalancerControllerAdditionalIAMPolicy