Quotas ETCD, utilisation, dépannage et erreurs
Découvrez comment consulter les quotas et l'utilisation ETCD, et corriger les erreurs
Objectif
ETCD est l'un des composants majeurs d'un cluster Kubernetes. C'est une base de données clé-valeur distribuée qui permet de stocker et de répliquer l'état du cluster.
À un moment donné de la vie de votre cluster Managed Kubernetes, vous pouvez rencontrer l'une des erreurs suivantes, qui vous empêchent de modifier des ressources :
Ce guide vous montre comment consulter votre utilisation et votre quota, diagnostiquer et résoudre cette situation.
Prérequis
- Un cluster OVHcloud Managed Kubernetes
- L'outil en ligne de commande kubectl installé
En pratique
Contexte
Chaque cluster Kubernetes dispose d'un quota dédié sur l'utilisation du stockage ETCD, calculé selon la formule suivante :
Par exemple, un cluster comportant 3 serveurs b2-7 dispose d'un quota de 85 Mo.
Afin de vérifier votre quota et votre utilisation ETCD actuels, vous pouvez interroger l'API OVHcloud.
Résultat :
Le résultat du quota et de l'utilisation ETCD est exprimé en octets.
Grâce à cet endpoint d'API, vous pouvez consulter l'utilisation et le quota ETCD, et anticiper un éventuel problème.
Le quota peut ainsi être augmenté en ajoutant des nœuds, mais ne sera jamais diminué (même si tous les nœuds sont supprimés), afin d'éviter toute perte de données. L'erreur mentionnée ci-dessus indique que l'utilisation du stockage ETCD du cluster a dépassé le quota.
Pour résoudre cette situation, vous devez supprimer les ressources créées en excès.
Cas le plus fréquent : mauvaise configuration de cert-manager
La plupart des utilisateurs installent cert-manager via Helm, puis passent à autre chose un peu trop rapidement.
Les cas les plus fréquents de problèmes de quota ETCD proviennent d'une mauvaise configuration de cert-manager, qui l'amène à créer en continu des ressources certificaterequest.
Ce comportement va remplir l'ETCD de ressources jusqu'à ce que le quota soit atteint.
Pour vérifier si vous êtes dans cette situation, vous pouvez obtenir le nombre de ressources certificaterequest et order.acme :
Si vous obtenez un nombre très élevé (des centaines ou plus) de ces demandes de ressources, vous avez trouvé la cause racine.
Pour résoudre la situation, nous proposons la méthode suivante :
- Arrêter cert-manager
- Vider toutes les ressources
certificaterequestetorder.acme
- Mettre à jour cert-manager
Il n'existe pas de méthode générique pour cela, mais si vous utilisez Helm, nous vous recommandons de l'utiliser pour la mise à jour : documentation officielle de Cert Manager
- Corriger le problème
Nous vous recommandons de suivre les étapes suivantes pour diagnostiquer votre cert-manager et vous assurer que tout est correctement configuré : dépannage Acme
- Redémarrer cert-manager
Autres cas
Si cert-manager n'est pas la cause racine, vous devriez vous intéresser aux autres opérateurs en cours d'exécution qui créent des ressources Kubernetes. Nous avons constaté que les ressources suivantes peuvent parfois être générées en continu par des opérateurs existants :
backups.velero.io
podvolumebackups.velero.io
ingress.networking.k8s.io
ingress.extensions
authrequests.dex.coreos.com
reportchangerequest.kyverno.io
vulnerabilityreports.aquasecurity.github.io
configauditreport.aquasecurity.github.io
clusterrbacassessmentreport.aquasecurity.github.io
Si cela ne couvre toujours pas votre cas, vous pouvez utiliser un outil comme ketall pour lister et compter facilement les ressources de votre cluster. Vous devrez alors supprimer les ressources en excès et corriger le processus responsable de leur création.
Compter toutes les ressources
Si vous avez encore besoin de vérifier toutes les ressources parce que vous ne savez pas ce qui consomme les quotas etcd, vous pouvez exécuter cet extrait.
Vous aurez besoin du plugin count pour kubectl. Consultez les instructions d'installation.
L'exécution de la commande peut prendre plusieurs secondes, selon l'utilisation de votre cluster Kubernetes.
Aller plus loin
Pour en savoir plus sur l'utilisation pratique de votre cluster Kubernetes, nous vous invitons à consulter notre site de documentation OVHcloud Managed Kubernetes.
-
Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.
-
Échangez avec notre communauté d'utilisateurs.