Configura réplicas y recursos de contenedores


En esta página, se describe cómo configurar recursos y réplicas del contenedor para 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 controladores:

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

Por ejemplo, puedes configurar la solicitud de memoria y el límite del contenedor webhook del controlador cnrm-webhook-manager mediante la creación y aplicación del 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/v1alpha1
    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 al clúster:

    kubectl apply -f configure-webhook-manager.yaml
  3. Ejecuta el siguiente comando para verificar que la configuración se haya realizado correctamente:

    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 de recursos personalizada se haya aplicado al contenedor webhook.

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

    Crear y volver a crear los Pods podría tardar unos minutos.

Si Config Connector está configurado para ejecutarse en modo con espacio de nombres, debes usar el recurso personalizado NamespacedControllerResource a fin de configurar recursos del contenedor para el controlador cnrm-controller-manager dentro de tu espacio de nombres designado. La configuración de recursos de contenedor para 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/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

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 el 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/v1alpha1
    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. Ejecuta el siguiente comando para verificar que la configuración se haya realizado correctamente.

    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 dentro de tu clúster.

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

    Crear y volver a crear los Pods podría tardar unos minutos.

Revertir los cambios de configuración en las réplicas y los recursos 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 las réplicas y los recursos predeterminados de contenedor.

kubectl delete -f configure-webhook-manager.yaml