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
-
Si ha instalado el gráfico de Helm
incubator/aws-alb-ingress-controller
, desinstálelo.$
helm delete aws-alb-ingress-controller -n kube-system
-
Si tiene la versión
0.1.x
del gráficoeks-charts/aws-load-balancer-controller
instalado, desinstálelo. La actualización de0.1.x
a la versión1.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
-
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
-
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:
-
Retire el controlador de entrada de ALB (consulte más arriba).
-
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.
-
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
-
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:
conarn:aws-us-gov:
..$
sed -i.bak -e 's|arn:aws:|arn:aws-us-gov:|' iam_policy_v1_to_v2_additional.json
-
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 -
Adjunte la política de IAM al rol de IAM que usa el AWS Load Balancer Controller. Reemplace
por el nombre del rol, comoyour-role-name
AmazonEKSLoadBalancerControllerRole
.Si creó el rol con
eksctl
, para encontrar el nombre del rol que se creó, abra la consola de AWS CloudFormationy 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), sustituyaarn:aws:
conarn:aws-us-gov:
.$
aws iam attach-role-policy \ --role-name
your-role-name
\ --policy-arn arn:aws:iam::111122223333
:policy/AWSLoadBalancerControllerAdditionalIAMPolicy