Zertifikatsmanager

Wenn Sie das Cluster-Add-on für Certificate Manager aktivieren, können Sie die folgenden Schlüssel/Wert-Paare als Argumente übergeben.

Allgemeine Konfigurationsargumente für die meisten Cluster-Add-ons
Schlüssel (API und CLI) Anzeigename des Schlüssels (Konsole) Beschreibung Erforderlich/Optional Standardwert Beispielwert
affinity Affinität

Eine Gruppe von Affinitätsplanungsregeln.

JSON-Format im Klartext oder Base64-codiert.

Nicht verwendet von:
  • Nvidia-GPU-Operator
Mögliche Äquivalente:
  • Knotenfeature Discovery, verwenden Sie master.affinity
  • NVIDIA Network Operator, verwenden Sie operator.affinity
  • CSI-Treiber SMB, verwenden Sie contoller.affinity
  • AMD-GPU-Operator, controllerManager.affinity verwenden
Optional Null Null
nodeSelectors Knotenselektoren

Mit Knotenselektoren und Knotenlabels können Sie die Worker-Knoten steuern, auf denen Add-on-Pods ausgeführt werden.

Damit ein Pod auf einem Knoten ausgeführt werden kann, muss der Knotenselektor des Pods denselben Schlüssel/Wert wie das Label des Knotens aufweisen.

Setzen Sie nodeSelectors auf ein Schlüssel/Wert-Paar, das sowohl dem Knotenselektor des Pods als auch dem Label des Worker-Knotens entspricht.

JSON-Format im Klartext oder Base64-codiert.

Nicht verwendet von:
  • NVIDIA-GPU-Operator
  • CSI-Treiber SMB
Mögliche Äquivalente:
  • Knotenfeature Discovery, verwenden Sie worker.nodeSelector
  • NVIDIA Network Operator, verwenden Sie operator.nodeSelectors
  • AMD GPU-Operator, verwenden Sie selector oder controllerManager.nodeSelector
Optional Null {"foo":"bar", "foo2": "bar2"}

Der Pod wird nur auf Knoten ausgeführt, die das Label foo=bar oder foo2=bar2 aufweisen.

numOfReplicas numOfReplicas Die Anzahl der Replikate der Add-on-Bereitstellung.
Nicht verwendet von:
  • AMD-GPU-Plug-in
  • NVIDIA-GPU-Operator
  • NVIDIA-Netzwerkbetreiber
  • CSI-Treiber SMB
Mögliche Äquivalente:
  • CoreDNS, verwenden Sie nodesPerReplica
  • Knotenfeature Discovery, verwenden Sie master.replicaCount
  • AMD-GPU-Operator, controllerManager.replicas verwenden
Erforderlich 1

Erstellt ein Replikat des Add-on-Deployments pro Cluster.

2

Erstellt zwei Replikate des Add-on-Deployments pro Cluster.

rollingUpdate rollingUpdate

Steuert das gewünschte Verhalten der rollierenden Aktualisierung durch maxSurge und maxUnavailable.

JSON-Format im Klartext oder Base64-codiert.

Nicht verwendet von:
  • Knotenfeature-Discovery
  • NVIDIA-Netzwerkbetreiber
  • CSI-Treiber SMB
Mögliche Äquivalente:
  • NVIDIA-GPU-Operator, daemonsets.rollingUpdate.maxUnavailable verwenden
  • AMD-GPU-Operator, verwenden upgradePolicy in devicePlugin, metricsExporter, testRunner, configManager oder draDriver
Optional Null Null
tolerations Toleranzen

Mit Taints und Toleranzen können Sie die Worker-Knoten steuern, auf denen Add-on-Pods ausgeführt werden.

Damit ein Pod auf einem Knoten mit einem Taint ausgeführt werden kann, muss der Pod eine entsprechende Toleranz aufweisen.

Setzen Sie tolerations auf ein Schlüssel/Wert-Paar, das sowohl der Podtoleranz als auch dem Taint des Worker-Knotens entspricht.

JSON-Format im Klartext oder Base64-codiert.

Mögliche Äquivalente:
  • Knotenfeature Discovery, verwenden Sie master.tolerations und/oder worker.tolerations
  • NVIDIA-GPU-Operator, daemonsets.tolerations verwenden
  • NVIDIA Network Operator, verwenden Sie operator.tolerations
  • CSI-Treiber SMB, verwenden Sie controller.tolerations
  • AMD GPU-Operator, Toleranzen in devicePlugin, metricsExporter, testRunner, configManager, draDriver oder controllerManager verwenden
