Gestionnaire de certificats

Lorsque vous activez l'extension de cluster Certificate Manager, vous pouvez transmettre les paires clé/valeur suivantes en tant qu'arguments.

Arguments de configuration communs à la plupart des modules complémentaires de cluster
Clé (API et CLI) Nom d'affichage de la clé (console) Description Obligatoire/Facultatif Valeur par défaut Exemple de valeur
affinity affinité

Groupe de règles de programmation d'affinité.

Format JSON en texte brut ou encodé Base64.

Non utilisé par:
  • Opérateur GPU Nvidia
Equivalents possibles :
  • Repérage des fonctionnalités de noeud, utilisez master.affinity
  • Opérateur réseau NVIDIA, utilisez operator.affinity
  • Pilote CSI SMB, utilisez contoller.affinity
  • Opérateur de GPU AMD, utilisez controllerManager.affinity
Facultatif NULL NULL
nodeSelectors Sélecteurs de noeud

Vous pouvez utiliser des sélecteurs de noeud et des libellés de noeud pour contrôler les noeuds de processus actif sur lesquels les pods d'extension sont exécutés.

Pour qu'un pod s'exécute sur un noeud, le sélecteur de noeud du pod doit avoir la même clé/valeur que l'étiquette du noeud.

Définissez nodeSelectors sur une paire clé/valeur correspondant à la fois au sélecteur de noeud du pod et au libellé du noeud de processus actif.

Format JSON en texte brut ou encodé Base64.

Non utilisé par:
  • Opérateur GPU NVIDIA
  • Pilote CSI SMB
Equivalents possibles :
  • Repérage des fonctionnalités de noeud, utilisez worker.nodeSelector
  • Opérateur réseau NVIDIA, utilisez operator.nodeSelectors
  • Opérateur de GPU AMD, utilisez selector ou controllerManager.nodeSelector
Facultatif NULL {"foo":"bar", "foo2": "bar2"}

Le pod s'exécutera uniquement sur les noeuds possédant le libellé foo=bar ou foo2=bar2.

numOfReplicas numOfReplicas Nombre de répliques du déploiement de l'extension.
Non utilisé par:
  • Module d'extension GPU AMD
  • Opérateur GPU NVIDIA
  • Opérateur réseau NVIDIA
  • Pilote CSI SMB
Equivalents possibles :
  • CoreDNS, utilisez nodesPerReplica
  • Repérage des fonctionnalités de noeud, utilisez master.replicaCount
  • Opérateur de GPU AMD, utilisez controllerManager.replicas
Requis 1

Crée une réplique du déploiement d'extension par cluster.

2

Crée deux répliques du déploiement d'extension par cluster.

rollingUpdate rollingUpdate

Contrôle le comportement souhaité de la mise à jour non simultanée par maxSurge et maxUnavailable.

Format JSON en texte brut ou encodé Base64.

Non utilisé par:
  • Repérage des fonctionnalités du noeud
  • Opérateur réseau NVIDIA
  • Pilote CSI SMB
Equivalents possibles :
  • Opérateur de GPU NVIDIA, utilisez daemonsets.rollingUpdate.maxUnavailable
  • Opérateur de GPU AMD, utilisez upgradePolicy dans devicePlugin, metricsExporter, testRunner, configManager ou draDriver
Facultatif NULL NULL
tolerations tolérances

Vous pouvez utiliser des tolérances et des taches pour contrôler les noeuds de processus actif sur lesquels les pods d'extension s'exécutent.

Pour qu'un pod s'exécute sur un noeud présentant une entorse, le pod doit avoir une tolérance correspondante.

Définissez tolerations sur une paire clé/valeur correspondant à la fois à la tolérance du pod et à la tache du noeud de processus actif.

Format JSON en texte brut ou encodé Base64.

Equivalents possibles :
  • Repérage des fonctionnalités de noeud, utilisez master.tolerations et/ou worker.tolerations
  • Opérateur de GPU NVIDIA, utilisez daemonsets.tolerations
  • Opérateur réseau NVIDIA, utilisez operator.tolerations
  • Pilote CSI SMB, utilisez controller.tolerations
  • Opérateur GPU AMD, utilisez les tolérances dans devicePlugin, metricsExporter, testRunner, configManager, draDriver ou controllerManager
