Résoudre les échecs de nœud non prêt s’il y a des certificats arrivés à expiration
Cet article vous aide à résoudre les problèmes liés aux scénarios Node Not Ready au sein d’un cluster Microsoft Azure Kubernetes Service (AKS) s’il existe des certificats expirés.
Prerequisites
- Azure CLI
- Outil en ligne de commande OpenSSL pour l’affichage et la signature des certificats
Symptômes
Vous découvrez qu’un nœud de cluster AKS est dans l’état Node Not Ready.
Cause
Il existe un ou plusieurs certificats expirés.
Prévention : exécuter OpenSSL pour signer les certificats
Vérifiez les dates d’expiration des certificats en appelant la commande openssl-x509 , comme suit :
Pour les nœuds du groupe de machines virtuelles identiques, utilisez la commande 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"
Pour les nœuds du groupe à haute disponibilité de machine virtuelle, utilisez la commande 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"
Vous pouvez recevoir certains codes d’erreur après avoir appelé ces commandes. Pour plus d’informations sur les codes d’erreur 50, 51 et 52, consultez les liens suivants, si nécessaire :
- Résoudre le code d’erreur OutboundConnFailVMExtensionError (50)
- Résoudre le code d’erreur K8SAPIServerConnFailVMExtensionError (51)
- Résoudre le code d’erreur K8SAPIServerDNSLookupFailVMExtensionError (52)
Si vous recevez le code d’erreur 99, cela indique que la commande apt-get update est bloquée pour accéder à un ou plusieurs des domaines suivants :
- security.ubuntu.com
- azure.archive.ubuntu.com
- nvidia.github.io
Pour autoriser l’accès à ces domaines, mettez à jour la configuration de tous les pare-feu bloquants, groupes de sécurité réseau (NSG) ou appliances virtuelles réseau (NVA).
Solution : faire pivoter les certificats
Vous pouvez appliquer la rotation automatique des certificats pour faire pivoter les certificats dans les nœuds avant leur expiration. Cette option ne nécessite aucun temps d’arrêt pour le cluster AKS.
Si vous pouvez prendre en charge les temps d’arrêt du cluster, vous pouvez faire pivoter manuellement les certificats à la place.
Note
À compter du 15 juillet 2021, la version d’AKS, une mise à niveau de cluster AKS permet automatiquement de faire pivoter les certificats de cluster. Toutefois, cette modification comportementale ne prend pas effet pour un certificat de cluster expiré. Si une mise à niveau effectue uniquement les actions suivantes, les certificats expirés ne seront pas renouvelés :
- Mettez à niveau une image de nœud.
- Mettez à niveau un pool de nœuds vers la même version.
- Mettez à niveau un pool de nœuds vers une version plus récente.
Seule une mise à niveau complète (autrement dit, une mise à niveau pour le plan de contrôle et le pool de nœuds) permet de renouveler les certificats expirés.
Plus d’informations
- Pour connaître les étapes de dépannage générales, consultez La résolution des problèmes de base des échecs Node Not Ready.