从 AWS ALB Ingress Controller (v1) 的现有安装迁移到新的 AWS Load Balancer Controller (v2) 的问题

Issue with migration from an existing installation of AWS ALB Ingress Controller (v1) to the new AWS Load Balancer Controller (v2)

我们在 EKS 集群中部署了现有的 ALB Ingress 控制器,其映像为 v1.1.9:

docker.io/amazon/aws-alb-ingress-controller:v1.1.9

现在我们正在从 AWS ALB Ingress Controller (v1) 迁移到新的 AWS Load Balancer Controller (v2)。

关注此文档:https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/deploy/upgrade/migrate_v1_v2/

它提到首先需要手动卸载现有的 AWSALBIngressController,但缺少诸如如何卸载之类的详细信息。试图找到关于此的 AWS EKS 文档,但到处都提到它,但没有实际手动卸载的命令或其他细节。

任何帮助将不胜感激。

首先,我将删除所有使用 ALB Ingress 控制器的入口对象(会导致停机)。为此,kubectl get ingress -A,遍历每一个,看看它是否有注释 -

annotations:
    kubernetes.io/ingress.class: alb

然后使用kubectl delete ingress <ingress-name>删除入口对象。

要卸载控制器本身,您需要弄清楚它是如何安装的。

  1. 检查是否使用了 helm - helm ls -A。如果您找到 ALB 入口控制器的版本,则只需使用 helm delete <release-name> 命令删除该版本。
  2. 如果未使用 helm,则完成 v1.1 文档的安装 - https://kubernetes-sigs.github.io/aws-load-balancer-controller/v1.1/guide/controller/setup/#installation 并撤消这些步骤。例如-
kubectl delete -f https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.9/docs/examples/rbac-role.yaml

kubectl delete -f alb-ingress-controller.yaml

确保在盲目删除资源之前 kubectl get 并根据您的设置调整删除命令,谢谢。