Direkt zum Inhalt

Warum kann ich den Kernel und das Paket für eine Amazon-EC2-Instance, die ich von einem Amazon-EKS-optimierten AMI aus gestartet habe, nicht aktualisieren?

Lesedauer: 3 Minute
0

Ich habe ein Amazon Elastic Kubernetes Service (Amazon EKS)-optimiertes Amazon Machine Image (AMI) verwendet, um meine Amazon Elastic Compute Cloud (Amazon EC2)-Instance zu starten. Ich kann den Kernel oder das Paket jedoch nicht aktualisieren, auch wenn spätere Versionen verfügbar sind. Ich erhalte die Meldungen „Nothing to do“ und „No packages marked for update“.

Kurzbeschreibung

In der Regel blockieren Amazon-EKS-optimierte AMIs Paketaktualisierungen, da das yum-versionlock-Plug-in bestimmte Paketversionen gesperrt und alle anderen ausgeschlossen hat. Das Plug-in behält gesperrte Pakete in ihren definierten Versionen bei, damit du nicht versehentlich eine Aktualisierung auf eine inkompatible Version durchführst.

Um dieses Problem zu beheben, empfiehlt es sich, das AMI anstelle des Kernels zu aktualisieren. Wenn du jedoch ein benutzerdefiniertes AMI mit einem gesperrten Paket verwendest, kannst du die Versionssperre aufheben und das Paket aktualisieren.

Lösung

Hinweis: Es hat sich bewährt, die EC2-Instances und Daten zu sichern, bevor du Fehler behebst oder Änderungen vornimmst. Erstelle ein AMI der Instance oder erstelle einen Snapshot des Amazon Elastic Block Store (Amazon EBS)-Volumes.

Sicherstellen, dass das AMI über eine Versionssperre verfügt

Führe den folgenden Befehl aus, um die Kernelversion zu überprüfen, auf der die Instance ausgeführt wird:

uname -r

Um zu überprüfen, ob Pakete für bestimmte Kernelversionen gesperrt sind, führe den folgenden Befehl aus:

yum versionlock list

Wenn bei yum-versionlock die Versionssperre aktiviert ist, erhältst du eine Ausgabe, die dem folgenden Beispiel ähnelt:

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.*

Das AMI für ein AMI mit Versionssperre aktualisieren

Führe ein Upgrade des für Amazon EKS optimierten AMI durch, um die neueste Version zu verwenden. Diese Änderung hält das System stabil, da du nur validierte Kernelversionen verwendest.

Die Versionssperre entfernen und dann das Paket aktualisieren

Wichtig: Möglicherweise gibt es Kompatibilitätsprobleme zwischen dem aktualisierten Paket und anderen Komponenten wie containerd. Gesperrte Updates wurden nicht auf Kompatibilität getestet.

Gehe wie folgt vor, um das Paket für ein benutzerdefiniertes AMI zu aktualisieren:

  1. Führe den folgenden Befehl aus, um die Liste der gesperrten Pakete anzuzeigen:

    sudo yum versionlock list:
  2. Führe den folgenden Befehl aus, um die Versionssperre für ein bestimmtes Paket aufzuheben:

    sudo yum versionlock delete package_name

    Hinweis: Ersetze package_name durch das Paket, das du entsperren möchtest.
    Führe den folgenden Befehl aus, um die Versionssperre für alle Pakete aufzuheben:

    sudo yum versionlock clear
  3. Führe den folgenden Befehl aus, um zu überprüfen, ob die Version entsperrt ist:

    sudo yum versionlock list
  4. Aktualisiere die Pakete auf die neuesten Versionen, die in den Repositorys verfügbar sind.

Ähnliche Informationen

Häufig gestellte Fragen zu Amazon Linux 2

Häufig gestellte Fragen zu Amazon Linux 2023

Deterministische Upgrades über versionierte Repositorys auf AL2023

AWS OFFICIALAktualisiert vor 5 Monaten