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

Ab Config Connector-Version 1.106 können Sie die CPU- und Arbeitsspeicherressourcen (RAM) 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)

Sie können beispielsweise die Arbeitsspeicheranfrage und das Limit des webhook-Containers des cnrm-webhook-manager-Controllers konfigurieren, indem Sie die folgende YAML-Beispieldatei erstellen und anwenden.

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

    apiVersion: customize.core.cnrm.cloud.google.com/v1alpha1
    kind: ControllerResource
    metadata:
      name: cnrm-webhook-manager
    spec:
      containers:
        - name: webhook
          resources:
            limits:
              memory: 512Mi
            requests:
              memory: 256Mi
    
  2. Verwenden Sie kubectl apply, um die Konfiguration der Containerressourcen 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}'

    Es sollte das Feld status.healthy angezeigt werden, das auf true festgelegt ist.

  4. Prüfen Sie, ob die neue benutzerdefinierte Ressourcenkonfiguration auf den Container webhook angewendet wurde.

    kubectl get deployment cnrm-webhook-manager -n cnrm-system -o jsonpath='{.spec.template.spec.containers[?(@.name=="webhook")].resources}'

    Das Erstellen und erneute Erstellen der Pods kann einige Minuten dauern.

Wenn Config Connector für die Ausführung im Namespace-Modus konfiguriert ist, müssen Sie die benutzerdefinierte Ressource NamespacedControllerResource verwenden, um Containerressourcen für den cnrm-controller-manager-Controller in Ihrem vorgesehenen Namespace zu konfigurieren. Die Konfiguration von Containerressourcen für einen Namespace-Controller ist in Config Connector ab Version 1.108 aktiviert. Die folgende YAML-Datei zeigt eine Beispielkonfiguration:

apiVersion: customize.core.cnrm.cloud.google.com/v1alpha1
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

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

Die folgenden Schritte zeigen beispielsweise, wie Sie die Anzahl der Replikate für den cnrm-webhook-manager-Controller auf 3 konfigurieren.

  1. Erstellen Sie eine Datei mit dem Namen configure-webhook-manager.yaml und kopieren Sie den folgenden YAML-Code in diese Datei:

    apiVersion: customize.core.cnrm.cloud.google.com/v1alpha1
    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 die erfolgreiche Konfiguration, indem Sie den folgenden Befehl ausführen.

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

    Es sollte das Feld status.healthy angezeigt werden, das auf true festgelegt ist.

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

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

    Das Erstellen und erneute Erstellen der Pods kann einige Minuten dauern.

Konfigurationsänderungen an 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 Standard-Containerressourcen und -Replikaten neu.

kubectl delete -f configure-webhook-manager.yaml