Containerressourcen und ‑replikate konfigurieren

Auf dieser Seite wird beschrieben, wie Sie Containerressourcen und Replikate für Controller in Config Connector konfigurieren.

Ressourcenzuweisung für einen Config Connector-Controller-Container konfigurieren

In Config Connector Version 1.106 und höher können Sie die CPU- und Arbeitsspeicherressourcen konfigurieren, die einem Container in einem Config Connector-Controller-Pod zugewiesen sind. Sie können die folgenden Controller konfigurieren:

  • cnrm-webhook-manager
  • cnrm-controller-manager
  • cnrm-deletiondefender
  • cnrm-resource-stats-recorder
  • cnrm-unmanaged-detector (Config Connector-Version 1.108 und höher)

Für die Konfiguration werden zwei Arten von benutzerdefinierten Ressourcen verwendet: ControllerResource und NamespacedControllerResource.

ControllerResource für clusterbezogene Komponenten verwenden

Verwenden Sie die benutzerdefinierte Ressource ControllerResource, um Ressourcen für Config Connector-Komponenten zu konfigurieren, die als Bereitstellungen mit Clusterbereich ausgeführt werden.

Die folgenden Komponenten sind immer clusterbasiert, auch wenn Config Connector im Namespaced-Modus installiert ist:

  • cnrm-webhook-manager
  • cnrm-deletiondefender
  • cnrm-resource-stats-recorder
  • cnrm-unmanaged-detector

Der cnrm-controller-manager hat auch Clusterbereich, wenn Config Connector im Clustermodus installiert ist.

Wenn Sie beispielsweise die Speicheranforderung und das Speicherlimit des webhook-Containers des cnrm-webhook-manager-Controllers konfigurieren möchten, erstellen Sie die folgende YAML-Datei und wenden Sie sie an:

apiVersion: customize.core.cnrm.cloud.google.com/v1beta1
kind: ControllerResource
metadata:
  name: cnrm-webhook-manager
spec:
  containers:
    - name: webhook
      resources:
        limits:
          memory: 512Mi
        requests:
          memory: 256Mi

NamespacedControllerResource für den Namespace-Controller-Manager verwenden

Verwenden Sie die benutzerdefinierte Ressource NamespacedControllerResource nur zum Konfigurieren von Ressourcen für cnrm-controller-manager, wenn Config Connector im Namespaced-Modus ausgeführt wird.

Die Konfiguration von Containerressourcen für einen Namespaced-Controller ist in Config Connector-Version 1.108 und höher aktiviert.

Die folgende YAML-Datei zeigt eine Beispielkonfiguration:

apiVersion: customize.core.cnrm.cloud.google.com/v1beta1
kind: NamespacedControllerResource
metadata:
  name: cnrm-controller-manager # name should not contain the namespace ID suffix
  namespace: NAMESPACE
spec:
  containers:
    - name: manager
      resources:
        limits:
          cpu: 200m
          memory: 512Mi
        requests:
          cpu: 100m
          memory: 256Mi

Ersetzen Sie NAMESPACE durch den Namen Ihres Namespace:

Replikate für einen Config Connector-Controller-Pod konfigurieren

In Config Connector Version 1.107 und höher können Sie die Anzahl der Replikate für einen Config Connector-Controller konfigurieren. Sie können nur die cnrm-webhook-manager konfigurieren.

In den folgenden Schritten wird beispielsweise gezeigt, wie die Anzahl der Replikate für den cnrm-webhook-manager-Controller auf 3 konfiguriert wird.

  1. Erstellen Sie eine Datei mit dem Namen configure-webhook-manager.yaml und kopieren Sie die folgende YAML-Datei hinein:

    apiVersion: customize.core.cnrm.cloud.google.com/v1beta1
    kind: ControllerResource
    metadata:
      name: cnrm-webhook-manager
    spec:
      replicas: 3
      containers:
        - name: webhook
          resources:
            limits:
              memory: 512Mi
            requests:
              memory: 256Mi
    
  2. Verwenden Sie kubectl apply, um die geänderte Konfiguration auf Ihren Cluster anzuwenden:

    kubectl apply -f configure-webhook-manager.yaml
  3. Prüfen Sie mit dem folgenden Befehl, ob die Konfiguration erfolgreich war.

    kubectl get controllerresource cnrm-webhook-manager -o jsonpath='{.status.healthy}'

    Das Feld status.healthy sollte auf true gesetzt sein.

  4. Prüfen Sie, ob in Ihrem Cluster drei Webhook-Pods vorhanden sind.

    kubectl get pods -n cnrm-system -l cnrm.cloud.google.com/component=cnrm-webhook-manager

    Das Erstellen und Neuerstellen der Pods kann einige Minuten dauern.

Konfigurationsänderungen in Containerressourcen und ‑replikaten rückgängig machen

Verwenden Sie kubectl delete, um die benutzerdefinierten ControllerResource-Ressourcen zu löschen, die Sie konfiguriert haben. Nach dem Löschen erstellt der Config Connector-Operator die Controller mit den Standardcontainerressourcen und ‑replikas neu.

kubectl delete -f configure-webhook-manager.yaml