Facultatif NULL [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

Seuls les pods présentant cette tolérance peuvent être exécutés sur des noeuds de processus actif présentant la tache tolerationKeyFoo=tolerationValBar:noSchedule.

topologySpreadConstraints topologySpreadConstraints

Comment répartir les pods correspondants entre la topologie donnée.

Format JSON en texte brut ou encodé Base64.

Non utilisé par:
  • Repérage des fonctionnalités du noeud
  • Opérateur GPU NVIDIA
  • Opérateur réseau NVIDIA
  • Pilote CSI SMB
  • Opérateur de GPU AMD
Facultatif NULL NULL
Arguments de configuration propres à ce module complémentaire de cluster
Clé (API et CLI) Nom d'affichage de la clé (console) Description Obligatoire/Facultatif Valeur par défaut Exemple de valeur
cert-manager-cainjector.ContainerResources ressources de conteneur cert-manager-cainjector

Vous pouvez spécifier les quantités de ressources demandées par les conteneurs d'extension et définir les limites d'utilisation des ressources que les conteneurs d'extension ne peuvent pas dépasser.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Créez des conteneurs d'extension qui demandent 100 milllicores de CPU et 100 mégaoctets de mémoire. Limitez les conteneurs d'extension à 500 milllicores de CPU et 200 mégaoctets de mémoire.

cert-manager-controller.ContainerResources ressources de conteneur cert-manager-controller

Vous pouvez spécifier les quantités de ressources demandées par les conteneurs d'extension et définir les limites d'utilisation des ressources que les conteneurs d'extension ne peuvent pas dépasser.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Créez des conteneurs d'extension qui demandent 100 milllicores de CPU et 100 mégaoctets de mémoire. Limitez les conteneurs d'extension à 500 milllicores de CPU et 200 mégaoctets de mémoire.

cert-manager-webhook.ContainerResources ressources de conteneur cert-manager-webhook

Vous pouvez spécifier les quantités de ressources demandées par les conteneurs d'extension et définir les limites d'utilisation des ressources que les conteneurs d'extension ne peuvent pas dépasser.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Créez des conteneurs d'extension qui demandent 100 milllicores de CPU et 100 mégaoctets de mémoire. Limitez les conteneurs d'extension à 500 milllicores de CPU et 200 mégaoctets de mémoire.

Considérations relatives aux clusters volumineux

Le tableau suivant décrit les considérations relatives à la configuration de ce module complémentaire de cluster dans les clusters volumineux.

Nom d'argument Nombre de noeuds de processus métier de rôles Description à mesure que la taille du cluster augmente Risques Recommandation
cert-manager-cainjector.ContainerResources Y (Oui)

Définit les ressources de CPU et de mémoire pour l'injecteur CA.

L'injecteur CA ajoute des données CA aux webhooks, aux définitions de ressource personnalisées et aux services d'API.

A mesure que la taille du cluster augmente :

  • Le nombre de définitions de ressources personnalisées et de configurations de webhook peut augmenter.
  • Le nombre d'opérations de patch et de mise à jour peut augmenter.
  • Les interactions avec le serveur d'API augmentent.

La charge globale augmente de manière modérée et est généralement inférieure à la charge globale du contrôleur du gestionnaire de certificats.

Si les ressources sont sous-dimensionnées :

  • L'injection du package d'autorité de certification peut être retardée.
  • Les webhooks peuvent échouer car les données d'autorité de certification sont manquantes.

Augmentez modérément les ressources à mesure que la taille du cluster augmente. L'injecteur d'autorité de certification nécessite généralement un redimensionnement des ressources moins agressif que le contrôleur du gestionnaire de certificats.

numOfReplicas N

Contrôle le nombre de répliques pour les composants du gestionnaire de certificats.

Des répliques supplémentaires améliorent la disponibilité et la tolérance aux pannes.

Le webhook peut évoluer horizontalement pour gérer un volume plus élevé de demandes d'admission.

  • Le débit du contrôleur n'augmente pas linéairement avec le nombre de répliques.
  • Certaines composantes utilisent l'élection de leader, de sorte que seul le leader actif effectue certaines opérations.
  • Utilisez au moins deux ou trois répliques.
  • Augmentez le nombre de répliques de webhook lorsque le volume de demandes d'API est élevé.
affinity / nodeSelectors / tolerations N

Contrôler le placement des composants de Certificate Manager.

Le gestionnaire de certificats est un composant critique du plan de contrôle et peut être affecté par l'attrition des noeuds et les conflits de ressources.

Si ces arguments ne sont pas configurés correctement :

  • Les pods peuvent s'exécuter sur des noeuds instables ou surchargés.
  • Les composants peuvent redémarrer.
  • Les opérations de certificat peuvent être retardées.
  • Exécutez les composants Certificate Manager sur des noeuds stables ou des pools de noeuds système ou d'infrastructure dédiés.
  • Configurez les tolérances lorsque les noeuds cible sont endommagés.
rollingUpdate N

Contrôle la stratégie de mise à jour du déploiement.

Lors d'une mise à niveau :

  • Le temps d'arrêt du contrôleur arrête le rapprochement des certificats.
  • Un temps d'inactivité de webhook peut entraîner l'échec des demandes d'API.
  • Toutes les répliques peuvent redémarrer en même temps.
  • Les opérations de certificat peuvent être temporairement suspendues.
  • Définissez maxUnavailable sur 0 ou sur la valeur pratique la plus faible.
  • Maintenir la disponibilité continue des composants lors des mises à jour.
topologySpreadConstraints N

Contrôle la distribution des pods entre les noeuds et les domaines de disponibilité.

  • Empêche l'exécution de toutes les répliques sur le même noeud ou dans le même domaine de disponibilité.
  • Améliore la résilience face aux pannes de noeud et de domaine de disponibilité.

Si les contraintes de répartition de topologie ne sont pas configurées :

  • Tous les pods peuvent s'exécuter sur le même noeud ou dans le même domaine de disponibilité.
  • Une panne unique peut rendre le webhook ou le contrôleur indisponible.

Répartir les répliques entre différents noeuds et domaines de disponibilité.

cert-manager-controller.ContainerResources Y (Oui)

Définit les ressources de CPU et de mémoire pour le pod de contrôleur du gestionnaire de certificats.

Au fur et à mesure que la taille du cluster augmente, le nombre de ressources suivantes peut augmenter :

  • Certificats
  • Demandes de certificat
  • Clés secrètes

Le contrôleur éprouve :

  • Un plus grand cache d'indicateurs
  • Plus d'événements
  • Rapprochement plus fréquent
  • Plus d'interactions avec les serveurs API

Si les ressources sont sous-dimensionnées :

  • Le contrôleur peut être arrêté car il dépasse sa limite de mémoire.
  • Le rapprochement des certificats peut être lent.
  • La délivrance et le renouvellement des certificats peuvent être retardés.
  • Un backlog de file d'attente d'événements peut se développer.
  • Augmentez la mémoire pour prendre en charge le cache d'indicateurs plus volumineux.
  • Augmentez l'UC pour prendre en charge des activités de rapprochement supplémentaires.

Il s'agit de l'argument de mise à l'échelle des ressources du gestionnaire de certificats le plus important.

cert-manager-webhook.ContainerResources Y (Oui)

Définit les ressources de CPU et de mémoire pour le webhook du gestionnaire de certificats.

Le webhook valide et modifie les ressources du gestionnaire de certificats.

A mesure que la taille du cluster augmente :

  • Le nombre de demandes d'API peut augmenter.
  • Le nombre d'appels de webhook d'admission peut augmenter.
  • La charge de la demande sur ce composant sensible à la latence augmente.

Si les ressources sont sous-dimensionnées :

  • La latence des demandes d'admission peut augmenter.
  • Les opérations du serveur d'API Kubernetes peuvent ralentir.
  • La création de la ressource peut échouer.
  • Allouez suffisamment d'UC pour le traitement des demandes.
  • Utilisez un dimensionnement modéré de la mémoire.