Ir para o conteúdo

Por que não consigo atualizar o kernel e o pacote de uma instância do Amazon EC2 que eu executei a partir de uma AMI otimizada para Amazon EKS?

3 minuto de leitura
0

Usei uma imagem de máquina da Amazon (AMI) otimizada para Amazon Elastic Kubernetes Service (Amazon EKS) para executar minha instância do Amazon Elastic Compute Cloud (Amazon EC2). No entanto, não consigo atualizar o kernel ou o pacote, mesmo quando versões posteriores estão disponíveis. Eu recebo as mensagens "Nothing to do" e "No packages marked for update".

Breve descrição

Normalmente, as AMIs otimizadas do Amazon EKS bloqueiam as atualizações de pacotes porque o plug-in yum-versionlock bloqueou versões específicas do pacote e excluiu todas as outras. O plug-in mantém os pacotes bloqueados em suas versões definidas para que você não atualize acidentalmente para uma versão incompatível.

Para resolver esse problema, é uma prática recomendada atualizar a AMI em vez do kernel. No entanto, se você usar uma AMI personalizada com um pacote bloqueado, pode remover o bloqueio de versão e fazer upgrade do pacote.

Resolução

Observação: é uma prática recomendada fazer backup de suas instâncias e dados do EC2 antes de solucionar problemas ou fazer alterações. Crie uma AMI da sua instância ou crie um snapshot do seu volume do Amazon Elastic Block Store (Amazon EBS).

Verifique se sua AMI tem um bloqueio de versão

Para verificar a versão do kernel em que sua instância está sendo executada, execute o seguinte comando:

uname -r

Para verificar se os pacotes estão bloqueados em versões específicas do kernel, execute o seguinte comando:

yum versionlock list

Se o yum-versionlock estiver com o bloqueio de versão ativado, você receberá uma saída semelhante ao exemplo a seguir:

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

Atualize a AMI para uma AMI com versão bloqueada

Faça upgrade da AMI otimizada do Amazon EKS para usar a versão mais recente. Essa alteração mantém seu sistema estável, pois você usa somente versões de kernel validadas.

Remova o bloqueio da versão e, em seguida, faça upgrade do pacote

Importante: pode haver problemas de compatibilidade entre o pacote atualizado e outros componentes, como containerd. As atualizações bloqueadas não foram testadas quanto à compatibilidade.

Para fazer upgrade do pacote para uma AMI personalizada, conclua as seguintes etapas:

  1. Execute o comando a seguir para ver a lista de pacotes bloqueados:

    sudo yum versionlock list:
  2. Para remover o bloqueio de versão em um pacote específico, execute o seguinte comando:

    sudo yum versionlock delete package_name

    Observação: substitua package_name pelo pacote que você deseja desbloquear.
    Para remover o bloqueio de versão em todos os pacotes, execute o seguinte comando:

    sudo yum versionlock clear
  3. Execute o comando a seguir para validar se a versão está desbloqueada:

    sudo yum versionlock list
  4. Atualize os pacotes para as versões mais recentes disponíveis em seus repositórios.

Informações relacionadas

Perguntas frequentes sobre o Amazon Linux 2

Amazon Linux 2023 FAQs (Perguntas frequentes sobre o Amazon Linux 2023)

Atualizações determinísticas por meio de repositórios com versionamento no AL2023

AWS OFICIALAtualizada há 5 meses