Solución de problemas de código de error K8sVersionValidation
En este artículo se describe cómo identificar y resolver el código de error K8sVersionValidation que se produce al intentar crear e implementar un clúster de AKS en Azure Local.
Síntomas
Al intentar crear un clúster de AKS Arc, recibirá uno de los siguientes mensajes de error:
Kubernetes version 1.27.7 is not ready for use on Linux. Please go to https://aka.ms/aksarccheckk8sversions for details of how to check the readiness of Kubernetes versions
Kubernetes version 1.26.12 is not supported. Please go to https://aka.ms/aksarcsupportedversions for details about the supported Kubernetes version on this platform.
Admission webhook \'vhybridakscluster.kb.io\' denied the request: Kubernetes version 1.26.12 is not available
Mensajes de error
En esta sección se describen los mensajes de error que puede ver al encontrar el código de error K8sVersionValidation.
La versión 1.27.7 de Kubernetes no está lista para su uso en Linux
Este mensaje de error se debe a una descarga incompleta de VHD de Linux.
Al instalar Azure Local, se descarga un disco duro virtual Linux de aproximadamente 4 a 5 GB de tamaño. Este disco duro virtual Linux se usa para crear las máquinas virtuales subyacentes para los nodos de Kubernetes en el clúster de AKS Arc. El mensaje de error puede producirse cuando el disco duro virtual Linux no ha terminado de descargarse. Para resolver este problema, debe esperar hasta que la conexión a Internet termine de descargar la imagen VHD de Linux.
Para comprobar si la descarga de imágenes está en curso o ha finalizado, ejecute el siguiente comando:
$cl_id = "/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.ExtendedLocation/customLocations/<custom_location_name>"
# Get the kubernetes version using CLI (it automatically creates the **kubernetesVersions/default** Azure resource).
az aksarc get-versions --custom-location $cl_id
Si este comando indica que las versiones K8s están listas y que está ejecutando la versión 2411 o posterior de Azure Local, abra una solicitud de soporte técnico.
Si ejecuta la versión 2408 o anterior de Azure Local, vaya a la sección siguiente. Se recomienda encarecidamente actualizar la implementación local de Azure a la versión más reciente para obtener las últimas correcciones de errores y actualizaciones de seguridad.
Volver a crear kubernetesVersions/default
Si vuelve a implementar Azure Local con el mismo nombre y parámetros, es posible que tenga que volver a crear kubernetesVersions/default. Para ello, ejecute los siguientes comandos :
$subscription = <subscription_id>
$cl_id = <custom_location_id>
az login --use-device-code
az account set -s $subscription
$token = $(az account get-access-token --query accessToken)
$url = "https://management.azure.com${cl_id}/providers/Microsoft.HybridContainerService/kubernetesVersions/default?api-version=2024-01-01"
# Get the Kubernetes version Azure resource
az rest --headers "Authorization=Bearer $token" "Content-Type=application/json;charset=utf-8" --uri $url --method GET
# Delete the Kubernetes version Azure resource
az rest --headers "Authorization=Bearer $token" "Content-Type=application/json;charset=utf-8" --uri $url --method DELETE
# Get the Kubernetes version using CLI (it automatically creates the Kubernetes version Azure resource)
az aksarc get-versions --custom-location $cl_id
No se pueden ver las versiones de Kubernetes ni las opciones de tamaño de máquina virtual en Azure Portal.
Este escenario puede ocurrir en las versiones 2408 o anteriores de Azure Local, cuando el recurso predeterminado para la versión de Kubernetes (o tamaños de máquina virtual) no se creó como parte de la implementación local de Azure.
Para resolver este problema, ejecute el siguiente comando:
$cl_id = "/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.ExtendedLocation/customLocations/<custom_location_name>"
# Get the kubernetes version using CLI (it automatically creates the **kubernetesVersions/default** Azure resource).
az aksarc get-versions --custom-location $cl_id
No se admite la versión 1.26.12 de Kubernetes
Azure Local admite versiones específicas de Kubernetes en cada una de sus versiones. Como se indica en el mensaje de error, vaya a https://aka.ms/aksarcsupportedversions
para obtener una lista de las versiones de Kubernetes admitidas en función de la versión local de Azure implementada.