Migración de aplicaciones desde el Ingress Controller de AWS obsoleto - Amazon EKS

Ayude a mejorar esta página

¿Quiere contribuir a esta guía del usuario? Desplácese hasta el final de esta página y seleccione Editar esta página en GitHub. Sus contribuciones ayudarán a que nuestra guía del usuario sea mejor para todos.

Migración de aplicaciones desde el Ingress Controller de AWS obsoleto

En este tema se explica cómo migrar desde versiones obsoletas de controladores. Más específicamente, se describe cómo eliminar las versiones obsoletas de AWS Load Balancer Controller.

  • Las versiones obsoletas no se pueden actualizar. Primero debe eliminarlas y, a continuación, instalar una versión actual.

  • Las versiones obsoleta incluyen lo siguiente:

    • AWSControlador de Ingress del ALB para Kubernetes («controlador de Ingress»), un predecesor del AWS Load Balancer Controller.

    • Cualquier versión 0.1.x del AWS Load Balancer Controller

Eliminación de la versión obsoleta del controlador

nota

Es posible que haya instalado la versión obsoleta con Helm o manualmente con manifiestos de Kubernetes. Realice el procedimiento utilizando la herramienta con la que la instaló originalmente.

Eliminación del controlador de entrada con Helm
  1. Si ha instalado el gráfico de Helm incubator/aws-alb-ingress-controller, desinstálelo.

    $ helm delete aws-alb-ingress-controller -n kube-system
  2. Si tiene la versión 0.1.x del gráfico eks-charts/aws-load-balancer-controller instalado, desinstálelo. La actualización de 0.1.x a la versión 1.0.0 no funciona debido a la incompatibilidad con la versión de la API webhook.

    $ helm delete aws-load-balancer-controller -n kube-system
Eliminación del controlador de entrada con manifiesto de Kubernetes
  1. Verifique si el controlador se encuentra instalado actualmente.

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

    Esta es la salida si el controlador no está instalado.

    Error del servidor (no se encontró): deployments.apps “alb-ingress-controller” no se encontró

    Esta es la salida si el controlador está instalado.

    NAME READY UP-TO-DATE AVAILABLE AGE alb-ingress-controller 1/1 1 1 122d
  2. Ingrese el siguiente comando para eliminar el controlador.

    $ 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

Migración a AWS Load Balancer Controller

Para migrar del controlador de entrada de ALB para Kubernetes al AWS Load Balancer Controller, realice lo siguiente:

  1. Retire el controlador de entrada de ALB (consulte más arriba).

  2. Instale el AWS Load Balancer Controller.

  3. Añada una política adicional al rol de IAM utilizado por el AWS Load Balancer Controller. Esta política permite al LBC administrar los recursos creados por el controlador de entrada de ALB para Kubernetes.

Añada la política de migración al rol de IAM de AWS Load Balancer Controller.
  1. Descargue la política de IAM. Esta política permite al AWS Load Balancer Controller administrar los recursos creados por el controlador de entrada de ALB para Kubernetes. También puede ver la política.

    $ curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.7.2/docs/install/iam_policy_v1_to_v2_additional.json
  2. Si su clúster está en las Regiones de AWS GovCloud de AWS (EE. UU. Este) o GovCloud de AWS (EE.UU. Oeste), reemplace 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
  3. Cree la política de IAM y anote el ARN devuelto.

    $ aws iam create-policy \ --policy-name AWSLoadBalancerControllerAdditionalIAMPolicy \ --policy-document file://iam_policy_v1_to_v2_additional.json
  4. Adjunte la política de IAM al rol de IAM que usa el AWS Load Balancer Controller. Reemplace your-role-name por el nombre del rol, como AmazonEKSLoadBalancerControllerRole.

    Si creó el rol con eksctl, para encontrar el nombre del rol que se creó, abra la consola de AWS CloudFormation y seleccione la pila eksctl-my-cluster-addon-iamserviceaccount-kube-system-aws-load-balancer-controller. Seleccione la pestaña Recursos. El nombre del rol se encuentra en la columna de ID físicos. Si su clúster está en las Regiones de AWS GovCloud de AWS (EE. UU. Este) o GovCloud de AWS (EE. UU. Oeste), sustituya arn:aws: con arn:aws-us-gov:.

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