Solución de problemas de errores de nodo no preparado si hay certificados expirados
Este artículo le ayuda a solucionar problemas de escenarios no preparados de Node dentro de un clúster de Microsoft Azure Kubernetes Service (AKS) si hay certificados expirados.
Requisitos previos
- CLI de Azure
- La herramienta de línea de comandos OpenSSL para mostrar y firmar certificados
Síntomas
Descubre que un nodo de clúster de AKS está en estado No listo.
Causa
Hay uno o varios certificados expirados.
Prevención: ejecute OpenSSL para firmar los certificados.
Compruebe las fechas de expiración de los certificados invocando el comando openssl-x509 , como se indica a continuación:
Para los nodos del conjunto de escalado de máquinas virtuales (VM), use el comando az vmss run-command invoke :
az vmss run-command invoke \ --resource-group <resource-group-name> \ --name <vm-scale-set-name> \ --command-id RunShellScript \ --instance-id 0 \ --output tsv \ --query "value[0].message" \ --scripts "openssl x509 -in /etc/kubernetes/certs/apiserver.crt -noout -enddate"
En el caso de los nodos del conjunto de disponibilidad de máquinas virtuales, use el comando az vm run-command invoke :
az vm run-command invoke \ --resource-group <resource-group-name> \ --name <vm-availability-set-name> \ --command-id RunShellScript \ --output tsv \ --query "value[0].message" \ --scripts "openssl x509 -in /etc/kubernetes/certs/apiserver.crt -noout -enddate"
Es posible que reciba determinados códigos de error después de invocar estos comandos. Para obtener información sobre los códigos de error 50, 51 y 52, consulte los vínculos siguientes, según sea necesario:
- Solución de problemas del código de error OutboundConnFailVMExtensionError (50)
- Solución de problemas del código de error K8SAPIServerConnFailVMExtensionError (51)
- Solución de problemas del código de error K8SAPIServerDNSLookupFailVMExtensionError (52)
Si recibe el código de error 99, esto indica que el comando apt-get update se está bloqueando para acceder a uno o varios de los dominios siguientes:
- security.ubuntu.com
- azure.archive.ubuntu.com
- nvidia.github.io
Para permitir el acceso a estos dominios, actualice la configuración de los firewalls de bloqueo, los grupos de seguridad de red (NSG) o las aplicaciones virtuales de red (NVA).
Solución: Rotación de los certificados
Puede aplicar la rotación automática de certificados para rotar los certificados en los nodos antes de que expiren. Esta opción no requiere tiempo de inactividad para el clúster de AKS.
Si puede dar cabida al tiempo de inactividad del clúster, puede rotar manualmente los certificados en su lugar.
Nota:
A partir del 15 de julio de 2021, la versión de AKS, una actualización del clúster de AKS ayuda automáticamente a rotar los certificados de clúster. Sin embargo, este cambio de comportamiento no surte efecto para un certificado de clúster expirado. Si una actualización realiza solo las siguientes acciones, los certificados expirados no se renovarán:
- Actualice una imagen de nodo.
- Actualice un grupo de nodos a la misma versión.
- Actualice un grupo de nodos a una versión más reciente.
Solo una actualización completa (es decir, una actualización para el plano de control y el grupo de nodos) ayuda a renovar los certificados expirados.
Más información
- Para conocer los pasos generales de solución de problemas, consulte Solución de problemas básica de errores de nodo no preparado.