Vous pouvez effectuer le scaling de la plupart des services exécutés dans Kubernetes à partir de la ligne de commande ou dans un remplacement de configuration. Vous pouvez définir des paramètres de scaling pour les services d'exécution Apigee hybride dans le fichier overrides.yaml
.
Service | Mis en œuvre en tant que | Scaling |
---|---|---|
Cassandra | ApigeeDatastore (CRD) | Consultez la page Scaling de Cassandra. |
Ingress/LoadBalancer | Déploiement | Anthos Service Mesh utilise l'autoscaling horizontal des pods (HPA). |
Logger | DaemonSet | Les DaemonSets gèrent les instances dupliquées d'un pod sur tous les nœuds. Ils évoluent donc lorsque vous effectuez le scaling des pods eux-mêmes. |
MART Apigee Connect Watcher |
ApigeeOrganization (CRD) | Pour effectuer un scaling via la configuration, augmentez la valeur de la propriété de configuration mart: replicaCountMax: 2 replicaCountMin: 1 watcher: replicaCountMax: 2 replicaCountMin: 1 connectAgent: replicaCountMax: 2 replicaCountMin: 1 Ces déploiements utilisent un autoscaler horizontal de pods pour l'autoscaling. Définissez la propriété Pour en savoir plus sur la définition des propriétés de configuration, consultez la page Gérer les composants du plan d'exécution. |
Environnement d'exécution Synchronisateur UDCA |
ApigeeEnvironment (CRD) | Pour effectuer un scaling via la configuration, augmentez la valeur de la propriété replicaCountMin pour les stanzas udca , synchronizer et/ou runtime dans le fichier de remplacement. Exemple :
synchronizer: replicaCountMax: 10 replicaCountMin: 1 runtime: replicaCountMax: 10 replicaCountMin: 1 udca: replicaCountMax: 10 replicaCountMin: 1 Remarque : Ces modifications s'appliquent à TOUS les environnements du fichier de remplacement. Si vous souhaitez personnaliser le scaling pour chaque environnement, consultez la section Configurations avancées ci-dessous. Les déploiements utilisent un autoscaler horizontal de pods pour l'autoscaling. Définissez la propriété Pour en savoir plus sur la définition des propriétés de configuration, consultez la page Gérer les composants du plan d'exécution. |
Configurations avancées
Dans certains cas, vous devrez peut-être utiliser des options de scaling avancées. Exemples de scénarios :
- Définir différentes options de scaling pour chaque environnement. Par exemple, où "env1" a une valeur
minReplica
de 5 et "env2" a une valeurminReplica
de 2. - Définir différentes options de scaling pour chaque composant d'un environnement. Par exemple, où le composant
udca
a une valeurmaxReplica
de 5 et le composantsynchronizer
une valeurmaxReplica
de 2.
L'exemple suivant montre comment utiliser la commande kubernetes patch
pour modifier la propriété maxReplicas
du composant runtime
:
- Créez des variables d'environnement à utiliser avec la commande :
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
- Appliquez le correctif. Notez que cet exemple suppose que
kubectl
se trouve dans votre fichierPATH
: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
- Vérifiez que la modification a bien eu lieu en exécutant la commande suivante :
kubectl get hpa -n $NAMESPACE