Configure os recursos e as réplicas do contentor


Estas páginas descrevem como configurar recursos e réplicas de contentores para controladores no Config Connector.

Configure a atribuição de recursos para um contentor do controlador do Config Connector

Na versão 1.106 e posterior do Config Connector, pode configurar os recursos de CPU e memória (RAM) atribuídos a um contentor num pod do controlador do Config Connector. Pode configurar os seguintes controladores:

  • cnrm-webhook-manager
  • cnrm-controller-manager
  • cnrm-deletiondefender
  • cnrm-resource-stats-recorder
  • cnrm-unmanaged-detector (versão 1.108 e posterior do Config Connector)

Por exemplo, pode configurar o pedido de memória e o limite do webhookcontainer do controlador cnrm-webhook-manager criando e aplicando o seguinte ficheiro YAML de exemplo.

  1. Crie um ficheiro com o nome configure-webhook-manager.yaml e copie o seguinte YAML para o mesmo:

    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. Use kubectl apply para aplicar a configuração do recurso do contentor ao seu cluster:

    kubectl apply -f configure-webhook-manager.yaml
  3. Para verificar se a configuração foi bem-sucedida, execute o seguinte comando:

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

    Deve apresentar o campo status.healthy definido como true.

  4. Verifique se a nova configuração de recursos personalizados foi aplicada ao contentor webhook.

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

    A criação e a recriação dos Pods podem demorar alguns minutos.

GOMEMLIMIT

Se o Config Connector estiver configurado para ser executado no modo com espaço de nomes, tem de usar o recurso personalizado NamespacedControllerResource para configurar recursos de contentores para o controlador cnrm-controller-manager no espaço de nomes designado. A configuração de recursos do contentor para um controlador com espaço de nomes está ativada na versão 1.108 e posterior do Config Connector. O seguinte ficheiro YAML mostra um exemplo de configuração:

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

Substitua NAMESPACE pelo nome do seu espaço de nomes.

Configure réplicas para um pod do controlador do Config Connector

Na versão 1.107 e posterior do Config Connector, pode configurar o número de réplicas para um controlador do Config Connector. Só pode configurar o cnrm-webhook-manager.

Por exemplo, os passos seguintes mostram como configurar o número de réplicas para o controlador cnrm-webhook-manager para 3.

  1. Crie um ficheiro denominado configure-webhook-manager.yaml e copie o seguinte YAML para o mesmo:

    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. Use kubectl apply para aplicar a configuração modificada ao seu cluster:

    kubectl apply -f configure-webhook-manager.yaml
  3. Execute o seguinte comando para verificar se a configuração foi bem-sucedida.

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

    Deve apresentar o campo status.healthy definido como true.

  4. Verifique a presença de 3 pods de webhook no cluster.

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

    A criação e a recriação dos Pods podem demorar alguns minutos.

Reverta as alterações de configuração nos recursos e nas réplicas do contentor

Use kubectl delete para eliminar os recursos personalizados ControllerResource que configurou. Após a eliminação, o operador do Config Connector recria os controladores com os recursos e as réplicas do contentor predefinidos.

kubectl delete -f configure-webhook-manager.yaml