Configurer les ressources et les répliques de conteneurs

Cette page explique comment configurer les ressources et les répliques de conteneurs pour les contrôleurs dans Config Connector.

Configurer l'allocation de ressources pour un conteneur de contrôleur Config Connector

Dans Config Connector version 1.106 et ultérieures, vous pouvez configurer les ressources de processeur et de mémoire (RAM) allouées à un conteneur dans un pod de contrôleur Config Connector. Vous pouvez configurer les contrôleurs suivants :

  • cnrm-webhook-manager
  • cnrm-controller-manager
  • cnrm-deletiondefender
  • cnrm-resource-stats-recorder
  • cnrm-unmanaged-detector (Config Connector version 1.108 et ultérieure)

Deux types de ressources personnalisées sont utilisés pour la configuration : ControllerResource et NamespacedControllerResource.

Utiliser ControllerResource pour les composants à l'échelle du cluster

Utilisez la ressource personnalisée ControllerResource pour configurer les ressources des composants Config Connector qui s'exécutent en tant que déploiements à l'échelle du cluster.

Les composants suivants sont toujours de portée cluster, même lorsque Config Connector est installé en mode espace de noms :

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

cnrm-controller-manager est également limité au cluster lorsque Config Connector est installé en mode cluster.

Par exemple, pour configurer la requête et la limite de mémoire du conteneur webhook du contrôleur cnrm-webhook-manager, créez et appliquez le fichier YAML suivant :

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

Utiliser NamespacedControllerResource pour le gestionnaire de contrôleurs avec espace de noms

N'utilisez la ressource personnalisée NamespacedControllerResource que pour configurer les ressources de cnrm-controller-manager lorsque Config Connector est exécuté en mode espace de noms.

La configuration des ressources de conteneur pour un contrôleur avec espace de noms est activée dans Config Connector version 1.108 et ultérieures.

Le fichier YAML suivant montre un exemple de configuration :

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

Remplacez NAMESPACE par le nom de votre espace de noms.

Configurer des répliques pour un pod de contrôleur Config Connector

Dans Config Connector version 1.107 et ultérieures, vous pouvez configurer le nombre de répliques pour un contrôleur Config Connector. Vous ne pouvez configurer que cnrm-webhook-manager.

Par exemple, les étapes suivantes montrent comment configurer le nombre de répliques pour le contrôleur cnrm-webhook-manager sur 3.

  1. Créez un fichier nommé configure-webhook-manager.yaml et copiez-y le YAML ci-dessous :

    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. Utilisez kubectl apply pour appliquer la configuration modifiée à votre cluster :

    kubectl apply -f configure-webhook-manager.yaml
  3. Vérifiez que la configuration a réussi en exécutant la commande suivante.

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

    Le champ status.healthy doit être défini sur true.

  4. Vérifiez la présence de trois pods de webhook dans votre cluster.

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

    La création et la recréation des pods peuvent prendre quelques minutes.

Rétablir les modifications de configuration dans les ressources et les répliques de conteneur

Utilisez kubectl delete pour supprimer les ressources personnalisées ControllerResource que vous avez configurées. Après la suppression, l'opérateur Config Connector recrée les contrôleurs avec les ressources et les répliques de conteneur par défaut.

kubectl delete -f configure-webhook-manager.yaml