Configurer les ressources et les réplicas de conteneur
Cette page explique comment configurer les ressources de conteneur et les réplicas 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
(version 1.108 de Config Connector et versions ultérieures)
Par exemple, vous pouvez configurer la requête et la limite de mémoire du conteneur webhook
du contrôleur cnrm-webhook-manager
en créant et en appliquant l'exemple de fichier YAML suivant.
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: containers: - name: webhook resources: limits: memory: 512Mi requests: memory: 256Mi
Utilisez
kubectl apply
pour appliquer la configuration des ressources de conteneur à votre cluster:kubectl apply -f configure-webhook-manager.yaml
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
devrait être défini surtrue
.Vérifiez que la nouvelle configuration de la ressource personnalisée a été appliquée au conteneur
webhook
.kubectl get deployment cnrm-webhook-manager -n cnrm-system -o jsonpath='{.spec.template.spec.containers[?(@.name=="webhook")].resources}'
La création et la recréation des pods peuvent prendre quelques minutes.
Si Config Connector est configuré pour s'exécuter en mode espace de noms, vous devez utiliser la ressource personnalisée NamespacedControllerResource
pour configurer les ressources de conteneur pour le contrôleur cnrm-controller-manager
dans l'espace de noms que vous avez désigné. 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érieure. 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éplicas pour un pod de contrôleur Config Connector
Dans Config Connector 1.107 et versions ultérieures, vous pouvez configurer le nombre de réplicas pour un contrôleur Config Connector. Vous ne pouvez configurer que le cnrm-webhook-manager
.
Par exemple, les étapes suivantes montrent comment configurer le nombre de réplicas pour le contrôleur cnrm-webhook-manager
sur 3
.
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
Utilisez
kubectl apply
pour appliquer la configuration modifiée à votre cluster:kubectl apply -f configure-webhook-manager.yaml
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
devrait être défini surtrue
.Vérifiez la présence de trois pods 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.
Annuler les modifications de configuration dans les ressources et les instances dupliquées 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éplicas de conteneur par défaut.
kubectl delete -f configure-webhook-manager.yaml