Dimensione e dimensione automaticamente os serviços de tempo de execução

Pode dimensionar a maioria dos serviços executados no Kubernetes a partir da linha de comandos ou numa substituição de configuração. Pode definir parâmetros de escalabilidade para os serviços de tempo de execução híbrido do Apigee no ficheiro overrides.yaml.

Serviço Implementado como Dimensionar
Cassandra ApigeeDatastore (CRD) Consulte o artigo Dimensionar o Cassandra.
Ingress/LoadBalancer Implementação O Anthos Service Mesh usa a escala automática horizontal de pods (HPAs).
Logger DaemonSet Os DaemonSets gerem réplicas de um pod em todos os nós, pelo que são dimensionados quando dimensiona os próprios pods.
MART
Apigee Connect
Watcher
ApigeeOrganization (CRD)

Para dimensionar através da configuração, aumente o valor da propriedade de configuração replicaCountMin da implementação para as secções mart, watcher e/ou connectAgent. Por exemplo:

mart:
 replicaCountMax: 2
 replicaCountMin: 1

watcher:
 replicaCountMax: 2
 replicaCountMin: 1

connectAgent:
 replicaCountMax: 2
 replicaCountMin: 1

Estas implementações usam um redimensionador automático horizontal de pods para a escala automática. Defina a propriedade targetCPUUtilizationPercentage do objeto de implementação para o limite de expansão. Quando este valor é excedido, o Kubernetes adiciona pods até ao valor de replicaCountMax.

Para mais informações sobre a definição de propriedades de configuração, consulte o artigo Faça a gestão dos componentes do plano de tempo de execução.

Runtime
Synchronizer
UDCA
ApigeeEnvironment (CRD) Para dimensionar através da configuração, aumente o valor da propriedade replicaCountMin para as estrofes udca, synchronizer e/ou runtime no ficheiro de substituições. Por exemplo:
synchronizer:
 replicaCountMax: 10
 replicaCountMin: 1

runtime:
 replicaCountMax: 10
 replicaCountMin: 1

udca:
 replicaCountMax: 10
 replicaCountMin: 1

Nota: estas alterações aplicam-se a TODOS os ambientes no ficheiro de substituições. Se quiser personalizar o dimensionamento para cada ambiente, consulte as Configurações avançadas abaixo.

Estas implementações usam um redimensionador automático horizontal de pods para a escala automática. Defina a propriedade targetCPUUtilizationPercentage do objeto de implementação para o limite de expansão. Quando este valor é excedido, o Kubernetes adiciona pods até ao valor de replicaCountMax.

Para mais informações sobre a definição de propriedades de configuração, consulte o artigo Faça a gestão dos componentes do plano de tempo de execução.

Configurações avançadas

Em alguns cenários, pode ter de usar opções de dimensionamento avançadas. Exemplos de cenários:

  • Definir diferentes opções de dimensionamento para cada ambiente. Por exemplo, onde env1 tem um minReplica de 5 e env2 tem um minReplica de 2.
  • Definir diferentes opções de escalabilidade para cada componente num ambiente. Por exemplo, onde o componente udca tem um maxReplica de 5 e o componente synchronizer tem um maxReplica de 2.

O exemplo seguinte 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. Tenha em atenção que este exemplo pressupõe que kubectl está em 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. Valide a alteração:
    kubectl get hpa -n $NAMESPACE