Configura recursos y réplicas de contenedores


En estas páginas, se describe cómo configurar recursos y réplicas de contenedores 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 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 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 si creas y aplicas 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 de recursos de contenedor a tu 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 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 recreación de los pods puede tardar unos minutos.

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

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 de 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 del controlador cnrm-webhook-manager en 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. 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 en tu clúster.

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

    La creación y recreación de los pods puede tardar unos minutos.

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

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 de contenedor predeterminados.

kubectl delete -f configure-webhook-manager.yaml