Esegui la migrazione delle app da Controller di ingresso ALB obsoleto - Amazon EKS

Contribuisci a migliorare questa pagina

Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.

Esegui la migrazione delle app da Controller di ingresso ALB obsoleto

Questo argomento descrive come migrare da versioni obsolete del Controller. Più specificamente, descrive come rimuovere le versioni obsolete di AWS Load Balancer Controller.

  • Le versioni obsolete non possono essere aggiornate. Devi prima rimuoverle e quindi installare una versione attuale.

  • Le versioni obsolete includono:

    • Controller di ingresso ALB AWS per Kubernetes ("Controller di ingresso"), un predecessore di AWS Load Balancer Controller.

    • Qualsiasi versione 0.1.x di AWS Load Balancer Controller

Rimuovi la versione obsoleta del controller

Nota

Potresti aver installato la versione obsoleta utilizzando Helm o manualmente con i manifesti di Kubernetes. Completare la procedura utilizzando lo strumento con cui è stata installata in origine.

  1. Se il grafico Helm incubator/aws-alb-ingress-controller è installato, procedi alla disinstallazione.

    helm delete aws-alb-ingress-controller -n kube-system
  2. Se la versione 0.1.x del grafico eks-charts/aws-load-balancer-controller è installata, procedi alla disinstallazione. L’aggiornamento dalla versione 0.1.x alla versione 1.0.0 non ha esito positivo a causa di incompatibilità con la versione dell’API webhook.

    helm delete aws-load-balancer-controller -n kube-system
  3. Verificare che il controller sia già installato.

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

    Questo è l’output restituito se il controller non è installato.

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

    Questo è l’output restituito se il controller è installato.

    NAME READY UP-TO-DATE AVAILABLE AGE alb-ingress-controller 1/1 1 1 122d
  4. Immettere i seguenti comandi per rimuovere il controller.

    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

Esegui la migrazione ad AWS Load Balancer Controller

Per eseguire la migrazione dal Controller di ingresso ALB per Kubernetes ad AWS Load Balancer Controller, devi:

  1. Rimuovere il Controller di ingresso ALB (vedi sopra).

  2. Installa AWS Load Balancer Controller.

  3. Aggiungi un’ulteriore policy al ruolo IAM utilizzato da AWS Load Balancer Controller. Questa policy consente a LBC la gestione delle risorse create dal Controller di ingresso ALB per Kubernetes.

  4. Scaricare la policy IAM. Questa policy consente ad AWS Load Balancer Controller di gestire le risorse create dal Controller di ingresso ALB per Kubernetes. É anche possibile consultare la policy.

    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. Se il cluster si trova nelle Regioni AWS AWS GovCloud (Stati Uniti orientali) o AWS GovCloud (Stati Uniti occidentali), sostituisci arn:aws: con arn:aws-us-gov:.

    sed -i.bak -e 's|arn:aws:|arn:aws-us-gov:|' iam_policy_v1_to_v2_additional.json
  6. Creare la policy IAM e annotate l’ARN restituito.

    aws iam create-policy \ --policy-name AWSLoadBalancerControllerAdditionalIAMPolicy \ --policy-document file://iam_policy_v1_to_v2_additional.json
  7. Aggiungi una policy IAM al ruolo IAM utilizzato da AWS Load Balancer Controller. Sostituisci your-role-name con il nome del ruolo, ad esempio AmazonEKSLoadBalancerControllerRole.

    Se hai creato il ruolo utilizzando eksctl, per individuare il nome del ruolo creato devi aprire la console AWS CloudFormation e selezionare lo stack eksctl-my-cluster-addon-iamserviceaccount-kube-system-aws-load-balancer-controller. Selezionare la scheda Risorse. Il nome del ruolo è nella colonna ID fisico.

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