Configurar recursos y réplicas de contenedores


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

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

En Config Connector 1.106 y versiones posteriores, puedes configurar los recursos de CPU y memoria (RAM) asignados a un contenedor en un pod de controlador de Config Connector. Puedes configurar los siguientes controladores:

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

Por ejemplo, puedes configurar la solicitud y el límite de memoria del webhook contenedor 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 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 de recursos del contenedor a tu clúster:

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

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

    Debería mostrar el campo status.healthy con el valor true.

  4. Comprueba que la nueva configuración de recursos personalizados 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 pueden tardar unos minutos.

Si Config Connector está configurado para ejecutarse en modo de espacio de nombres, debes usar el recurso personalizado NamespacedControllerResource para configurar los recursos de contenedor del controlador cnrm-controller-manager en el espacio de nombres designado. La configuración de los recursos de contenedor de un controlador con espacio de nombres está habilitada en Config Connector 1.108 y versiones posteriores. 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

Sustituye NAMESPACE por el nombre de tu espacio de nombres.

Configurar réplicas de un pod de controlador de Config Connector

En Config Connector 1.107 y versiones posteriores, puedes configurar el número de réplicas de un controlador de Config Connector. Solo puedes configurar el cnrm-webhook-manager.

Por ejemplo, en los siguientes pasos se muestra cómo configurar el número de réplicas del controlador cnrm-webhook-manager en 3.

  1. Crea un archivo llamado configure-webhook-manager.yaml y copia el siguiente 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 a tu clúster:

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

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

    Debería mostrar el campo status.healthy con el valor true.

  4. Verifica que haya 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 pueden tardar unos minutos.

Deshacer los cambios de configuración en los recursos y las réplicas de los contenedores

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

kubectl delete -f configure-webhook-manager.yaml