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)

Esistono due tipi di risorse personalizzate utilizzate per la configurazione: ControllerResource e NamespacedControllerResource.

Utilizza ControllerResource per i componenti con ambito cluster

Utilizza la risorsa personalizzata ControllerResource per configurare le risorse per i componenti di Config Connector che vengono eseguiti come deployment con ambito cluster.

I seguenti componenti sono sempre con ambito cluster, anche quando Config Connector è installato in modalità con spazio dei nomi:

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

cnrm-controller-manager è anche con ambito cluster quando Config Connector è installato in modalità cluster.

Ad esempio, per configurare la richiesta e il limite di memoria del container webhook del controller cnrm-webhook-manager, crea e applica il seguente file YAML:

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

Utilizza NamespacedControllerResource per il controller manager con spazio dei nomi

Utilizza la risorsa personalizzata NamespacedControllerResource solo per configurare le risorse per cnrm-controller-manager quando Config Connector è in esecuzione in modalità con spazio dei nomi.

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 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