Migrer des applications depuis le ALB Ingress Controller - Amazon EKS

Aidez à améliorer cette page

Pour contribuer à ce guide de l’utilisateur, cliquez sur le lien Modifier cette page sur GitHub qui se trouve dans le volet droit de chaque page.

Migrer des applications depuis le ALB Ingress Controller

Cette rubrique décrit comment Migration à partir de versions de contrôleur rendues obsolètes. Plus précisément, il décrit comment supprimer les versions obsolètes de l’AWS Load Balancer Controller.

  • Les versions rendues obsolètes ne peuvent pas être mises à niveau. Vous devez d’abord les supprimer, puis installer une version actuelle.

  • Les versions obsolètes incluent :

    • AWS ALB Ingress Controller for Kubernetes (« Ingress Controller »), un prédécesseur d’AWS Load Balancer Controller.

    • Toute version 0.1.x de l’AWS Load Balancer Controller

Supprimer la version obsolète du contrôleur

Note

Vous avez peut-être installé la version obsolète à l’aide de Helm ou manuellement avec les manifestes Kubernetes. Terminez la procédure à l'aide de l'outil avec lequel vous l'avez installé à l'origine.

  1. Si vous avez installé les Charts de Helm incubator/aws-alb-ingress-controller, désinstallez-les.

    helm delete aws-alb-ingress-controller -n kube-system
  2. Si la version 0.1.x du graphique eks-charts/aws-load-balancer-controller est installée, désinstallez-la. La mise à niveau depuis 0.1.x vers la version 1.0.0 ne fonctionne pas en raison d’une incompatibilité avec la version de l’API du webhook.

    helm delete aws-load-balancer-controller -n kube-system
  3. Vérifiez si le contrôleur est actuellement installé.

    kubectl get deployment -n kube-system alb-ingress-controller

    Il s’agit de la sortie si le contrôleur n’est pas installé.

    Error from server (NotFound): deployments.apps "alb-ingress-controller" not found

    Il s'agit de la sortie si le contrôleur est installé.

    NAME READY UP-TO-DATE AVAILABLE AGE alb-ingress-controller 1/1 1 1 122d
  4. Saisissez les commandes suivantes pour supprimer le contrôleur.

    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

Migrer vers AWS Load Balancer Controller

Pour migrer du contrôleur d’entrée ALB pour Kubernetes vers AWS Load Balancer Controller, vous devez :

  1. Retirez le contrôleur d’entrée ALB (voir ci-dessus).

  2. Installez l’AWS Load Balancer Controller.

  3. Ajoutez une politique supplémentaire au rôle IAM utilisé par l’AWS Load Balancer Controller. Cette politique permet au LBC de gérer les ressources créées par le contrôleur d’entrée ALB pour Kubernetes.

  4. Téléchargez la politique IAM. Cette politique permet à l’AWS Load Balancer Controller de gérer les ressources créées par le contrôleur d’entrée ALB pour Kubernetes. Vous pouvez également afficher la politique.

    curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.13.3/docs/install/iam_policy_v1_to_v2_additional.json
  5. Si votre cluster est dans les régions AWS AWS GovCloud (USA-Est) ou AWS GovCloud (USA-Ouest), remplacez arn:aws: par arn:aws-us-gov:.

    sed -i.bak -e 's|arn:aws:|arn:aws-us-gov:|' iam_policy_v1_to_v2_additional.json
  6. Créez la politique IAM et notez l'ARN renvoyé.

    aws iam create-policy \ --policy-name AWSLoadBalancerControllerAdditionalIAMPolicy \ --policy-document file://iam_policy_v1_to_v2_additional.json
  7. Attachez la politique IAM au rôle IAM utilisé par l’AWS Load Balancer Controller. Remplacez your-role-name par le nom du rôle, par exemple AmazonEKSLoadBalancerControllerRole.

    Si vous avez créé le rôle à l’aide de eksctl, ensuite pour rechercher le nom du rôle qui a été créé, ouvrez la console CloudFormation AWS et sélectionnez la pile eksctl-your-cluster-name-addon-iamserviceaccount-kube-system-aws-load-balancer-controller. Sélectionnez l'onglet Resources (Ressources). Le nom du rôle se trouve dans la colonne ID Physique.

    aws iam attach-role-policy \ --role-name your-role-name \ --policy-arn arn:aws:iam::111122223333:policy/AWSLoadBalancerControllerAdditionalIAMPolicy