Configura risorse e repliche del container

Queste pagine descrivono come configurare le risorse e le repliche dei container per i controller in Config Connector.

Configura l'allocazione delle risorse per un container controller Config Connector

In Config Connector versione 1.106 e successive, puoi configurare le risorse CPU e memoria (RAM) allocate a un container in un pod controller Config Connector. Puoi configurare i seguenti controller:

  • cnrm-webhook-manager
  • cnrm-controller-manager
  • cnrm-deletiondefender
  • cnrm-resource-stats-recorder
  • cnrm-unmanaged-detector (Config Connector versione 1.108 e successive)

Ad esempio, puoi configurare la richiesta e il limite di memoria del container webhook del controller cnrm-webhook-manager creando e applicando il seguente file YAML di esempio.

  1. Crea un file denominato configure-webhook-manager.yaml e copia il seguente codice YAML al suo interno:

    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
    
  2. Utilizza kubectl apply per applicare la configurazione della risorsa container al cluster:

    kubectl apply -f configure-webhook-manager.yaml
  3. Verifica la corretta configurazione eseguendo questo comando:

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

    Dovrebbe essere visualizzato il campo status.healthy impostato su true.

  4. Verifica che la nuova configurazione della risorsa personalizzata sia stata applicata al container webhook.

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

    La creazione e la ricreazione dei pod potrebbero richiedere alcuni minuti.

Se Config Connector è configurato per l'esecuzione in modalità con spazio dei nomi, devi utilizzare la risorsa personalizzata NamespacedControllerResource per configurare le risorse del container per il controller cnrm-controller-manager all'interno dello spazio dei nomi designato. La configurazione delle risorse container per un controller con spazio dei nomi è abilitata in Config Connector versione 1.108 e successive. Il seguente file YAML mostra una configurazione di esempio:

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

Sostituisci NAMESPACE con il nome del tuo spazio dei nomi.

Configura le repliche per un pod controller Config Connector

In Config Connector versione 1.107 e successive, puoi configurare il numero di repliche per un controller Config Connector. Puoi configurare solo cnrm-webhook-manager.

Ad esempio, i seguenti passaggi mostrano come configurare il numero di repliche per il controller cnrm-webhook-manager su 3.

  1. Crea un file denominato configure-webhook-manager.yaml e copia al suo interno il seguente codice YAML:

    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. Utilizza kubectl apply per applicare la configurazione modificata al tuo cluster:

    kubectl apply -f configure-webhook-manager.yaml
  3. Verifica la corretta configurazione eseguendo questo comando.

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

    Dovrebbe essere visualizzato il campo status.healthy impostato su true.

  4. Verifica la presenza di tre pod webhook all'interno del cluster.

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

    La creazione e la ricreazione dei pod potrebbero richiedere alcuni minuti.

Annulla le modifiche alla configurazione nelle risorse e nelle repliche dei container

Utilizza kubectl delete per eliminare le risorse personalizzate ControllerResource che hai configurato. Dopo l'eliminazione, l'operatore Config Connector ricrea i controller con le repliche e le risorse dei container predefinite.

kubectl delete -f configure-webhook-manager.yaml