Configurar réplicas e recursos de contêiner


Nesta página, descrevemos como configurar réplicas e recursos de contêiner para no Config Connector.

Configurar a alocação de recursos para um contêiner do controlador do Config Connector

No Config Connector versão 1.106 e posterior, é possível configurar recursos de memória (RAM) alocados para um contêiner em um controlador do Config Connector do pod. É possível configurar os seguintes controladores:

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

Por exemplo, é possível configurar a solicitação de memória e o limite do contêiner webhook do controlador cnrm-webhook-manager criando e aplicando o exemplo de arquivo YAML abaixo.

  1. Crie um arquivo chamado configure-webhook-manager.yaml e copie o YAML a seguir:

    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. Usar kubectl apply para aplicar a configuração do recurso de contêiner ao cluster:

    kubectl apply -f configure-webhook-manager.yaml
  3. Verifique se a configuração foi bem-sucedida executando o seguinte comando:

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

    O campo status.healthy precisa ser definido como true.

  4. Verifique se a nova configuração de recurso personalizado foi aplicada ao contêiner 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 pode levar alguns minutos.

Se o Config Connector estiver configurado para ser executado no modo com namespace, é preciso usar o recurso personalizado NamespacedControllerResource para configurar o contêiner recursos para o controlador cnrm-controller-manager na sua rede . A configuração de recursos de contêiner para um controlador com namespace está ativado no Config Connector versão 1.108 e posterior. O arquivo YAML a seguir 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 namespace.

Configurar réplicas para um pod de controlador do Config Connector

No Config Connector versão 1.107 e posterior, é possível configurar o número de réplicas de um controlador do Config Connector. Só é possível configurar cnrm-webhook-manager:

Por exemplo, as etapas a seguir mostram como configurar o número de réplicas do controlador cnrm-webhook-manager para 3.

  1. Crie um arquivo chamado configure-webhook-manager.yaml e copie o YAML a seguir nele:

    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 cluster:

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

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

    O campo status.healthy precisa ser definido como true.

  4. Verifique se há três 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 pode levar alguns minutos.

Reverter mudanças de configuração em recursos e réplicas de contêineres

Use kubectl delete para excluir os recursos personalizados ControllerResource que você configurou. Após a exclusão, o operador do Config Connector recria os controladores com os recursos e as réplicas de contêiner padrão.

kubectl delete -f configure-webhook-manager.yaml