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:
- Automatiska nodbildsuppgraderingar aktiverades inte när nodpoolen skapades.
- 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.