帮助改进此页面
想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。
从已弃用的 AmazonIngress Controller 迁移应用程序
本主题介绍如何从已弃用的控制器版本迁移。更具体地说,它描述了如何移除 Amazon Load Balancer Controller 的已弃用版本。
-
已弃用的版本无法升级。必须先将其移除,然后再安装当前版本。
-
已弃用的版本包括:
-
Kubernetes 的 Amazon ALB 入口控制器(“入口控制器”),是 Amazon Load Balancer Controller 的前身。
-
Amazon Load Balancer Controller 的任何
0.1.x
版本控制
-
移除已弃用的控制器版本
注意
您可能已经使用 Helm 安装了已弃用的版本,或者使用 Kubernetes 清单手动安装了该版本。使用原来安装它的工具完成该过程。
使用 Helm 移除入口控制器
-
如果您安装了
incubator/aws-alb-ingress-controller
Helm 图表,请将其卸载。$
helm delete aws-alb-ingress-controller -n kube-system
-
如果安装了
eks-charts/aws-load-balancer-controller
图表的0.1.x
版本,请将其卸载。由于与 Webhook API 版本不兼容,从0.1.x
升级到版本1.0.0
不起作用。$
helm delete aws-load-balancer-controller -n kube-system
使用 Kubernetes 清单移除入口控制器
-
检查当前是否安装了该控制器。
$
kubectl get deployment -n kube-system alb-ingress-controller
这是未安装控制器情况下的输出。
服务器错误(未找到):未找到 deployments.apps “alb-ingress-controller”
这是安装了控制器情况下的输出。
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
迁移到 Amazon Load Balancer Controller
要从 Kubernetes 的 ALB 入口控制器迁移到 Amazon Load Balancer Controller,您需要:
-
移除 ALB 入口控制器(请参阅上述内容)。
-
向 Amazon Load Balancer Controller 使用的 IAM 角色添加其他策略。此策略允许 LBC 管理由 Kubernetes 的 ALB 入口控制器创建的资源。
将迁移策略添加到 Amazon Load Balancer Controller IAM 角色。
-
下载该 IAM 策略。此策略允许 Amazon Load Balancer Controller 管理由 Kubernetes 的 ALB Ingress Controller 创建的资源。您还可以查看策略
。 $
curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.7.2/docs/install/iam_policy_v1_to_v2_additional.json
-
将文件中的
arn:aws:
替换为arn:aws:
。$
sed -i.bak -e 's|arn:aws:|arn:aws:|' 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 策略附加到 Amazon Load Balancer Controller 使用的 IAM 角色。将
替换为角色的名称,例如your-role-name
AmazonEKSLoadBalancerControllerRole
。如果您使用
eksctl
创建该角色,请找到已创建的角色名称,打开 Amazon 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