Escalonar e escalonar automaticamente serviços de ambiente de execução

Você pode escalonar a maioria dos serviços em execução no Kubernetes na linha de comando ou em uma modificação de configuração. É possível definir parâmetros de escalonamento para serviços de ambiente de execução da Apigee híbrida no arquivo overrides.yaml.

Serviço Implementado como Escalonamento
Cassandra ApigeeDatastore (CRD) Consulte Como escalonar o Cassandra
Entrada/LoadBalancer Implantação O Anthos Service Mesh usa o Escalonamento automático de pod horizontal (HPA, na sigla em inglês) (link em inglês).
Logger DaemonSet DaemonSets gerenciam réplicas de um pod em todos os nós, para que eles sejam escalonados quando você mesmo dimensiona os pods.
Inspetor do
Apigee Connect
MART
ApigeeOrganization (CRD)

Para escalonar usando a configuração, aumente o valor da propriedade de configuração replicaCountMin da implantação das estrofes mart, watcher e/ou connectAgent. Por exemplo:

mart:
 replicaCountMax: 2
 replicaCountMin: 1

watcher:
 replicaCountMax: 2
 replicaCountMin: 1

connectAgent:
 replicaCountMax: 2
 replicaCountMin: 1

Essas implantações usam um escalonador automático de pod horizontal para fazer escalonamento automático. Defina a propriedade targetCPUUtilizationPercentage do objeto de implantação como o limite do escalonamento vertical. Quando esse valor é excedido, o Kubernetes adiciona pods até o valor de replicaCountMax.

Para mais informações sobre como definir propriedades de configuração, consulte Gerenciar componentes do plano de execução.

UDCA do
sincronizador do
ambiente de execução
ApigeeEnvironment (CRD) Para escalonar usando a configuração, aumente o valor da propriedade replicaCountMin das estrofes udca, synchronizer e/ou runtime no arquivo de substituições. Por exemplo:
synchronizer:
 replicaCountMax: 10
 replicaCountMin: 1

runtime:
 replicaCountMax: 10
 replicaCountMin: 1

udca:
 replicaCountMax: 10
 replicaCountMin: 1

Observação: essas alterações se aplicam a TODOS os ambientes do arquivo de substituições. Se você quiser personalizar o escalonamento de cada ambiente, consulte Configurações avançadas abaixo.

Essas implantações usam um escalonador automático de pod horizontal para fazer escalonamento automático. Defina a propriedade targetCPUUtilizationPercentage do objeto de implantação até o limite do escalonamento vertical. Quando esse valor é excedido, o Kubernetes adiciona pods até o valor de replicaCountMax.

Para mais informações sobre como definir propriedades de configuração, consulte Gerenciar componentes do plano de execução.

Configurações avançadas

Em alguns cenários, pode ser necessário usar opções avançadas de escalonamento. Exemplos de cenários:

  • Como definir diferentes opções de escalonamento para cada ambiente. Por exemplo, onde env1 tem minReplica de 5 e env2 tem minReplica de 2.
  • Como definir diferentes opções de escalonamento para cada componente dentro de um ambiente Por exemplo, onde o componente udca tem um maxReplica de 5 e o componente synchronizer tem um maxReplica de 2.

O exemplo a seguir mostra como usar o comando kubernetes patch para alterar a propriedade maxReplicas do componente runtime:

  1. Crie variáveis de ambiente para usar com o comando:
    export ENV=my-environment-name
    export NAMESPACE=apigee  #the namespace where apigee is deployed
    export COMPONENT=runtime #can be udca or synchronizer
    export MAX_REPLICAS=2
    export MIN_REPLICAS=1
  2. Aplique o patch. Observe que esse exemplo considera que kubectl está no seu PATH:
    kubectl patch apigeeenvironment -n $NAMESPACE \
      $(kubectl get apigeeenvironments -n $NAMESPACE -o jsonpath='{.items[?(@.spec.name == "'$ENV'" )]..metadata.name}') \
      --patch "$(echo -e "spec:\n  components:\n    $COMPONENT:\n      autoScaler:\n        maxReplicas: $MAX_REPLICAS\n        minReplicas: $MIN_REPLICAS")" \
      --type merge
    
  3. Veja a mudança:
    kubectl get hpa -n $NAMESPACE