He utilizado una imagen de máquina de Amazon (AMI) optimizada por Amazon Elastic Kubernetes Service (Amazon EKS) para iniciar mi instancia de Amazon Elastic Compute Cloud (Amazon EC2). Sin embargo, no puedo actualizar el kernel o el paquete aunque haya versiones posteriores disponibles. Recibo los mensajes “Nothing to do” y “No packages marked for update”.
Descripción corta
Por lo general, las AMI optimizadas de Amazon EKS bloquean las actualizaciones de paquetes porque el complemento yum-versionlock bloqueaba versiones específicas de los paquetes y excluía todas las demás. El complemento mantiene los paquetes bloqueados en sus versiones definidas para que no actualices accidentalmente a una versión incompatible.
Para resolver este problema, se recomienda actualizar la AMI en lugar del kernel. Sin embargo, si usas una AMI personalizada con un paquete bloqueado, puedes eliminar el bloqueo de versión y actualizar el paquete.
Resolución
Nota: Se recomienda realizar copias de seguridad de las instancias y los datos de EC2 antes de solucionar problemas o realizar cambios. Crea una AMI de tu instancia o crea una instantánea de tu volumen de Amazon Elastic Block Store (Amazon EBS).
Comprobar que la AMI tenga un bloqueo de versión
Para comprobar la versión del kernel que está ejecutando tu instancia, ejecuta el siguiente comando:
uname -r
Para comprobar si los paquetes están bloqueados para versiones específicas del kernel, ejecuta el siguiente comando:
yum versionlock list
Si yum-versionlock tiene activado el bloqueo de versiones, recibirás un resultado similar al del siguiente ejemplo:
kernel-devel-1:6.1.155-176.282.amzn2023.*
kernel-headers-1:6.1.155-176.282.amzn2023.*
kernel-1:6.1.155-176.282.amzn2023.*
kernel-libbpf-1:6.1.155-176.282.amzn2023.*
kernel-srpm-macros-0:1.0-14.amzn2023.0.3.*
kernel-livepatch-repo-s3-0:2023.9.20251014-0.amzn2023.*
amazon-ec2-net-utils-0:2.7.1-1.amzn2023.0.1.*
containerd-2:1.7.27-1.eks.amzn2023.0.4.*
Actualización de la AMI para una AMI de versión bloqueada
Actualiza la AMI optimizada de Amazon EKS para usar la versión más reciente. Este cambio mantiene tu sistema estable, ya que solo utiliza versiones de kernel validadas.
Eliminación del bloqueo de la versión y posterior actualización del paquete
Importante: Es posible que haya problemas de compatibilidad entre el paquete actualizado y otros componentes, como containerd. No se ha probado la compatibilidad de las actualizaciones bloqueadas.
Para actualizar el paquete para una AMI personalizada, sigue estos pasos:
-
Ejecuta el siguiente comando para ver la lista de paquetes bloqueados:
sudo yum versionlock list:
-
Para eliminar el bloqueo de versión de un paquete específico, ejecuta el siguiente comando:
sudo yum versionlock delete package_name
Nota: Sustituye package_name por el paquete que deseas desbloquear.
Para eliminar el bloqueo de versión en todos los paquetes, ejecuta el siguiente comando:
sudo yum versionlock clear
-
Ejecuta el siguiente comando para validar que la versión esté desbloqueada:
sudo yum versionlock list
-
Actualiza los paquetes a las versiones más recientes disponibles en tus repositorios.
Información relacionada
Preguntas frecuentes sobre Amazon Linux 2
Preguntas frecuentes sobre Amazon Linux 2023
Actualizaciones deterministas mediante repositorios versionados en AL2023