J'ai utilisé une Amazon Machine Image (AMI) optimisée pour Amazon Elastic Kubernetes Service (Amazon EKS) pour lancer mon instance Amazon Elastic Compute Cloud (Amazon EC2). Cependant, je ne peux pas mettre à jour le noyau ou le package même lorsque des versions ultérieures sont disponibles. Je reçois des messages d’erreur « Nothing to do » et « No packages marked for update ».
Brève description
En règle générale, les AMI optimisées pour Amazon EKS bloquent les mises à jour des packages car le plug-in yum-versionlock verrouillait des versions de packages spécifiques et excluait toutes les autres. Le plug-in conserve les packages verrouillés dans leurs versions définies afin que vous ne mettiez pas accidentellement à jour vers une version incompatible.
Pour résoudre ce problème, il est recommandé de mettre à jour l'AMI plutôt que le noyau. Toutefois, si vous utilisez une AMI personnalisée avec un package verrouillé, vous pouvez supprimer le verrouillage de version et mettre à niveau le package.
Résolution
Remarque : il est recommandé de sauvegarder vos instances et données EC2 avant de résoudre les problèmes ou d'apporter des modifications. Créez une AMI de votre instance ou créez un instantané de votre volume Amazon Elastic Block Store (Amazon EBS).
Vérifier que l’AMI dispose d'un verrouillage de version
Pour vérifier la version du noyau exécutée par votre instance, exécutez la commande suivante :
uname -r
Pour vérifier si les packages sont verrouillés sur des versions spécifiques du noyau, exécutez la commande suivante :
yum versionlock list
Si le verrouillage de version de yum-versionlock est activé, vous recevez une sortie similaire à l'exemple suivant :
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.*
Mettre à jour l'AMI pour une AMI à version verrouillée
Mettez à niveau l'AMI optimisée pour Amazon EKS pour utiliser la dernière version. Cette modification permet de maintenir la stabilité de votre système car vous n'utilisez que des versions de noyau validées.
Supprimer le verrouillage de version, puis mettre à niveau le package
Important : il peut y avoir des problèmes de compatibilité entre le package mis à jour et d'autres composants tels que containerd. La compatibilité des mises à jour verrouillées n'a pas été testée.
Pour mettre à niveau le package pour une AMI personnalisée, procédez comme suit :
-
Exécutez la commande suivante pour afficher la liste des packages verrouillés :
sudo yum versionlock list:
-
Pour supprimer le verrouillage de version d'un package spécifique, exécutez la commande suivante :
sudo yum versionlock delete package_name
Remarque : remplacez package_name par le package que vous souhaitez déverrouiller.
Pour supprimer le verrouillage de version sur tous les packages, exécutez la commande suivante :
sudo yum versionlock clear
-
Exécutez la commande suivante pour vérifier que la version est déverrouillée :
sudo yum versionlock list
-
Mettez à jour les packages avec les dernières versions disponibles dans vos référentiels.
Informations connexes
FAQ relatives à Amazon Linux 2
FAQ relatives à Amazon Linux 2023
Mises à niveau déterministes via des référentiels à versions gérées sur AL2023