Salta al contenuto

Perché non posso aggiornare il kernel e il pacchetto per un'istanza Amazon EC2 che ho avviato da un'AMI ottimizzata per Amazon EKS?

3 minuti di lettura
0

Ho utilizzato un'Amazon Machine Image (AMI) ottimizzata per Amazon Elastic Kubernetes Service (Amazon EKS) per avviare la mia istanza Amazon Elastic Compute Cloud (Amazon EC2). Tuttavia, non posso aggiornare il kernel o il pacchetto anche quando sono disponibili versioni successive. Ricevo i messaggi "Nothing to do" and "No packages marked for update".

Breve descrizione

In genere, le AMI ottimizzate per Amazon EKS bloccano gli aggiornamenti dei pacchetti perché il plugin yum-versionlock bloccava versioni specifiche del pacchetto ed escludeva tutte le altre. Il plugin mantiene i pacchetti bloccati nelle loro versioni definite in modo da non eseguire l'aggiornamento accidentale a una versione incompatibile.

Per risolvere il problema, è consigliabile aggiornare l'AMI anziché il kernel. Tuttavia, se utilizzi un'AMI personalizzata con un pacchetto bloccato, puoi rimuovere il blocco della versione e aggiornare il pacchetto.

Risoluzione

Nota: è consigliabile eseguire il backup dei dati e delle istanze EC2 prima di applicare procedure di risoluzione o apportare modifiche. Crea un'AMI dell'istanza o uno snapshot del volume Amazon Elastic Block Store (Amazon EBS).

Verifica che l'AMI abbia un blocco di versione

Per verificare la versione del kernel in esecuzione nell'istanza, esegui questo comando:

uname -r

Per verificare se i pacchetti sono bloccati su specifiche versioni del kernel, esegui questo comando:

yum versionlock list

Se yum-versionlock ha il blocco della versione attivato, ricevi un output simile al seguente esempio:

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

Aggiorna l'AMI per un'AMI con versione bloccata

Aggiorna l'AMI ottimizzata per Amazon EKS per utilizzare la versione più recente. Questa modifica mantiene stabile il sistema in quanto si utilizzano solo versioni del kernel convalidate.

Rimuovi il blocco della versione, quindi aggiorna il pacchetto

Importante: potrebbero esserci problemi di compatibilità tra il pacchetto aggiornato e altri componenti come containerd. La compatibilità degli aggiornamenti bloccati non è stata verificata.

Per aggiornare il pacchetto per un'AMI personalizzata, completa i seguenti passaggi:

  1. Esegui questo comando per visualizzare l'elenco dei pacchetti bloccati:

    sudo yum versionlock list:
  2. Per rimuovere il blocco della versione da un pacchetto specifico, esegui questo comando:

    sudo yum versionlock delete package_name

    Nota: sostituisci package_name con il pacchetto che desideri sbloccare.
    Per rimuovere il blocco della versione da tutti i pacchetti, esegui questo comando:

    sudo yum versionlock clear
  3. Esegui questo comando per verificare che la versione sia sbloccata:

    sudo yum versionlock list
  4. Aggiorna i pacchetti alle ultime versioni disponibili nei repository.

Informazioni correlate

Domande frequenti su Amazon Linux 2

Amazon Linux 2023 FAQs (Domande frequenti su Amazon Linux 2023)

Aggiornamenti deterministici tramite repository con versioni su AL2023

AWS UFFICIALEAggiornata 5 mesi fa