Compartir a través de


Solución de problemas de versiones obsoletas del kernel en imágenes de nodo del Host de contenedor de Linux en Azure

Durante la migración o al agregar nuevos grupos de nodos al Host de contenedor de Linux en Azure es posible que encuentre problemas con las versiones obsoletas del kernel. Azure Kubernetes Service (AKS) publica una nueva imagen de nodo de Linux en Azure cada semana, que se usa para nuevos grupos de nodos y como imagen inicial para escalar verticalmente. Sin embargo, es posible que los grupos de nodos anteriores no actualicen sus versiones de kernel según lo previsto.

Para comprobar la versión de kernel de los grupos de nodos, ejecute lo siguiente:

    kubectl get nodes -o wide

A continuación, compare la versión del kernel de los grupos de nodos con el kernel más reciente publicado en packages.microsoft.com.

Síntoma

Un síntoma común de este problema incluye:

  • Los nodos de Linux en Azure no usan la versión más reciente del kernel.

Causas

Hay dos causas principales de este problema:

  1. Las actualizaciones automáticas de imágenes de nodo no estaban habilitadas cuando se creó el grupo de nodos.
  2. La imagen base que usa AKS para iniciar clústeres lleva dos semanas de retraso con respecto a las versiones de kernel más recientes debido a su procedimiento de lanzamiento.

Solución

Puede habilitar las actualizaciones automáticas mediante Acciones de GitHub y reiniciar los nodos para resolver este problema.

Habilitación de actualizaciones automáticas de imágenes de nodo mediante la CLI de Azure

Para habilitar las actualizaciones automáticas de la imagen de nodo al implementar un clúster desde az-cli, agregue el parámetro --auto-upgrade-channel node-image.

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

Habilitación de actualizaciones automáticas de imágenes de nodo mediante plantillas de ARM

Para habilitar las actualizaciones automáticas de imágenes de nodo al usar una plantilla de ARM, puede establecer la propiedad upgradeChannel en autoUpgradeProfile a node-image.

    autoUpgradeProfile: {
      upgradeChannel: 'node-image'
    }

Reinicie los nodos

Al actualizar la versión del kernel, debe reiniciar el nodo para usar la nueva versión del kernel. Recomendamos que configure el kured daemonset. Kured para supervisar los nodos del archivo/var/run/reboot-required, purgar la carga de trabajo y reiniciar los nodos.

Solución alternativa: actualizaciones manuales

Si necesita una solución alternativa, puede actualizar manualmente la imagen de nodo en un clúster mediante az aks nodepool upgrade. Para ello, ejecute lo siguiente

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

Pasos siguientes

Si los pasos anteriores no resuelven el problema, abra una incidencia de soporte técnico.