Dela via


Felsöka inaktuella kernelversioner i Azure Linux Container Host-nodavbildningar

Under migreringen eller när du lägger till nya nodpooler i Azure Linux Container Host kan det uppstå problem med inaktuella kernelversioner. Azure Kubernetes Service (AKS) släpper en ny Azure Linux-nodbild varje vecka, som används för nya nodpooler och som startbild för uppskalning. Äldre nodpooler kanske dock inte uppdaterar sina kernelversioner som förväntat.

Så här kontrollerar du KERNEL-VERSIONEN av dina nodpooler:

    kubectl get nodes -o wide

Jämför sedan kernelversionen av dina nodpooler med den senaste kerneln som publicerades på packages.microsoft.com.

Symptom

Ett vanligt symptom på det här problemet är:

  • Azure Linux-noder använder inte den senaste kernelversionen.

Orsaker

Det finns två huvudsakliga orsaker till det här problemet:

  1. Automatiska nodbildsuppgraderingar aktiverades inte när nodpoolen skapades.
  2. Basavbildningen som AKS använder för att starta kluster körs två veckor efter de senaste kernelversionerna på grund av distributionsproceduren.

Lösning

Du kan aktivera automatiska uppgraderingar med GitHub Actions och starta om noderna för att lösa problemet.

Aktivera automatiska nodbildsuppgraderingar med hjälp av Azure CLI

Om du vill aktivera automatiska nodavbildningsuppgraderingar när du distribuerar ett kluster från az-cli lägger du till parametern --auto-upgrade-channel node-image.

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

Aktivera automatiska nodbildsuppgraderingar med hjälp av ARM-mallar

Om du vill aktivera automatiska nodbildsuppgraderingar när du använder en ARM-mall kan du ange egenskapen upgradeChannel i autoUpgradeProfile till node-image.

    autoUpgradeProfile: {
      upgradeChannel: 'node-image'
    }

Starta om noderna

När du uppdaterar kernelversionen måste du starta om noden för att använda den nya kernelversionen. Vi rekommenderar att du konfigurerar den kured daemonset. Kured för att övervaka dina noder för /var/run/reboot-required filen, tömma arbetsbelastningen och starta om noderna.

Lösning: Manuella uppgraderingar

Om du behöver en snabb lösning kan du manuellt uppgradera nodavbildningen i ett kluster med az aks nodepool upgrade. Detta kan göras genom att köra

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

Nästa steg

Om föregående steg inte löser problemet öppnar du ett supportärende.