Partilhar via


Solucionar problemas de versões desatualizadas do kernel em imagens de nó do Host de Contêiner do Azure Linux

Durante a migração ou ao adicionar novos pools de nós ao seu Host de Contêiner Linux do Azure, você pode encontrar problemas com versões desatualizadas do kernel. O Serviço Kubernetes do Azure (AKS) lança uma nova imagem de nó do Azure Linux todas as semanas, que é usada para novos pools de nós e como a imagem inicial para expansão. No entanto, pools de nós mais antigos podem não estar atualizando suas versões do kernel conforme o esperado.

Para verificar a KERNEL-VERSION dos seus pools de nós, execute:

    kubectl get nodes -o wide

Em seguida, compare a versão do kernel dos seus pools de nós com o kernel mais recente publicado no packages.microsoft.com.

Sintoma

Um sintoma comum desse problema inclui:

  • Os nós do Azure Linux não estão usando a versão mais recente do kernel.

Causas

Há duas causas principais para esse problema:

  1. As atualizações automáticas de imagem de nó não foram habilitadas quando o pool de nós foi criado.
  2. A imagem base que o AKS usa para iniciar clusters é executada duas semanas atrás das versões mais recentes do kernel devido ao seu procedimento de implementação.

Solução

Você pode habilitar atualizações automáticas usando as Ações do GitHub e reinicializar os nós para resolver esse problema.

Habilitar atualizações automáticas de imagem de nó usando a CLI do Azure

Para habilitar atualizações automáticas de imagem de nó ao implantar um cluster a partir de az-cli, adicione o parâmetro --auto-upgrade-channel node-image.

az aks create --name testAzureLinuxCluster --resource-group testAzureLinuxResourceGroup --os-sku AzureLinux --auto-upgrade-channel node-image

Habilite atualizações automáticas de imagem de nó usando modelos ARM

Para habilitar atualizações automáticas de imagem de nó ao usar um modelo ARM, você pode definir a propriedade upgradeChannel como autoUpgradeProfile node-image.

    autoUpgradeProfile: {
      upgradeChannel: 'node-image'
    }

Reinicialize os nós

Ao atualizar a versão do kernel, você precisa reiniciar o nó para usar a nova versão do kernel. Recomendamos que você configure o daemonset kured. Kured para monitorar seus nós para o /var/run/reboot-required arquivo, drenar a carga de trabalho e reinicializar os nós.

Solução alternativa: Atualizações manuais

Se precisar de uma solução rápida, você pode atualizar manualmente a imagem do nó em um cluster usando az aks nodepool upgrade. Isso pode ser feito executando

az aks nodepool upgrade \
    --resource-group testAzureLinuxResourceGroup \
    --cluster-name testAzureLinuxCluster \
    --name myAzureLinuxNodepool \
    --node-image-only

Próximos passos

Se as etapas anteriores não resolverem o problema, abra um tíquete de suporte.