Saltar al contenido

¿Por qué no puedo actualizar el kernel y el paquete de una instancia de Amazon EC2 que he iniciado desde una AMI optimizada para Amazon EKS?

3 minutos de lectura
0

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:

  1. Ejecuta el siguiente comando para ver la lista de paquetes bloqueados:

    sudo yum versionlock list:
  2. 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
  3. Ejecuta el siguiente comando para validar que la versión esté desbloqueada:

    sudo yum versionlock list
  4. 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

OFICIAL DE AWSActualizada hace 5 meses