Configura recursos y réplicas de contenedores

En esta página, se describe cómo configurar recursos y réplicas de contenedores para los controladores en Config Connector.

Configura la asignación de recursos para un contenedor de controlador de Config Connector

En la versión 1.106 y posteriores de Config Connector, puedes configurar los recursos de CPU y memoria (RAM) asignados a un contenedor en un Pod del controlador de Config Connector. Puedes configurar los siguientes controles:

  • cnrm-webhook-manager
  • cnrm-controller-manager
  • cnrm-deletiondefender
  • cnrm-resource-stats-recorder
  • cnrm-unmanaged-detector (Config Connector versión 1.108 y posteriores)

Por ejemplo, puedes configurar la solicitud y el límite de memoria del contenedor webhook del controlador cnrm-webhook-manager creando y aplicando el siguiente archivo YAML de ejemplo.

  1. Crea un archivo llamado configure-webhook-manager.yaml y copia el siguiente archivo YAML en él:

    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. Usa kubectl apply para aplicar la configuración del recurso del contenedor a tu clúster:

    kubectl apply -f configure-webhook-manager.yaml
  3. Para verificar que la configuración se realizó correctamente, ejecuta el siguiente comando:

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

    Debería mostrar el campo status.healthy configurado como true.

  4. Verifica que la nueva configuración del recurso personalizado se haya aplicado al contenedor webhook.

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

    La creación y la recreación de los Pods podrían tardar unos minutos.

Si Config Connector está configurado para ejecutarse en modo con espacio de nombres, debes usar el recurso personalizado NamespacedControllerResource para configurar los recursos del contenedor para el controlador cnrm-controller-manager dentro de tu espacio de nombres designado. La configuración de los recursos del contenedor para un controlador con espacio de nombres está habilitada en la versión 1.108 y posteriores de Config Connector. En el siguiente archivo YAML, se muestra un ejemplo de configuración:

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

Reemplaza NAMESPACE por el nombre de tu espacio de nombres.

Configura réplicas para un Pod del controlador de Config Connector

En la versión 1.107 y posteriores de Config Connector, puedes configurar la cantidad de réplicas para un controlador de Config Connector. Solo puedes configurar cnrm-webhook-manager.

Por ejemplo, en los siguientes pasos, se muestra cómo configurar la cantidad de réplicas para que el controlador cnrm-webhook-manager sea 3.

  1. Crea un archivo llamado configure-webhook-manager.yaml y copia el siguiente archivo YAML en él:

    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. Usa kubectl apply para aplicar la configuración modificada al clúster:

    kubectl apply -f configure-webhook-manager.yaml
  3. Para verificar que la configuración se haya realizado correctamente, ejecuta el siguiente comando.

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

    Debería mostrar el campo status.healthy configurado como true.

  4. Verifica la presencia de 3 Pods de webhook en tu clúster.

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

    La creación y la recreación de los Pods podrían tardar unos minutos.

Cómo revertir los cambios de configuración en los recursos y las réplicas del contenedor

Usa kubectl delete para borrar los recursos personalizados ControllerResource que configuraste. Después de la eliminación, el operador de Config Connector vuelve a crear los controladores con los recursos y las réplicas de contenedores predeterminados.

kubectl delete -f configure-webhook-manager.yaml