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:
- As atualizações automáticas de imagem de nó não foram habilitadas quando o pool de nós foi criado.
- 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.