Optional Null [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

Nur Pods mit dieser Toleranz können auf Worker-Knoten ausgeführt werden, die den Taint tolerationKeyFoo=tolerationValBar:noSchedule aufweisen.

topologySpreadConstraints topologySpreadConstraints

So verteilen Sie passende Pods auf die angegebene Topologie.

JSON-Format im Klartext oder Base64-codiert.

Nicht verwendet von:
  • Knotenfeature-Discovery
  • NVIDIA-GPU-Operator
  • NVIDIA-Netzwerkbetreiber
  • CSI-Treiber SMB
  • AMD-GPU-Operator
Optional Null Null
Für dieses Cluster-Add-on spezifische Konfigurationsargumente
Schlüssel (API und CLI) Anzeigename des Schlüssels (Konsole) Beschreibung Erforderlich/Optional Standardwert Beispielwert
cert-manager-cainjector.ContainerResources cert-manager-cainjector Container-Ressourcen

Sie können die Ressourcenmengen angeben, die von den Add-on-Containern angefordert werden, und Grenzwerte für die Ressourcennutzung festlegen, die von den Add-on-Containern nicht überschritten werden dürfen.

JSON-Format im Klartext oder Base64-codiert.

Optional Null {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Erstellen Sie Add-on-Container, die 100 Millicores CPU und 100 Mebibyte Speicher anfordern. Begrenzen Sie Add-on-Container auf 500 Millicores CPU und 200 Mebibyte Arbeitsspeicher.

cert-manager-controller.ContainerResources Containerressourcen für cert-manager-controller

Sie können die Ressourcenmengen angeben, die von den Add-on-Containern angefordert werden, und Grenzwerte für die Ressourcennutzung festlegen, die von den Add-on-Containern nicht überschritten werden dürfen.

JSON-Format im Klartext oder Base64-codiert.

Optional Null {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Erstellen Sie Add-on-Container, die 100 Millicores CPU und 100 Mebibyte Speicher anfordern. Begrenzen Sie Add-on-Container auf 500 Millicores CPU und 200 Mebibyte Arbeitsspeicher.

cert-manager-webhook.ContainerResources cert-manager-webhook Container-Ressourcen

Sie können die Ressourcenmengen angeben, die von den Add-on-Containern angefordert werden, und Grenzwerte für die Ressourcennutzung festlegen, die von den Add-on-Containern nicht überschritten werden dürfen.

JSON-Format im Klartext oder Base64-codiert.

Optional Null {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Erstellen Sie Add-on-Container, die 100 Millicores CPU und 100 Mebibyte Speicher anfordern. Begrenzen Sie Add-on-Container auf 500 Millicores CPU und 200 Mebibyte Arbeitsspeicher.

Große Cluster – Überlegungen

In der folgenden Tabelle werden die Aspekte beim Konfigurieren dieses Cluster-Add-ons in großen Clustern beschrieben.

Argumentname Rollen, Anzahl Knoten Beschreibung Bei zunehmender Clustergröße Risiken Empfehlung
cert-manager-cainjector.ContainerResources J

Definiert CPU- und Speicherressourcen für den CA-Injector.

Der CA-Injector fügt CA-Daten zu Webhooks, benutzerdefinierten Ressourcendefinitionen und API-Services hinzu.

Bei zunehmender Clustergröße:

  • Die Anzahl der benutzerdefinierten Ressourcendefinitionen und Webhook-Konfigurationen kann steigen.
  • Die Anzahl der Patch- und Updatevorgänge kann sich erhöhen.
  • API-Serverinteraktionen nehmen zu.

Die Arbeitslast nimmt moderat zu und ist im Allgemeinen geringer als die Arbeitslast des Certificate Manager-Controllers.

Wenn die Ressourcen zu klein sind:

  • CA-Bundle-Injection kann verzögert werden.
  • Webhooks sind möglicherweise nicht erfolgreich, da CA-Daten fehlen.

Erhöhen Sie die Ressourcen mit zunehmender Clustergröße moderat. Der CA-Injektor erfordert in der Regel weniger aggressive Ressourcenskalierung als der Certificate Manager-Controller.

numOfReplicas N

Steuert die Anzahl der Replikate für Certificate Manager-Komponenten.

Zusätzliche Replikate verbessern die Verfügbarkeit und Fehlertoleranz.

Der Webhook kann horizontal skaliert werden, um ein höheres Volumen an Aufnahmeanfragen zu verarbeiten.

  • Der Controller-Durchsatz steigt nicht linear mit der Anzahl der Replikate.
  • Einige Komponenten verwenden Leaderwahlen, sodass nur der aktive Leader bestimmte Operationen ausführt.
  • Verwenden Sie mindestens zwei oder drei Replikate.
  • Erhöhen Sie die Anzahl der Webhook-Replikate, wenn das API-Anforderungs-Volume hoch ist.
affinity / nodeSelectors / tolerations N

Steuern Sie die Platzierung der Certificate Manager-Komponenten.

Certificate Manager ist eine Control-Plane-kritische Komponente und kann von Knotenabwanderung und Ressourcenkonflikten betroffen sein.

Wenn diese Argumente nicht richtig konfiguriert sind:

  • Pods können auf instabilen oder überlasteten Knoten ausgeführt werden.
  • Komponenten können neu gestartet werden.
  • Zertifikatsvorgänge können verzögert werden.
  • Führen Sie Certificate Manager-Komponenten auf stabilen Knoten oder dedizierten Infrastruktur- oder Systemknotenpools aus.
  • Konfigurieren Sie Toleranzen, wenn die Zielknoten verfälscht sind.
rollingUpdate N

Steuert die Deployment-Aktualisierungsstrategie.

Während eines Upgrades:

  • Die Controller-Ausfallzeit stoppt die Zertifikatsabstimmung.
  • Webhook-Ausfallzeit kann dazu führen, dass API-Anforderungen nicht erfolgreich ausgeführt werden.
  • Alle Replikationen können gleichzeitig neu gestartet werden.
  • Zertifikatsvorgänge werden möglicherweise vorübergehend angehalten.
  • Setzen Sie maxUnavailable auf 0 oder auf den niedrigsten praktischen Wert.
  • Aufrechterhaltung der kontinuierlichen Komponentenverfügbarkeit während Updates.
topologySpreadConstraints N

Steuert, wie Pods auf Knoten und Availability-Domains verteilt werden.

  • Verhindert, dass alle Replikate auf demselben Knoten oder in derselben Availability-Domain ausgeführt werden.
  • Verbessert die Resilienz gegenüber Knoten- und Availability-Domain-Ausfällen.

Wenn keine Topologie-Verteilungs-Constraints konfiguriert sind:

  • Alle Pods können auf demselben Knoten oder in derselben Availability-Domain ausgeführt werden.
  • Ein einzelner Fehler kann dazu führen, dass der Webhook oder Controller nicht verfügbar ist.

Verteilen Sie Replikate auf verschiedene Knoten und Availability-Domains.

cert-manager-controller.ContainerResources J

Definiert CPU- und Speicherressourcen für den Certificate Manager Controller-Pod.

Mit zunehmender Clustergröße kann sich die Anzahl der folgenden Ressourcen erhöhen:

  • Zertifikate
  • Zertifikatsanforderungen
  • Secrets

Der Controller erlebt:

  • Ein größerer Informantencache
  • Weitere Veranstaltungen ansehen
  • Häufige Versöhnung
  • Weitere API-Serverinteraktionen

Wenn die Ressourcen zu klein sind:

  • Der Controller wird möglicherweise beendet, weil er seinen Speichergrenzwert überschreitet.
  • Die Zertifikatsabstimmung kann langsam sein.
  • Die Ausstellung und Erneuerung des Zertifikats kann sich verzögern.
  • Es kann zu einem Event-Queue-Backlog kommen.
  • Erhöhen Sie den Speicher, um den größeren Informer Cache zu unterstützen.
  • Erhöhen Sie die CPU, um zusätzliche Reconciliation-Aktivitäten zu unterstützen.

Dies ist das wichtigste Argument für die Ressourcenskalierung in Certificate Manager.

cert-manager-webhook.ContainerResources J

Definiert CPU- und Speicherressourcen für den Certificate Manager-Webhook.

Der Webhook validiert und ändert Certificate Manager-Ressourcen.

Bei zunehmender Clustergröße:

  • Die Anzahl der API-Anforderungen kann steigen.
  • Die Anzahl der Aufnahme-Webhook-Aufrufe kann sich erhöhen.
  • Die Anforderungslast für diese latenzzeitabhängige Komponente erhöht sich.

Wenn die Ressourcen zu klein sind:

  • Die Latenz der Aufnahmeanforderung kann zunehmen.
  • Kubernetes-API-Servervorgänge können verlangsamt werden.
  • Die Ressourcenerstellung ist möglicherweise nicht erfolgreich.
  • Weisen Sie ausreichend CPU für die Anforderungsverarbeitung zu.
  • Verwenden Sie eine moderate Speichergröße.